选自NVDLA
机器之心编译
参与:李亚洲、蒋思源
近日,英伟达深度学习加速器(NVDLA)项目推出了一种标准化的开放框架以解决执行推断(inference)的计算需求。NVDLA 架构不仅结合了可扩展性和可高度配置性,并且模块的设计始终保持灵活性与简单的集成性。NVDLA 架构通过与主要的深度学习网络保持互通而标准化了深度学习的加速提升,因此它有助于规模化地统一机器学习的增长。
项目地址:http://nvdla.org/
NVDLA 硬件提供了一个简单、灵活和鲁棒的推断加速解决方案。NVDLA 硬件支持各种性能水平,并能轻松地从小型、成本敏感的物联网设备(IoT)扩展到大型性能指向型的 IoT 应用范围。NVDLA 基于开放工业标准提供一组 IP-core 模型:Verilog 模型为 RTL 形式下的综合模拟模型、TLM SystemC 模拟模型能用于软件部署、系统集成和测试。NVDLA 软件生态系统包括设备内的软件堆栈(部分为开源版)、用于构建结合深度学习新模型的完整训练基础设施以及可以将现有模型转换为设备可用的软件解析器。
NVDLA 引入了一个模块架构以简化配置、集成和可移植性,这主要是因为该构建块能用于加速核心深度学习推断运算。NVDLA 硬件主要由以下几个模块组成:
这些模块都是分离的和独立配置的,每个单元的调度操作都被委派给协同处理器(co-processor)或中央处理器,它们可以以非常细粒度的调度边界进行操作,因此每一个单元操作都是独立的。此外,密切管理的调度需要通过外加专用管理协同处理器成为 NVDLA 子系统的一部分。因此,NVDLA 硬件架构能够服务于各种大小的实现。
NVDLA 硬件利用标准实践与系统的其余部分进行接口交互:控制通道以实现寄存器文件和中断接口,并使用一对标准的 AXI 总线接口与存储器进行交互。此外,异构存储器接口可实现不同类型主机系统之间的额外灵活性。
NVDLA 实现一般可分为两个类别:
下图 1 的 Small 系统模型,展示了 NVDLA headless 的实现示例,Large 系统模型展示了有理解力的实现。前者是对成本敏感的设备建立的实现,后者增加了一个专门的控制协同处理器和高带宽 SRAM 支持的 NVDLA 子系统。Large 系统模型更面向可一次性运行许多任务的高性能 IoT 设备。
图 1:两个可能的 NVDLA 系统对比
NVDLA 架构可被编成进两种运算模式:独立模式、融合模式。
图 2:NVDLA 核心的内部架构
据介绍,全部软件生态系统都支持 NVDLA,包括设备上软件堆栈、NVDLA 开源发布的部分软件。此外英伟达也将提供完整的训练基础设施,来建立融合深度学习的全新模型,并将已有的模型转换为 NVDLA 软件可用的形式。常见流程图如下图所示:
图 3:NVDAL系统软件内部的数据流程图
原文地址:http://nvdla.org/primer.html
本文为机器之心编译,转载请联系本公众号获得授权。