网站开发过程阶段,毕节市生态文明建设网站,seo短视频网页入口引流怎么做,网页微信版文件传输助手请阅读【嵌入式及芯片开发学必备专栏】 文章目录 NPU 算力MAC 阵列简介MAC 阵列特点 MAC 阵列的结构MAC 阵列架构示例 MAC 阵列计算举例示例计算 TOPS 计算方法 NPU 算力
OpenCV 算法会消耗很大一部分自动驾驶芯片的算力#xff0c;在车上堆摄像头的同时也需要堆TOPS#xf…请阅读【嵌入式及芯片开发学必备专栏】 文章目录 NPU 算力MAC 阵列简介MAC 阵列特点 MAC 阵列的结构MAC 阵列架构示例 MAC 阵列计算举例示例计算 TOPS 计算方法 NPU 算力
OpenCV 算法会消耗很大一部分自动驾驶芯片的算力在车上堆摄像头的同时也需要堆TOPS那么视觉处理能力为什么用TOPS评估呢通常计算机视觉算法是基于卷积神经网络的而卷积神经网络的本质是累积累加算法Multiply Accumulate。
下图是一个非常生动的卷积过程
MAC 阵列简介
MACMultiply-Accumulate阵列是电子计算领域中的一个基本单元广泛应用于数字信号处理DSP、神经网络加速以及其他需要高效数学计算的领域。MAC 单元能够执行乘积累加运算即在一个操作周期内同时进行乘法和加法运算。
一个 MAC 单元基本上执行以下操作
A A * B CMAC 阵列特点
高效计算MAC 能够在单个操作周期内完成乘法和加法运算大大提高了计算效率。广泛应用在数字信号处理、图像处理、机器学习等领域MAC 是关键的计算单元。并行处理多个 MAC 单元可以并行工作加速复杂计算任务。
MAC 阵列的结构
一个典型的 MAC 阵列由多个 MAC 单元组成每个 MAC 单元独立进行乘积累加运算。通过并行计算和流水线技术MAC 阵列可以显著提高计算性能。
MAC 阵列架构示例
假设我们有一个 4x4 的 MAC 阵列表示有 4 行 4 列共 16 个 MAC 单元。每个单元独立执行如下操作
Sum_{ij} Sum_{ij} (A_i * B_j) 其中( i ) 和 ( j ) 分别表示 MAC 单元的行和列索引。
MAC 阵列计算举例
假设我们有两个向量 ({A} ) 和 ( {B} )并且我们希望计算它们的点积。向量 ( {A} ) 和 ( {B} ) 分别为
{A} [a_1, a_2, a_3, a_4]
{B} [b_1, b_2, b_3, b_4]我们将使用一个 1x4 的 MAC 阵列来计算它们的点积
步骤
初始化设定初始值 {Sum} 0。逐步计算 第一步{Sum} {Sum} (a_1 * b_1)第二步{Sum} {Sum} (a_2 * b_2)第三步{Sum} {Sum} (a_3 * b_3)第四步{Sum} {Sum} (a_4 * b_4)
示例计算
假设 {A} [2, 3, 4, 5] {B} [1, 0, -1, 2] 根据上述步骤我们计算点积
初始化{Sum} 0)第一步{Sum} 0 (2 * 1) 2)第二步{Sum} 2 (3 * 0) 2)第三步{Sum} 2 (4 * -1) 2 - 4 -2)第四步{Sum} -2 (5 * 2) -2 10 8)
最终结果 {A} cdot {B} 8
TOPS 计算方法 图斯拉自动驾驶 FSD 芯片 在NPU中芯片都用 MAC 阵列(乘积累加运算MAC/ Multiply Accumulate) 作为NPU给神经网络加速许多运算如卷积运算、点积运算、矩阵运算、数字滤波器运算、乃至多项式的求值运算都可以分解为数个MAC指令因此可以提高上述运算的效率。
MAC矩阵是AI芯片的核心。TOPS是MAC在1秒内操作的数计算公式为
TOPS MAC矩阵行 * MAC矩阵列 * 2 * 主频公式中的 2 可理解为一个MACC乘加运算为一次乘法和一次加法为2次运算操作。 下面以特斯拉自动驾驶FSD芯片为例。
特斯拉资料中该芯片的目标是自主4级和5级。FSD芯片采用三星德克萨斯州奥斯汀的工厂的14纳米工艺技术制造集成了3个四核Cortex-A72集群共有12个CPU工作频率为2.2GHz1个(ARM的)Mali G71 MP12 GPU2个NPU工作频率为2GHz每个周期从 SRAM 读取 256byte 字节的激活数据和另外128byte的权重数据到MAC阵列中。
每个NPU拥有 96x96 MAC另外在精度方面乘法为8x8bit加法为32bit两种数据类型的选择很大程度上取决于他们降功耗的努力(例如32bitFP加法器的功耗大约是32bit整数加法器的9倍。
在2GHz的工作频率下NPU单核算力为 36.86TOPS:
TOPS MAC矩阵行 * MAC矩阵列 * 2 * 主频 96 * 96 * 2 * 2G 36.864 TOPS单核在点积运算之后数据转移到激活硬件最后写入缓存以汇总结果。
FSD支持许多激活功能包括ReLU、SiLU 和 TanH。每个周期将128byte的数据写回SRAM。所有操作同时且连续地进行重复直到完成整个计算。
推荐阅读 https://gitcode.csdn.net/65ed7c771a836825ed79b0bf.html https://zhuanlan.zhihu.com/p/393418195