使用ASIC加速AI的工作原理是什么?


9

我们可以在Wikipedia页面上读到Google为机器学习构建了定制的ASIC芯片,并为TensorFlow量身定制了该芯片,这有助于加速AI。

由于ASIC芯片是专门为一种特定用途而定制的,因此无法更改其电路,因此必须调用某些固定算法。

那么,如果无法更改其算法,使用ASIC芯片的AI加速将如何工作呢?它的哪一部分恰好在加速?


1
没有主流的AI技术,我所知道的需要修改算法,虽然大多数都依赖于修改的能力数据(连接强度,群体成员)等
NietzscheanAI

因此,唯一动态的部分(如网络状态)保留在某些闪存或驱动器上?
kenorb

Answers:


4

张量运算

大多数ML应用程序的主要工作只是一组(非常大的)张量运算,例如矩阵乘法。您可以在ASIC 轻松完成此操作,所有其他算法都可以在此之上运行。


1
重要的一点是,TPU使用8位乘法,与CPU提供的更广泛的乘法相比,它可以更有效地实现。如此低的精度就足够了,并允许在单个芯片上封装成千上万个这样的乘法器。
maaartinus


1

ASIC-代表专用IC。基本上,您编写程序来设计HDL芯片。我将以现代计算机如何工作来说明我的观点:

  • CPU -CPU本质上是一个微处理器,具有许多帮助IC来执行特定任务。在微处理器中,只有一个称为累加器的算术处理单元(组成项),其中必须存储值,因为仅执行计算,并且仅将值存储在累加器中。因此,每条指令,每条操作,每条R / W操作都必须通过累加器完成(这就是为什么较旧的计算机在从文件写入某些设备时会冻结的原因,尽管如今该过程已经过改进,可能不需要累加器介于DMA之间)。现在,在ML算法中,您需要执行可以轻松并行化的矩阵乘法,但是我们只有一个处理单元,GPU也是如此。
  • GPU -GPU具有100个处理单元,但它们缺乏CPU的多用途功能。因此,它们可用于可并行计算。由于矩阵乘法中没有内存重叠(内存由2个进程操纵的部分),因此GPU可以很好地工作。尽管由于GPU不是多功能的,所以它的工作速度仅与CPU将数据馈送到其内存中一样快。
  • ASIC -ASIC可以是您设计的任何GPU,CPU或处理器,也可以具有您想给它的任何数量的内存。假设您要设计自己的专用ML处理器,在ASIC上设计处理器。您想要256位FP号码吗?创建256位处理器。您希望求和速度快吗?实现并行加法器的位数要比传统处理器高吗?你要n核数?没问题。您想定义从不同处理单元到不同地方的数据流吗?你能行的。同样,通过仔细的计划,您可以在ASIC面积与功耗与速度之间进行权衡。唯一的问题是,为此,您需要创建自己的标准。通常,在设计处理器时会遵循一些定义明确的标准,例如引脚数量及其功能,用于浮点表示的IEEE 754标准等,这些都是经过大量试验和错误后提出的。因此,如果您能克服所有这些困难,则可以轻松创建自己的ASIC。

我不知道谷歌在用他们的TPU做些什么,但显然他们根据手头的要求为其8位内核设计了某种Integer和FP标准。考虑到功率,面积和速度,他们可能正在ASIC上实现它。


0

低精度会在Convo和FC层中实现高并行度计算。CPU和GPU的固定架构,但可以基于神经网络架构设计ASIC / FPGA

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.