An open API service indexing awesome lists of open source software.

https://github.com/witmemtech/the-2nd-actic-test

在存算一体阵列中,权重的排布直接影响到存算单元的利用率与阵列的计算效率,是存算芯片在编译环节的重点优化对象。排布算法的效率、阵列面积的利用率以及阵列的计算效率是神经网络在存算一体芯片上部署的重要指标。
https://github.com/witmemtech/the-2nd-actic-test

Last synced: 5 months ago
JSON representation

在存算一体阵列中,权重的排布直接影响到存算单元的利用率与阵列的计算效率,是存算芯片在编译环节的重点优化对象。排布算法的效率、阵列面积的利用率以及阵列的计算效率是神经网络在存算一体芯片上部署的重要指标。

Awesome Lists containing this project

README

          

# The-2nd-ACTIC-Test
赛题背景说明:
“存算一体”架构从物理上消除了存储单元与计算单元之间的距离,是突破冯诺依曼架构“存储墙”、“功耗墙”瓶颈的关键技术。自2016年以来,“存算一体”技术引发了学术界和产业界的高度关注,是被给予“国产算力期望”的重要技术路线之一。
在存算一体阵列中,权重的排布直接影响到存算单元的利用率与阵列的计算效率,是存算芯片在编译环节的重点优化对象。排布算法的效率、阵列面积的利用率以及阵列的计算效率是神经网络在存算一体芯片上部署的重要指标。

1.赛题概述

针对存算一体部署的关键指标,设计赛题如下:

搭建神经网络算法到硬件部署的简化流程框架,包括但不限于以下三个环节:

1) 模型解析:完成onnx模型中Conv算子参数提取,确定权重矩形块的参数;

2) 编译映射:抽象“存算阵列”权重映射排布为数学建模问题;

a) 使用“大矩形”表示“存算阵列”,“小矩形”表示“权重块”;

b) 设计算法完成“小矩形”在“大矩形”范围内的排列(如图1);

c) 针对各项指标优化算法。

3) 配置验证:设计模拟器完成结果的测试验证。

a) 测试排布的合理性;

b) 测试存算阵列的执行效率:

• “空矩形”可视为一个计算核,计算核间可以并行计算;

• 每个计算核在单周期内可完成一次矩阵计算;

• 矩阵计算存在数据依赖关系;

• 矩阵切分为n块,则需要n个周期进行计算。

![image-20241218180347704](C:\Users\18475\AppData\Roaming\Typora\typora-user-images\image-20241218180347704.png)

2.赛题任务

2.1.专题赛

(一) 任务内容 参赛队伍需实现神经网络模型到存算阵列的部署框架。

具体要求如下:

1) 不限编程语言和算法,可自建工程也可基于开源项目进行二次开发;

2) 需要保留部署过程中各环节的中间结果,中间结果文件格式可自定义;

3) 针对编译映射环节:

a) “存算阵列”(对应图1 “空矩形”)规模在可选范围内自定义: • 可选范围:长×宽(128×128 - 4096×4096); • 阵列规模一旦确定,不可在运行时动态调整。

b) 权重矩阵可复制使用,也可划分(仅限水平、垂直方向切分)使用。

(二) 需提交内容:

1) 设计报告:参赛队伍需提交设计报告(doc/docx及pdf文件),

内容需包含:

a) 引言;

b) 工作原理与关键技术原理分析(包括基本概念、处理流程以及数学建模等)、结构设计(包括结构选择、模块划分、技术选型、接口描述等);

c) 详细设计与实现(包括软件流程图、关键代码分析等)、优化排布论证与分析;

d) 程序运行效果与实验结果;

e) 总结;

f) 参考文献和团队介绍。

2) 介绍PPT:主要工作、创新点、结果、结论。

3) 演示视频:提交演示视频一份(MP4格式)

a) 时长控制在5分钟以内;

b) 视频主要展示实现的全流程、优化排布思路及优化前后效果对比;

c) 视频讲解清晰完整,演示过程流畅,数据展示有说服力;

4) 设计代码:工程代码应该与设计报告中的详细设计相匹配。

2.2总决赛

(一) 任务内容 在专题赛的要求上,增加限制,参赛队伍修改模型解析和配置验证环节,并进一步优化映射算法。

1) 调整模型解析,增加FC和Linear算子的提取;

2) 调整执行效率的计算方式如下:

a) 权重矩阵的长对应输入的数据量,宽对应输出的数据量;

b) 对于当前矩阵的计算,当输入的数据量足够时,可以顺利的在当前周期进行计算;不足够时,则需要等上一个(数据依赖的)矩阵块运行积攒输出数据,直到满足条件(积攒的数据量≥需要输入的数据量)才能开始计算。

2.3评判标准

![image-20241218180650616](C:\Users\18475\AppData\Roaming\Typora\typora-user-images\image-20241218180650616.png)

![image-20241218180733623](C:\Users\18475\AppData\Roaming\Typora\typora-user-images\image-20241218180733623.png)