关键词:
数字电路设计
Transformer神经网络
硬件加速器
UVM
功能验证
摘要:
人工神经网络是人工智能技术的重要分支,随着人工智能技术的不断发展,人工神经网络被成功应用到了各个社会领域。Transformer神经网络是一种接收序列信息并根据序列信息进行预测的人工神经网络结构,它接收序列信息并使用多头自注意力进行预测,对输入序列的每个位置进行计算,能够很好地对长序列信息进行建模。虽然Transformer在多种任务上表现出色,但由于其结构复杂,参数量大,需要大量的计算资源,这限制了其应用范围。因此,设计专门的神经网络加速器来支持Transformer神经网络是必要的。通过对神经网络中涉及的算法进行硬件设计,可以为Transformer神经网络提供强大的算力支持,从而扩大其应用场景。本文首先对Transformer神经网络的基本结构以及其中的位置编码,多头自注意力机制等核心算法进行了介绍,在此基础上介绍了一种用于图像识别的Transformer结构:Vision Transformer。然后本文对通用验证方法学的基本机制进行了讲解。本文将Transformer神经网络中的算法拆解为矩阵乘加运算,归一化运算,指数运算,除法运算等算子,并针对每种算子给出了相应的硬件实现优化方法:通过并行计算结构优化矩阵运算;通过复用矩阵乘法模块实现归一化运算;通过数学近似以及泰勒展开将以自然对数为底的指数运算和除法运算转换为硬件上简单的乘法、加法和移位操作。随后本文详细阐述了Transformer神经网络硬件加速器的硬件系统架构设计,以及硬件系统中各个模块的具体设计,并使用硬件描述语言Verilog进行了代码描述。在完成硬件设计后,使用通用验证方法学对加速器中的各个模块进行仿真验证,通过为每个模块分别搭建验证平台,根据模块功能编写测试用例,来确保各模块工作符合预期。模块级验证工作完成后,将各模块的验证环境进行集成,构建系统级验证平台,在加速器上运行Vision Transformer算法识别MNIST数据集,运行结果显示硬件识别正确率为98.51%,相比软件运算正确率仅有小幅下降。最后将硬件加速器的运算速度与GPU和CPU进行比对,结果显示Transformer神经网络硬件加速器计算速度优于GPU,对比CPU有着4.4倍的性能优势,在并行识别多张图片的情况下达到了良好的加速效果。