"城市+AI"专题-赛道D背景

聚焦新型智慧城市算力基础设施和城市治理细分环节的计算服务体系,围绕人工智能在新型智慧城市建设中的赋能应用设置赛题,面向数字孪生城市、智能化城市数据分析、环境仿真模拟、智慧交通、数字安防、智慧医疗等典型应用场景,遴选先进计算技术产品提升城市运行监测能力、事件调度处置能力的优秀产品和解决方案。

2024D3-人工智能特殊函数单元模块设计及优化

赛题背景及意义

背景:聚焦新型智慧城市算力基础设施和城市治理细分环节的计算服务体系,围绕人工智能在新型智慧城市建设中的赋能应用设置赛题,面向数字孪生城市、智能化城市数据分析、环境仿真模拟、智慧交通、数字安防、智慧医疗等典型应用场景,遴选先进计算技术产品提升城市运行监测能力、事件调度处置能力的优秀产品和解决方案。

赛道赛题

赛题概述:

要求设计一特殊函数单元模块,用以支持深度学习和LLM领域需要的基本函数。

指数函数作为典型的非线性函数,在现有激活函数中被最为广泛的应用,使用指数函数的典型算子包括Sigmoid函数、Swish函数、ELU函数等。因此指数函数成为关注度非常高的基本函数。

对于非线性函数支持,通常有泰勒展开法、查表法、分段线性拟合法、坐标旋转数字计算法(CORDIC)等:

  • 泰勒展开法实现简单,只有浮点数加法和乘法,更换不同的系数可以实现任意函数的计算。缺点是获取较高精度需要进行高次展开,将会带来较多的乘法器和加法器消耗,同时串行的计算过程将会带来与展开次数相关的时延;
  • 查表法是最简单的实现方法,通过直接对输入值进行查表获取非线性函数的输出值。然而,这种方法即使在输入输出均为FP16的情况下,也需要消耗16655362bit = 256KB的查找表资源,开销过大难以接受;
  • 分段线性拟合法通过将函数分为多段,将每段近似为线性函数进行拟合。其优点是实现简单并有扩展到其他函数的能力。缺点是计算精度较低,同时在分段数较多时也会预先存储大量查找表参数(1-2KB);
  • 坐标旋转数字计算方法(CORDIC)最初是用来计算三角函数,后被推广至计算其他函数,这种方法通过多次迭代逼近所求函数值。因此其计算速度较慢,同时这种迭代计算的精度难以保证;

特殊函数单元的设计往往需要综合以上方法的优点,在有限的硬件资源下实现多种基本函数的高精度和高能效支持。

另外,由于深度学习和LLM结构多样,在不同模型和场景中需要不同的非线性函数计算以支持不同类型的激活函数等操作。因此如果上述特殊函数单元设计能够经过简单扩展、配置就能支持其他函数,就给非线性计算提供了良好的适配能力和可扩展性。

1.赛题概述

初赛:

根据赛题参考信息文档第三节指数函数(exp)的实现思路或另设计方案,完成exp函数功能单元设计,输出:

(1) 设计方案文档;

(2) 软件模拟仿真:体现计算正确性和计算精度。

2. Exp(x)实现思路介绍

  • 23位尾数(fraction又名mantissa)

复赛

2.评判标准

需要完成一种SFU模块设计,实现指数函数以及其他多种函数的计算,并给出详细的原理和设计文档。同时,基于MATLAB或Python、C/C++等语言进行软件模拟仿真,验证输入任意FP16浮点数时,所设计的SFU模块能够输出满足精度要求的结果。此外,利用RTL编写SFU模块进行电路设计和仿真为加分项。

1. 电路输入:基于IEEE754标准的FP16半精度浮点数;

  • 构成:符号位1位,指数位5位,尾数位10位
  • 绝对值最大值65504(0x7bff),绝对值最小值5.9604644775390625e-8(0x0001)

2. 乘法器资源:不超过20个FP16乘法器/加法器;(资源使用少、加分项)

3. 查找表资源:不超过4KB查找表;(资源使用少、加分项)

4. 计算性能:流水下每周期可以输出一个基本函数的计算值;

5. 计算函数:

  • 指数函数(必选);
  • 反三角函数(进行分析,分析报告加分项,能支持加分项);
  • 对数函数、特定幂函数(-1,1/2)、三角函数等(支持多,加分项)

6. 精度要求:FP16全定义域下,计算值与真实值相对误差不超过1%;

  • 注:对于指数函数,FP16定义域即为(-16.635543,11.089866)

调优思路及性能对比

详情见PPT展示。

2024D3-周末不上班-FastExp函数设计与实现-20241209.pdf

现场风采




分类: 竞赛

0 条评论

发表回复

Avatar placeholder

您的邮箱地址不会被公开。 必填项已用 * 标注