全球首个软硬件推理平台 NVDLA 编译器正式开源,用户可凭借其源代码在云端自主设计推理用 AI 芯片。
为深度学习设计专用硬件加速器愈加受到欢迎,但如果想要使用新的设计方法来实现最先进的性能和效率,这无疑是一个复杂且具有挑战性的问题。
2017 年,为促进推理用深度学习加速器的设计,英伟达开源了NVDLA(全称 NVIDIA DeepLearning Accelerator),其中包括完整的源代码:Verilog 代码、C_Model 代码等。而且在英伟达 Jetson AGX Xavier开发套件中,也可以找到 NVDLA,它为 AI 提供了 7.9 TOPS / W 的最佳峰值效率。
近期,英伟达又在GitHub上开源了 NVDLA 编译器的源代码,这是世界上首个软硬件推理平台的完整开源代码,也是为系统架构师和软件团队提供的一个用于深度学习加速器设计的起点。
本篇文章将主要介绍网络图形编译器在实现专用硬件加速器能效这一关键目标中所扮演的角色,以及展示如何在云端构建和运行自定义 NVDLA 软硬件设计。
NVDLA 架构图
使用 NVDLA 进行物体检测
NVDLA 编译器性能和效率
NVDLA 核心具有六个专用硬件单元,可以同时调度,也可以在流水线配置中调度。它还具有小型和大型硬件配置文件,其中大型配置文件包括部分高级功能,如芯片上的 SRAM 接口、连接微控制器的能力等。
硬件架构采用模块化设计,可以从小型嵌入式物联网设计扩展到使用 NVDLA 阵列的大型数据中心级芯片。编译器可以根据各种选择因素进行调优:NVDLA 硬件配置、系统的 CPU、内存控制器配置、应用程序的自定义神经网络用例等。
更多有关 NVDLA 的详细信息请点击这里。
NVDLA 小型配置文件模型
编译器优化(如层融合和流水线调度)适用于较大的 NVDLA 设计,可在各种神经网络架构中提供高达 3 倍的性能优势。这种优化是实现大型网络模型(如 ResNet-50)和小型网络模型(如 MobileNet)能效的关键。
对于较小的 NVDLA 设计,编译器优化(如 Memory tiling )对于提高能效至关重要。Memory tiling 是一种在权重和激活数据之间,平衡芯片内缓冲器使用的设计,能够减少芯片外存储器的流量和功耗。
此外,用户可以自由地创建定制的图层,并根据特殊用例进行调优,或者使用研究中所发布的最新前沿算法进行实验。
用户还可以根据下面的性能数字,评估 NVDLA 大型模型的预期性能。这里的测试结果是使用 Jetson AGX Xavier 开发工具包上的两个 NVDLA 核心之一捕获的。
在 AWS 上使用 RISC-V 和 FireSim 进行设计
通过这个编译器版本,NVDLA 用户可以访问、集成、增添和探索 NVDLA 平台所需的软件和硬件源代码。设计深度学习加速器入门的最佳方法之一是:直接使用 NVDLA 上的 YOLOv3 和云端的 RISC-V、 FireSim 进行对象检测。
要使用 FireSim-NVDLA,需要按照 FireSim 的操作说明,直到能够运行一个单节点模拟为止。在按照步骤进行操作时,请在“设置 FireSim Repo”部分中,验证是否正在使用 FireSim-NVDLA 存储库,如下所示:
使用 NVDLA 运行单节点模拟之后,请按照 NVDLA 上运行 YOLOv3 教程中的步骤操作,YOLOv3 会很快运行。
SiFive 使用 NVDLA 进行深度学习推理
评论