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

人工智能 神经网络 机器学习 硬件 神经形态工程
2021-10-18 22:43:33

我们可以在Wikipedia 页面上看到,谷歌为机器学习构建了一个定制的 ASIC 芯片,并为 TensorFlow 量身定制,这有助于加速人工智能。

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

那么,如果算法无法改变,那么使用 ASIC 芯片的 AI 加速究竟是如何工作的呢?它的哪一部分正在加速?

4个回答

张量运算

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

我认为算法的变化很小,但必要的硬件已经被修剪到了骨子里。

减少了门转换的数量(可能也减少了浮点操作和精度),数据移动操作的数量也减少了,从而节省了功耗和运行时间。谷歌建议他们的 TPU 可以节省 10 倍的成本来完成相同的工作。

https://cloudplatform.googleblog.com/2016/05/Google-supercharges-machine-learning-tasks-with-custom-chip.html

ASIC - 它代表专用集成电路。基本上,您编写程序以用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 位内核设计了某种整数和 FP 标准。出于功率、面积和速度方面的考虑,他们可能正在 ASIC 上实现它。

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