从残差入手——ISSCC2024中的diffusion model加速器
从残差入手——ISSCC2024中的diffusion model加速器设计
$ \color{Green}{y = ax^2 + bx + c} $
Diffusion Model怎样生成图片
这里简单叙述一下diffusion model生成图片的过程。Diffusion model出现之前,GAN一直主导着图像生成领域,直到OpenAI的问世,diffusion model才真正在图像生成领域击败了GAN。OpenAI采用了一种新的采样方法——classifier guidance,使得模型能够对输入的条件来选择生成什么样的图片。但Diffusion model的运算是非常消耗计算资源的,一台Nvidia A100生成$ 256 \times 256 $的图片需要50次迭代,一共消耗2560ms的时长与250W的功耗。
发表于CPVR2023的U-ViT模型:
ISSCC2024 20.2的加速器设计
正巧在今年ISSCC2024,由清华大学发表的20.2设计了加速器,给我们提供了一种思路和方向。
由于diffusion model生成图片是一个不断去噪的过程,每两次迭代中input的差距非常的小,这就是残差学习的思想,上图的similarity in 2 adjacent DMs展示了这个特性。其分布可以分成两个区间,一个是密集分布在0值附近的“小数据”, 这一部分可以使用定点数量化,所以被成为Dense INT tensor。另一个是散布在整个feature map中的“大数据”,采用浮点数量化,所以称为Sparse FP tensor。进一步地,这个work将对两个tensor采用不同的运算策略。
我将这样的思想称为workload分治,许多大模型加速方面的论文都体现了这样的思想。第一步就是分,典型如Scatterbrain提出的Sparse+lowrank方法结合了由Performer和Reformer各自的优点,使得Transformer能够拥有更好的计算效率与表现 $ \color