资讯详情

极智AI | Nvidia Jetson DLA 硬件系统架构

? 欢迎关注我的微信官方账号 [极智视野],分享我更多的笔记

? 大家好,我是极智视野,本文介绍 Nvidia Jetson DLA 硬件系统架构。

? NV 硬件应用广泛,不限于3D图形渲染、AI计算等,而 Jetson 系列是 NV 边缘计算领域的设备主力军。在 Jetson AGX Xavier、Jetson NX 等设备上有 DLA 模块,DLA 全称 Deep Learning Accelerator,它是一个专门用于卷积神经网络前推理加速的模块,可以分享边缘端的一部分 GPU 提高系统处理能力的计算压力。因此,在这些设备中,您可以选择算法加速方法 GPU 加速 和 DLA 加速。让我们在这里谈谈 NVDLA。

文章目录

    • 1 总体结构介绍
    • 2 介绍功能模块
      • 2.1 Convolution Core
      • 2.2 Single Point Data Processor
      • 2.3 Planar Data Processor
      • 2.4 Cross Channel Data Processor
      • 2.5 RUBIK
      • 2.6 BDMA

1 总体结构介绍

? DLA 系统架构分为 Small NVDLA System 和 Large NVDLA System,如下。其中 Small NVDLA System 当强调高性能时,主要面向成本敏感的物联网设备场景,Large NVDLA System 会是更好的选择。两者最大的区别在于 SRAM 和 Microcontroller,Large NVDLA 访存接口有 SRAM 和 DRAM,其中 SRAM 独立存在的接口可以进一步改进 DLA 这是因为计算能力 DRAM 访存延迟较长,与电影中的许多处理器共享带宽,这一次是独立的 SRAM 能有效降低系统带宽压力,提高处理效率。 在这里插入图片描述

? 面对卷积神经网络的加速,NVDLA 可细化成以下模块:

  • Convolution Core:优化高性能卷积引擎;
  • Single Data Processor:激活函数单点搜索引擎;
  • Planar Data Processor:用于池化 pooling 平均发动机;
  • Channel Data Processor:用于归一化 normalization 多通道平均引擎;
  • 专用的 Memory and Data Reshape Engines:内存转换加速引擎用于张量整形和复制操作;

? DLA 内核的清晰硬件架构几乎是这样的:

2 介绍功能模块

2.1 Convolution Core

? Convolution Pipeline 分别有五个阶段:Convolution DMA、Convolution Buffer、Convolution Sequence Controller、Convolution MAC 和 Convolution Accumulator,支持 direct convolution、Winograd 卷积加速、Deconvolution、Multi-Batch Mode 等。其中:

  • Convolution DMA:用于从 SRAM/DRAM 在卷积操作中获取数据,并按卷积引擎要求的顺序存储到缓冲区 (CBUF) 中;

  • Convolution Buffer:卷积缓冲区(CBUF)它总共包含 512KB 的 SRAM。SRAM 缓存来自 CDMA 模块的

    输入像素数据、特征数据和权重数据 CSC 模块读取,CBUF 有两个写作端口和三个读取端口;

  • Convolution Sequence Controller:卷积序列控制器(CSC)负责从 CBUF 将特征数据、像素数据和权重数据加载并发送到卷积 MAC 单元;

  • Convolution MAC:用于从卷积序列控制器(CSC)接收输入数据和权重,执行乘法和加法,并将结果输出到卷积累器中,CMAC 有 16 个 MAC 单元,每个 MAC 单元包含 64 个用于 int16/fp16 的 16 位乘法器,此外,它还包含 72 个用于 int16/fp16 的加法器;

  • Convolution Accumulator:用于从卷积 MAC 累加部分和,并发送到 SDP 之前四舍五入结果 (The final result of accumulator in CACC is 48bits for INT16 and 34bits for INT8);

2.2 Single Point Data Processor

? 支持 Bias addition、non-linear function,如 sigmoid function、relu、hyperbolic tangent、BN、elementwise 等等,有几个功能块,每个功能块都有不同的用途:

  • 可以从 MEM 或 Conv Core 选择输入数据;
  • Block X1/X2 具有相同的架构;
  • Block Y 主要是为 element-wise 设计,但也可以支持 Bias add,PReLU 额外的 LUT 可在输出前选择操作,实现任何非线性操作;
  • Block C1/C2 用于节省位置,同时保持高精度;

2.3 Planar Data Processor

? PDP 支持最大、最小和平均池方法。平面中的几个相邻输入元素将被发送到非线性函数中计算输出元素。

2.4 Cross Channel Data Processor

? 通道处理旨在解决局部响应归一化 (LRN) 层。局部响应归一化通过沿通道方向将局部输入区域归一化来实现横向抑制。归一化函数如下:

? 以上两个方程可以通过编程相应的寄存器绕过,以便将其绕过 CDP 视为独立搜索表 (LUT) 。

2.5 RUBIK

? RUBIK 模块类似于 BDMA。它在不计算任何数据的情况下转换数据映射格式:

  • contract data cube (deconv);
  • split feature data cube into multi-planar formats;
  • merge multi-planar formats to data cube;

2.6 BDMA

? 使用片上 SRAM,NVDLA 需要在外部 DRAM 和 SRAM 可以使用之间的移动数据 BDMA 为了满足这个目的。有两种移动路径,一种是从外部获取数据 DRAM 复制到内部 SRAM,另一种是将数据从内部 SRAM 复制到外部 DRAM,当然,这两个方向不能同时工作。

? BDMA 数据也可以从外部使用 DRAM 移动到外部 DRAM,或从内部 SRAM 移动到内部 SRAM。移动立方体中的所有数据,BDMA 支持行重复,可在多行之间跳转。

? 以上分享 NV Jetson DLA 我希望我的分享能对你的学习有所帮助。

?【微信官方账号传输】

《极智AI | NVIDIA Jetson DLA 硬件系统架构

标签: lrn系列热继电器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台