极智AI | 一文看懂Google TPU脉动阵列加速卷积计算原理

本文涉及的产品
视觉智能开放平台,视频通用资源包5000点
视觉智能开放平台,图像通用资源包5000点
视觉智能开放平台,分割抠图1万点
简介: 本教程详细解释了 Google TPU 脉动阵列加速卷积计算原理。

本教程详细解释了 Google TPU 脉动阵列加速卷积计算原理。

TPU 中计算卷积的方式和 GPU 不同,主要是依靠一种称为 “脉动阵列” 的硬件电路结构来实现的。脉动阵列的主体部分是一个二维的滑动阵列,其中每一个节点都是一个脉动计算单元,可以在一个时钟周期内完成一次乘加操作。脉动阵列中的行数和列数可以相等,也可以不相等,在每行每列的计算单元之间通过横向或纵向的数据通路来实现数据的向右和向下滑动传递。

举例:如下图,特征图像 F 大小为 3 x 3,通道数为 2;卷积核 W 和 G 大小为 2 x 2,卷积核个数为 2。

以这个例子来解释脉动阵列实现卷积加速的过程。在这个例子中,采用固定卷积核权重,横向和纵向脉动输入特征值和中间部分和的方式。如下图所示,首先将 2 个 2 通道 W 和 G 卷积核权重静态地存储到脉动阵列的计算单元中,其中对应同一个卷积核的 2 个通道权重被排列在同一列中。再将 2 个通道的输入特征图 F 排列展开,每一行都错开一个时钟周期,并准备依次输入到脉动阵列中。

当要用 2 个通道输入特征图 F 和卷积核 W 及 G 进行卷积时,F 首先通过重排,通过左侧数值载入器输入到脉动阵列最左边的一列中。输入值从上到下,每一行进入脉动阵列的数据都会比上一行延迟一个时钟周期。在第一个时钟周期内,输入值 F00 进入 W00 乘加单元与 W00 权重进行乘加运算,产生单元结果 Y00,此为 Y00 的第一部分和。脉动阵列第 1 个时钟周期的计算状态如下图。

在第二个时钟周期内,上一次 W00 乘加单元的部分和 Y00 被向下传递到 W01 乘加单元中,同时第二行输入值 F01 与 W01 相乘的单元结果与传递下来的 Y00 相加得到 Y00第二次部分和。而 F01 进入 W00 乘加单元中,进行乘加运算求出 Y01 的第一次部分和。与此同时 F00 向右滑动进入 G00 乘加单元中求出单元结果 Y10 的第一次部分和。脉动阵列第 2 个时钟周期的计算状态如下图。

以此类推,输入的特征值沿着脉动阵列的行水平方向不断向右滑动开启不同卷积核各自的部分和。而对应于每一个卷积核的部分和沿着脉动阵列的列垂直方向不断向下滑动并和当前计算单元的结果相累加,从而在每一列的最下方的计算单元中得到最终累加完成的对应于该卷积核所有通道的卷积结果。

这个例子中在第 8 个时钟周期会得到第一个卷积结果,如下图。

而从第 9 个时钟周期开始,如下图。每次都可以得到两个卷积结果,直到所有的输入特征图像都被卷积完毕。脉动阵列通过横、竖两个方向的同时脉动传递,输入值呈阶梯状进入阵列,顺次产生每个卷积核的最终卷积结果。

脉动阵列的特性决定数据必须按照事先安排好的顺序依次进入,所以每次要填满整个矩阵就需要一定的启动时间,而这段时间往往会造成硬件资源的浪费。启动时间通常可以通过脉动阵列的 “行数 + 列数 - 1” 计算得到。当度过启动时间后,整个脉动阵列进入满载状态,可以发挥出最大的吞吐率。

在上面的例子中采用了固定卷积核权重,横向脉动输入特征值,纵向脉动部分和的方式来计算卷积结果。同理,也可以采用固定部分和,横向脉动输入特征值,纵向脉动卷积核权重的方式来计算得到同样的结果。事实上,可以任意选择脉动三个变量中的两个而固定另外一个的方式来实现卷积计算,具体的选择会依据各种实现方式的实际情况和应用需求来决定。

需要指出的是,当计算的卷积核过大或者通道太多时,如果把所有通道的权重都串联在一列上,那么势必造成脉动阵列过于庞大或者畸形,不便于现实的电路设计。这时候往往采用分割计算、末端累加的方式来解决这个问题。系统会把多通道的权重数据分割成几个部分,每个部分都能够适合脉动阵列的大小。然后依次对每个部分的权重进行计算,计算完成的结果会临时存放在脉动阵列底部的一组加法累加器中。当换入另一组权重块后结果就会被累加,直到所有权重块都遍历完成,累加器累加所有的结果后输出最终值。

