同一批计算,可以怎样分工?
想算一大页乘法题,可以逐题安排,也可以让许多计算单元分工。CPU、GPU、NPU 的差别,可以先从工作怎样安排看起。
这里让三条路线做同一道题。CPU 的画面突出逐步安排;GPU 让多条通道一起做相似的步骤;NPU 把数字依次传给相邻单元,边传边相乘、相加。
跟住一个答案,再比较最后所有答案:安排不同,算的题没有变。 这只是帮助观察的三种安排,不代表每款处理器都长这样;这里也没有一边计算一边学习。
让同一输入换一种走法
- 切换三种安排,用“下一步”跟住同一个答案。
- 观察有些通道等待时,其他通道正在做什么。
- 换成全零输入,再比较三条路线的最终答案。步数不是现实中的速度测量。
为什么多摆一些乘法器还不够?
进一步操作与数值核对
- 在“自己试试”切换 CPU、GPU、NPU。每次从第零步重算,输入和权重保持一致。用“下一步”跟住一个输出的部分和。
- GPU 默认输入的第 5 步保留非负结果,
Y13暂时等待;第 6 步只让Y13执行写零。阴影表示掩蔽,通道的编号和部分和仍然保留。 - NPU 第 5 步出现斜波前。点选一个单元,核对输入与权重的身份,以及“旧部分和 + 本次乘积”。第 11 步执行输出激活。
- 改为“全零输入”,三种调度都产生十六个零;GPU 不再需要负结果分支。改为“输入取负”,重新观察哪些结果被 ReLU 保留。
自由探索的进度代表教学调度事件。每种调度的步骤定义不同,不能用 80、24、11 这些数字推导真实加速倍数。暂停、拖动或直接跳章都从确定性轨迹读取,不依赖此前播放的历史。
想核对技术细节?
想算一大页乘法题,可以按顺序逐题做,也可以让许多计算单元分工,再把数字安排成方便传递的队伍。CPU、GPU、NPU 的差别,可以从这些工作安排看起。先跟住一个答案,看看三条路线能不能算出相同结果;矩阵符号可以等会儿再看。
CPU、GPU、NPU 都能参与人工智能计算。差别来自怎样组织工作、保存数据与控制执行,不是三种处理器分别只会做三种事情。
演示让它们计算同一个小任务:四组输入组成矩阵 X,固定权重组成矩阵 W。X 的每一行与 W 的每一列逐项相乘,再把四个积相加,得到一个输出。最后执行 ReLU:负数变为零,其他值保留。
跟住 Y11:输入 [1, 2, 0, 1] 与权重 [1, 0, −1, 1] 相乘相加,结果是 2。同样的数据身份始终保留,最终会逐项核对全部十六个输出。权重不会在计算中更新,这是一小段推理运算,不是训练。
CPU 的画面按程序逐个处理输出,四次乘加之后判断是否写零。这里用一个标量通道突出灵活控制;真实 CPU 有多核、流水线、向量指令,也可具备矩阵加速。
GPU 的画面把一行中的四个输出分给四条教学通道,同一条指令处理不同数据。遇到条件分支,符合当前路径的通道执行,其余通道暂时掩蔽。GPU 并不只画图,也广泛用于科学计算和神经网络;许多 GPU 本身就有矩阵专用单元。
NPU 的画面用一种输出驻留脉动阵列:输入向右走、权重向下走,在相同 k 的交点乘加,部分和留在对应单元中。相邻单元复用流过的数据,形成斜着推进的计算波前。NPU 往往把神经网络常用算子、局部存储与调度做成专用硬件,但内部结构因产品而异。
矩阵阵列为什么要让输入错开进入?
在单元 (i,j),X[i,k] 从左边经过 j 次相邻传递,W[k,j] 从上边经过 i 次传递。若第 i 行输入和第 j 列权重分别延迟 i、j 个教学拍进入,两者就在 i + j + k 拍相遇。这种错开保证每次乘加使用相同 k,而不是把两组无关数字凑在一起。
每个输出累计四次乘加。十六个输出一共进行 64 次乘加,三种调度都没有少算。阵列填充与排空使所有单元不会同时开始、同时结束。本模型在全部点积完成后,以单独的激活事件统一产生 Y。实际芯片可以用不同方式流水处理激活与输出。
Google 的第一代 TPU 论文给出了矩阵乘加阵列与片上存储的实际设计。这里仅借用专用数据流的原理,并未复刻那一代 TPU,也不声称所有 NPU 都是脉动阵列。
GPU 分支一定要花两个时钟周期吗?
不能这样理解。这里用“保留非负值”和“写零”两条路径展示活跃通道掩码;两条路径都存在时,画面分开表示。真实实现可能把 ReLU 编译成无分支指令,实际 GPU 还存在独立线程调度、缓存、占用率与不同精度的执行单元。
NVIDIA CUDA 的 SIMT 说明中,NVIDIA 的 warp 是 32 条线程。本画面只保留四条教学通道来读清数字,不能把它当成真实 warp 宽度或所有厂商的统一规范。
为什么不直接宣布 NPU 最快、最省电?
只有受支持的算子、形状与精度适合对应硬件,专用单元才有机会发挥作用。数据搬运、内存带宽、任务启动、批量大小和编译方式也会改变结果。CPU 常负责准备数据和控制程序,GPU 或 NPU 接受适合的工作,再把结果交回。协作示例不要求任务依次经过全部三种处理器。
Intel 的 NPU 技术资料展示了专用乘加引擎、近计算存储和调度子系统。CUDA 的异构系统与内存模型则说明主机与设备怎样启动任务、访问与搬运数据。
本演示使用小整数的精确算术,未模拟缓存缺失、带宽、指令延迟、真实芯片规模、量化、功耗或温度。步数仅解释调度;真实性能和能耗需要在明确设备、软件、任务与精度条件下测量。GPU 能做训练与推理,NPU 的可编程性和训练支持则随产品而变,不能只凭名称推断。