Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

update Ascend SoC #266

Merged
merged 2 commits into from
Jul 7, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions 02Hardware/06Domestic/07AscendBase.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,19 @@

数字视觉预处理模块主要完成图像视频的编解码,视频处理,对图像支持 JPEG 和 PNG 等格式的处理。来自主机端存储器或网络的视频和图像数据,在进入昇腾 AI 处理器的计算引擎处理之前,需要生成满足处理要求的输入格式、分辨率等,因此需要调用数字视觉预处理模块进行预处理以实现格式和精度转换等要求。数字视觉预处理模块主要实现视频解码(Video Decoder,VDEC),视频编码(Video Encoder,VENC),JPEG 编解码(JPEG Decoder/Encoder,JPEGD/E),PNG 解码(PNG Decoder,PNGD)和视觉预处理(Vision Pre-Processing Core,VPC)等功能。图像预处理可以完成对输入图像的上/下采样、裁剪、色调转换等多种功能。数字视觉预处理模块采用了专用定制电路的方式来实现高效率的图像处理功能,对应于每一种不同的功能都会设计一个相应的硬件电路模块来完成计算工作。在数字视觉预处理模块收到图像视频处理任务后,会读取需要处理的图像视频数据并分发到内部对应的处理模块进行处理,待处理完成后将数据写回到内存中等待后续步骤。

### 昇腾910
![昇腾 AI 处理器逻辑图](images/ascendarch18.png)

昇腾910处理器的目标场景是云端的推理和训练,其架构如上图所示,包含Davinci Core、DVPP、HBM、DDR4等组件。昇腾910处理器采用了芯粒(chiplet)技术,包含六个die: 1个计算芯粒(包含32个Davinci Core、16个CPU Core和4个DVDP),1个IO芯粒,和4个HBM芯粒(总计1.2TB/s带宽)。针对云端训练和推理场景,昇腾910处理器做的优化包括:
1. 高算力: 训练场景通常使用的Batch Size较大,因此采用最高规格的Ascend-Max,每个Core每个周期可以完成16*16*16=4096次FP16乘累加
2. 高Load/Store带宽: 训练场景下计算反向SGD时,会有大量对Last Level Cache和片外缓存的访问,因此需要配备较高的Load/Store带宽,因此昇腾910除了DDR还采用了HBM技术。
3. 100G NIC: 随着DNN的模型尺寸愈发庞大,单机单卡甚至单机多卡已经不能满足云端训练的需求,为了支持多卡多机组成集群,昇腾910集成了支持ROCE V2协议的100G NIC用于跨服务器传递数据,使得可以使用昇腾910组成万卡集群。
4. 高吞吐率的数字视觉与处理器(DVPP): DVPP用于JPEG、PNG格式图像编解码、图像预处理(对输入图像上下采样、裁剪、色调转换等)、视频编解码,为了适配云端推理场景,DVPP最高支持128路1080P视频解码。

### 昇腾310
![昇腾 AI 处理器逻辑图](images/ascendarch17.png)
昇腾310处理器的目标场景是边缘推理,比如智慧城市、智慧新零售、机器人、工业制造等,其架构如上图所示,主要包含Davinci Core、DVPP、LPDDR4等组件。相比昇腾910,昇腾310的定制化IP相对较少,但是提供了更多外设接口。由于在边缘推理场景下batch size通常只有1,因此昇腾310选择了较小的矩阵计算维度(m = 4, n = 16, k = 16)以实现$C_{mn} = A_{mk}\times B_{kn}$。由于在矩阵运算中$M = batch\_size \times output\_hight \times output\_width$, 当batch size = 1时,将m设置成4可以提升乘累加利用率。

## 卷积加速原理

在深度神经网络中,卷积计算一直扮演着至关重要的角色。在一个多层的卷积神经网络中,卷积计算的计算量往往是决定性的,将直接影响到系统运行的实际性能。昇腾 AI 处理器作为人工智能加速器自然也不会忽略这一点,并且从软硬件架构上都对卷积计算进行了深度的优化。
Expand Down