近年来,随着人工智能的迅速发展,尤其是神经网络模型复杂性的不断提升,对计算资源的需求也急剧增加。人工智能中的许多计算任务,如矩阵乘法、卷积运算和反向传播等,涉及高维数据(张量)的频繁处理。随着模型规模和数据量的指数级增长,传统的通用处理器硬件计算效率和能效逐渐面临瓶颈,这种挑战在大规模数据中心或云计算环境中尤为突出,如何在保持高吞吐量的同时降低能耗,成为深度学习领域亟待解决的重要问题。
为应对这一挑战,张量计算加速器应运而生,作为一种专为深度学习任务设计的硬件加速器,旨在优化大规模矩阵运算和高维张量运算,通过硬件级别的优化提升计算效率和能效。
四、赛题意义
张量处理在深度学习、科学计算、数据分析等领域应用需求广泛,且在学术与工程领域具有较高的研究实践价值。张量处理中的高复杂度、并行与分布式机制、内存管理优化及可扩展性、可移植性等关键技术点是高性能计算加速领域亟需解决的难点,也是先进计算技术的一个核心方向。本赛题凝练了一个典型的张量计算单元规格,赛题实践过程中可培养学生的算法模型构建及硬件逻辑设计能力,引导学生深入理解软件算法与硬件结构之间的原理与联系,提升创新设计能力,达到锻炼人才的目的。同时,赛题的实施亦能促进高能效先进计算领域的技术沟通与交流,推动计算处理领域的技术发展。
五、赛题内容
赛题设计一款张量计算单元,接口定义如图1所示,能够加速矩阵乘加运算,如图2所示。
图1 张量计算单元输入输出接口定义
图2 矩阵乘加计算示意图
张量计算单元设计规格与要求如下:
1、支持1个AXI4-Full slave接口,用于读取输入矩阵A(m×k)、B(k×n)、C(m×n);
2、支持1个AXI4-Full master接口,用于写回输出矩阵D(m×n);
3、支持1个AXI或APB接口用于配置张量处理单元内部寄存器(寄存器由参赛队伍自行定义);
4、支持m16n16k16、m32n8k16、m8n32k16(矩阵A维度为m×k;矩阵B维度为k×n,矩阵C、D维度为m×n)的矩阵乘加运算,至少需要支持INT4、INT8、FP16、FP32四种数据精度,需要考虑计算结果溢出的情况。要求对不同精度的乘法进行硬件资源复用设计。
5、支持混合精度计算模式(例如在FP16 Mixed Precision模式下,以FP16数据精度进行乘法运算,以FP32数据精度进行累加运算;参赛队伍也可以选择其他混合精度模式)。
6、要求设计模块FPGA综合频率不低于200MHz。(建议在Vivado平台下,使用VCU118 XCVU9P-L2FLGA2104E FPGA芯片进行综合,禁用DSP单元)
7、加分项一:支持其它数据精度,需要说明选择扩展某种数据精度支持的理由。或者支持其它混合计算模式,需要说明选择扩展某种混合计算模式支持的理由。
8、加分项二:支持稀疏张量计算。例如可以参考支持4:2稀疏类型,参赛队伍也可以考虑其他的稀疏类型,提供自己的选择理由即可。
9、赛题基本要求部分的测试数据集后续发布;设计阶段可以自行设计测试数据。加分扩展部分参赛队伍自行提供测试数据进行设计验证和展示。
10、加分项扩展部分需要介绍扩展理由和意义,可以从应用需求、相关研究等方面阐述。在初赛阶段不考察加分项内容;分区决赛阶段的评分仅加入一项加分项的考察评分;总决赛阶段的评分可加入两项加分项的考察评分。
六、提交内容
七、评分标准
内容 | 分值 | 评分具体要求 |
1.文件及报告完整性 | 10分 | 1. (5分)Verilog设计代码以及验证测试环境 2. (5分)详尽完整的设计word文档以及答辩PPT |
2. 设计完成度及架构与指标 | 65分 | 1. (10分)支持m16n16k16、m32n8k16、m8n32k16的矩阵乘加运算 2. (20分)支持INT4、INT8、FP16、FP32数据格式,每种数据格式5分。 3. (10分)硬件资源复用方案 4. (10分)支持混合精度计算模式 5. (5分)支持计算结果溢出的情况 6. (10分)设计的综合频率、面积、功耗、理论算力值等指标。 |
3.代码可读性及可实现性 | 10分 | (10分)是否有良好的代码编写风格,以及代码可读性及可实现性。 |
4.答辩和现场演示 | 15分 | (15分)答辩PPT的完整度,以及现场表达的清晰度和流畅度,现场问答表现 |
5.FPGA验证(附加分) | 10分 | (10分)完成设计模块的FPGA验证 |
6.数据精度、混合计算模式扩展(附加分) | 10分 | 1. (5分)设计实现 2. (5分)扩展理由 |
7.稀疏张量计算扩展(附加分) | 10分 | 1. (5分)设计实现 2. (5分)扩展理由 |
八、参赛说明