1. AI芯片与算子概述

大家好,我是你们这堂课的主讲人。做了十几年芯片和编译器,今天咱们来聊聊AI芯片和算子。说实话,这个领域变化太快了,我每年整理PPT都得大改一次。但有些底层的东西,一直没变。

先问大家一个问题:为什么我们需要专门的AI芯片?用CPU跑AI不行吗?嗯,这个问题我十年前也问过我的导师。答案很简单——CPU太慢了,功耗还高。你想想看,一个矩阵乘法,CPU要一条一条指令取、译码、执行,而AI芯片可以一次搞定一大块。

1.1 AI芯片发展简史

AI芯片的发展,我把它分成三个阶段。

第一阶段:GPU的意外走红(2012-2016)

2012年,AlexNet在ImageNet上大杀四方。用的什么?两块NVIDIA GTX 580。那时候GPU本来是给游戏设计的,结果发现做深度学习矩阵运算特别快。我记得当时有个段子:深度学习工程师的标配就是工位上堆着几块显卡,散热风扇嗡嗡响。

第二阶段:专用芯片百花齐放(2016-2020)

Google在2016年放出了TPU v1,专门跑推理。我那时候在另一家公司,看到TPU的论文,第一反应是:还能这么玩?把矩阵乘法单元做到那么大,省掉了很多通用逻辑。随后,各种NPU、AI加速器像雨后春笋一样冒出来。

第三阶段:生态与架构融合(2020至今)

现在大家不光是拼算力了,更拼生态。NVIDIA有CUDA,Google有XLA,华为有CANN。我个人的体会是,芯片做出来只是第一步,能不能让开发者方便地用起来,才是关键。

核心观点:AI芯片的演进,本质上是“专用化”和“通用化”的博弈。太专用,市场太小;太通用,效率太低。找到那个平衡点,就是好芯片。

1.2 主流AI芯片架构

咱们来看看三种主流架构。我尽量用大白话讲,不堆术语。

GPU架构

GPU的核心思想是“大量简单核心并行干活”。一个GPU有几千个CUDA核心,每个核心都能做简单的数学运算。但注意,这些核心不像CPU那样有复杂的控制逻辑和缓存。

我举个例子:CPU就像10个全能博士,什么都能干;GPU就像1000个小学生,只会做加减乘除,但人多力量大。深度学习正好就是大量的加减乘除。

特性GPUCPU
核心数数千数十
控制逻辑简单复杂
缓存较小较大
适合任务并行计算串行控制

NPU架构

NPU(神经网络处理器)是专门为神经网络设计的。它最大的特点是“数据驱动计算”。什么意思呢?就是数据来了,指令自动跟着走,不需要CPU一条一条去调度。

我在项目中遇到过一个问题:用GPU跑一个小模型,延迟总是降不下来。后来换了NPU,延迟直接砍半。为什么?因为NPU的架构对矩阵乘法和卷积做了极致优化,数据搬运的路径更短。

TPU架构

Google的TPU,核心是“脉动阵列”(Systolic Array)。说白了,就是把计算单元排成一个二维网格,数据像流水一样在网格里流动。这样做的好处是:数据复用率高,内存访问次数少。

嗯,这里要注意:TPU的脉动阵列对矩阵乘法特别友好,但对其他算子(比如各种激活函数)就没那么高效了。所以TPU通常需要搭配CPU或者GPU一起用。

个人经验:选芯片架构时,别光看峰值算力。要看你的模型里是什么算子多。如果全是卷积和矩阵乘,NPU/TPU很合适;如果有很多自定义算子、控制流,GPU可能更灵活。

1.3 算子的定义与分类

算子(Operator),说白了就是神经网络里的一个基本操作。比如卷积、池化、全连接、激活函数,这些都是算子。

我习惯把算子分成三类:

  • 计算密集型算子:卷积、矩阵乘法。这类算子计算量大,内存访问相对少。优化方向是提高计算单元的利用率。
  • 访存密集型算子:各种激活函数(ReLU、Sigmoid)、逐元素操作。这类算子计算简单,但数据搬运量大。优化方向是减少内存访问次数。
  • 数据搬运算子:Reshape、Transpose、拼接。这类算子几乎不做计算,就是重新排列数据。优化方向是尽量消除或者合并。

你可能会问:为什么要分这么细?因为不同的算子,在芯片上的映射策略完全不同。我曾经踩过一个坑:把一个ReLU算子单独放在NPU上跑,结果发现比在CPU上跑还慢。后来一分析,ReLU计算量太小,数据搬运的开销反而成了瓶颈。

避坑指南:千万不要以为所有算子放到AI芯片上都能加速。我曾经见过一个团队,把整个模型一股脑塞进NPU,结果性能还不如CPU。后来发现,模型里有很多Reshape和拼接操作,这些在NPU上跑反而更慢。正确的做法是:计算密集的算子放NPU,控制逻辑和简单操作放CPU。

1.4 本章知识体系

下面这张图,是我自己画的AI芯片与算子知识体系。你可以把它当作一个地图,后面几章都会围绕这个框架展开。

AI芯片与算子 芯片发展简史 GPU意外走红(2012-2016) 专用芯片百花齐放(2016-2020) 生态与架构融合(2020至今) 主流AI芯片架构 GPU:大量简单核心并行 NPU:数据驱动计算 TPU:脉动阵列 算子定义与分类 计算密集型:卷积、矩阵乘 访存密集型:激活函数 数据搬运型:Reshape 核心:不同算子需要不同的映射策略 计算密集→NPU/TPU | 访存密集→优化数据搬运 | 控制逻辑→CPU

这张图把本章的三个核心内容串起来了:芯片发展史是背景,主流架构是工具,算子分类是我们要处理的对象。后面几章,我们会深入每个算子在具体芯片上是怎么映射的,以及怎么把多个算子融合起来提升性能。

好了,第一章就到这里。记住一句话:理解算子的特性,是做好算子映射和融合的第一步。下一章我们开始讲具体的映射方法。


想要更多资料,联系可可