TPU 中的脉动阵列仅仅完成了卷积的工作,而完成整个神经网络的计算还需要其他计算单元的配合。如下图,矢量计算单元通过输入数据端口接收来自于脉动阵列中的卷积计算的结果,通过激活单元中的非线性函数电路来产生激活值,激活函数可以根据网络需求来定制。在适量计算单元中,还可以通过归一化函数对激活值进行归一化,再经过池化单元就可以对激活值进行池化输出。这些操作都由队列模块进行控制。例如队列模块可以通过配置参数的端口指定激活函数、归一化函数或池化函数,以及处理步长等参数。矢量计算单元处理完成后将激活值发送到片上的统一缓冲区中暂存,作为下一层网络的输入。TPU 按照这种方法,一层一层地完成整个神经网络的计算。

虽然脉动阵列主要用来加速神经网络的推理计算,但这个架构不光是只能处理卷积,它在进行通用矩阵计算时依然高效且强大,因此还可以用来完成除了卷积神经网络以外的其他一系列工作,比如全连接神经网络、线性回归、逻辑回归、分类(如K均值聚类)与视频编码和图像处理等。


logo_show.gif


相关文章
|
13天前
|
人工智能 并行计算 PyTorch
以Lama Cleaner的AI去水印工具理解人工智能中经常会用到GPU来计算的CUDA是什么? 优雅草-卓伊凡
以Lama Cleaner的AI去水印工具理解人工智能中经常会用到GPU来计算的CUDA是什么? 优雅草-卓伊凡
53 4
|
2月前
|
人工智能 自然语言处理 机器人
AI Compass前沿速览:Jetson Thor英伟达AI计算、Gemini 2.5 Flash Image、Youtu腾讯智能体框架、Wan2.2-S2V多模态视频生成、SpatialGen 3D场景生成模型
AI Compass前沿速览:Jetson Thor英伟达AI计算、Gemini 2.5 Flash Image、Youtu腾讯智能体框架、Wan2.2-S2V多模态视频生成、SpatialGen 3D场景生成模型
AI Compass前沿速览:Jetson Thor英伟达AI计算、Gemini 2.5 Flash Image、Youtu腾讯智能体框架、Wan2.2-S2V多模态视频生成、SpatialGen 3D场景生成模型
|
1月前
|
人工智能 异构计算
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
|
1月前
|
机器学习/深度学习 人工智能 容灾
硅谷GPU云托管:驱动AI革命的下一代计算基石
在人工智能与高性能计算席卷全球的今天,硅谷作为科技创新的心脏,正通过GPU云托管服务重新定义计算能力的边界。无论您是初创公司的机器学习工程师,还是跨国企业的研究团队,硅谷GPU云托管已成为实现突破性创新的关键基础设施。
|
6月前
|
存储 人工智能 自然语言处理
RAG 调优指南:Spring AI Alibaba 模块化 RAG 原理与使用
通过遵循以上最佳实践,可以构建一个高效、可靠的 RAG 系统,为用户提供准确和专业的回答。这些实践涵盖了从文档处理到系统配置的各个方面,能够帮助开发者构建更好的 RAG 应用。
2894 114
|
4月前
|
机器学习/深度学习 传感器 人工智能
AI与智能驾驶的关系和原理:技术融合与未来展望-优雅草卓伊凡
AI与智能驾驶的关系和原理:技术融合与未来展望-优雅草卓伊凡
178 3
AI与智能驾驶的关系和原理:技术融合与未来展望-优雅草卓伊凡
|
5月前
|
存储 人工智能 供应链
AI Agent智能体:底层逻辑、原理与大模型关系深度解析·优雅草卓伊凡
AI Agent智能体:底层逻辑、原理与大模型关系深度解析·优雅草卓伊凡
1206 2
AI Agent智能体:底层逻辑、原理与大模型关系深度解析·优雅草卓伊凡
|
8月前
|
机器学习/深度学习 人工智能 搜索推荐
BioEmu:微软黑科技炸场!生成式AI重构蛋白质模拟:千倍效率碾压传统计算,新药研发周期砍半
BioEmu 是微软推出的生成式深度学习系统,可在单个 GPU 上每小时生成数千种蛋白质结构样本,支持模拟动态变化、预测热力学性质,并显著降低计算成本。
398 2
BioEmu:微软黑科技炸场!生成式AI重构蛋白质模拟:千倍效率碾压传统计算,新药研发周期砍半
|
9月前
|
机器学习/深度学习 人工智能 自然语言处理
人工智能与情感计算:AI如何理解人类情感
人工智能与情感计算:AI如何理解人类情感
1521 20
|
10月前
|
人工智能 缓存 并行计算
转载:【AI系统】CPU 计算本质
本文深入探讨了CPU计算性能,分析了算力敏感度及技术趋势对CPU性能的影响。文章通过具体数据和实例,讲解了CPU算力的计算方法、算力与数据加载之间的平衡,以及如何通过算力敏感度分析优化计算系统性能。同时,文章还考察了服务器、GPU和超级计算机等平台的性能发展,揭示了这些变化如何塑造我们对CPU性能的理解和期待。
转载:【AI系统】CPU 计算本质

热门文章

最新文章

推荐镜像

更多