草榴社区

探讨对于人工智能硬件的数学

作者:草榴社区 高级产物营销经理 John A. Swanson

人工智能 (AI) 有可能从根本上改变我们与设备的互动方式以及我们的生活方式。PB 级数据将能在边缘设备与数据中心之间高效传输,用于处理和计算 AI 任务。处理真实世界数据以及创建该等数据之数学表示的能力乃是实现这一目标的关键前提条件,某些情况下,还将是助力产物脱颖而出的差分因素。在硬件中对函数进行经过优化处理的精准实施可卸载处理单元必须执行的许多操作。随着 AI 系统中使用的数学算法日趋稳定,在硬件中实施函数的需求也在日益增长,这将有利于帮助许多 AI 应用通过硬件实施来释放计算资源。

对 AI 而言,神经网络是需要了解的重要概念之一。神经网络被定义为模拟人脑和神经系统的计算机系统。在硬件中,神经网络是“学习”指定输入之输出的函数。训练即是“学习”。向神经网络展示旨在训练其辨别能力的许多图像是使用数学完成的。

运行训练有素的神经网络来分析和分类数据、计算缺失的数据或预测未来的数据称为推理。通过获取输入数据、将其与加权矩阵相乘、并应用激活函数来确定神经元正在接收的信息是否与指定信息相关或者是否应被忽略,这一过程是为推理。从简单的二进制阶跃函数到更为复杂的激活函数 – 例如广泛使用的 Sigmoid 函数 S(x) = 1/(1+e-x),您可以使用不同的激活函数。 Sigmoid 函数提供 “S” 形曲线,其中当 x 接近 -∞ 时 S(x) = 0,当 x 接近 +∞ 时 ,S(x) = 1。当 x = 0 时,输出为 0.5,如图 1 所示。大于 0.5 的值可标记为 ‘yes’,小于 0.5 的值可标记为 ‘no’,或者您也可以标记曲线值在指定点为 “yes/no” 的百分比或概率。Sigmoid 函数的一个局限性在于当值大于 3 或小于 -3 时,曲线将变得非常平坦,需要极高的精度才能继续学习。  

图 1:Sigmoid 函数是人工神经元广泛使用的激活函数

对于浮点 (FP) 精度需求及其给设计带来的复杂性一直存在争议。当今的神经网络预测通常不需要 32 位甚至16 位数的浮点计算精度。在许多应用中,设计人员均可使用 8 位整数来计算神经网络预测,同时仍保持适当的精度水平。这些问题在设计 AI 应用时又会滋生出新问题。例如,神经网络是否能够识别出所有不同的蓝色阴影,还是仅能识别阴影的颜色为蓝色。

通过 IP 控制设计精度

数学 IP 核心的 DesignWare? Foundation Cores 库,为设计人员在 AI 应用中实施数学结构提供了一组非常灵活的运算。DesignWare Foundation Cores 针对高效的硬件实施进行了优化处理,允许设计人员通过控制设计精度在功耗、性能和面积之间达成平衡,同时满足其独特的设计需求。请参见图 2 显示的基线或简单乘法器与支持多个精度的融合或预构建乘法器的比较情况。

图 2:基线乘法器与支持多个精度的融合乘法器的比较

对于浮点和整数运算,设计人员可以控制运算之间的内部或级间舍入。在浮点运算中,内部舍入控制以及灵活的浮点 (FFP) 格式允许设计人员通过共享通用运算来实现更高效的硬件实施。使用 FFP 格式,设计人员可实施他们自己的专用FP组件和位精确 C++ 模型,他们可以探索组件的面积和精准度,以确保满足设计特定的需求。

浮点算法是一系列原子运算的组合。支持浮点设计的IP基于作为浮点算法组成部分的子函数。为了认识子函数,让我们看一个浮点加法器的简单框图,如图 3 所示。

图3:基于子函数、以 IP 为基础的浮点设计

浮点加法器中有两条主要路径:指数计算和有效数计算。这两种路径通过交换信息以生成最终的计算结果。当有效数被缩放时,指数也需做出相应调整。主要子函数中包括支持对齐、定点加法、归一化和舍入的有效数计算。归一化在构成浮点加法器的逻辑中占据很大比例,消除归一化将给硬件优化带来余量。然而,同时还可能导致运算期间丢失有效位。有效数的内部值以定点表示,并且与指数计算通道中的指数值紧密相关。要实施子函数,您需要设法同时进位指数和定点有效数,就像在标准浮点系统中一样,但相比之下,会有更少的限制和特例。

在一系列浮点加法中,归一化和舍入步骤是关键路径的重要组成部分。在创建复合运算时,您通常应将归一化和舍入保留到一系列运算的最后阶段。这是因为在不进行归一化或舍入的情况下直接访问浮点运算的内部定点值,可以降低复杂性、减少面积、缩短关键路径,并允许设计人员控制内部精度。图 4 为两级加法器的简单示例。

通过消除归一化和舍入,数值行为发生了变化。首先,第一个 FP 加法器中的指数计算得到稍许简化。其次,浮点输出的表示不再符合 IEEE 754 标准。第三,链中的第二个浮点加法器需要理解这个新的表示,它需要对先前的计算有所了解以便做出决定。

图 4:来自更简单子块的复合函数

草榴社区 的 DesignWare Foundation Cores 为创建涉及到 IP 的项目提供了所需的组件库。在配置每个组件时,RTL 和 C 模型都将安装到包含与组件验证和实施相关的所有文件的项目目录中。设计完成后,文件将集成到更大规模的 SoC 设计中,设计人员将可以针对下一代产物继续优化 RTL。

总结

AI 的爆炸式增长正在推动新一轮的设计浪潮,为了 AI 能与现实世界的设备进行更直接的互动。处理现实的世界数据以及创建该等数据数学表示的能力是关键成功要素。设计人员正在尝试通过多种不同方法将 AI 应用到他们的产物中。对函数进行经过优化处理的精准硬件实施可以卸载处理单元必须执行的许多运算。在硬件中实施数学算法为 AI 系统带来优势。

DesignWare Foundation Cores 为设计人员提供了强大的工具,可以快速满足他们的设计独特需求,并允许他们通过不同的配置和实施来探索如何实现精准设计,在精准性、功耗、性能和面积之间达成平衡。通过精确的 C++ 模型,设计人员可在已生成的模型上快速允许仿真系统,以确保其 AI 设计满足项目要求。

 

如想了解更多信息:

网址:DesignWare Foundation Cores