近期,NVIDIA 推出了深度学习加速器(NVDLA)项目,旨在提供一套标准化的开放框架以满足推理计算的需求。NVDLA 架构具备扩展性和高度可配置性,其模块设计保持灵活性与集成简便性。通过与主流深度学习网络保持兼容,NVDLA 实现了深度学习加速,从而促进了机器学习的规模化发展。
NVDLA 硬件提供了一个简洁、灵活且健壮的推理加速方案,适应不同性能水平,从成本敏感的物联网设备(IoT)到高性能 IoT 应用均可轻松扩展。它基于开放工业标准提供一组 IP-core 模型,包括 Verilog 模型(用于 RTL 形式的综合模拟)、TLM SystemC 模型(用于软件部署、系统集成和测试),以及一系列支持设备内软件堆栈的开源版本、构建深度学习新模型的完整训练基础设施,以及将现有模型转化为适用于设备的软件解析器。
NVDLA 的模块化架构简化了配置、集成和移植性,通过优化的核心组件加速关键的深度学习推理运算。其主要模块包括:
每个模块都是独立配置和调度的,通过协同处理器或中央处理器进行精细粒度的操作。此外,管理调度需要专用的协同处理器作为 NVDLA 子系统的组成部分。NVDLA 硬件架构支持多种规模的应用场景。
NVDLA 硬件采用标准接口与系统其他部分进行交互,包括控制通道、寄存器文件和中断接口,以及 AXI 总线接口与存储器进行交互。异构存储器接口增强了不同类型主机系统之间的灵活性。
NVDLA 实现分为两类:
小系统模型展示了 NVDLA Headless 实现的示例,大系统模型则展示了包含专门控制协同处理器和高带宽 SRAM 支持的 NVDLA 子系统的实现。大系统模型更适配于运行多个任务的高性能 IoT 设备。
NVDLA 架构可编译为两种运算模式:独立模式和融合模式。
NVIDIA 提供了全面的软件生态系统,包括设备上软件堆栈、NVDLA 发布的开源软件,以及完整的训练基础设施,用于构建融合深度学习的新模型并将现有模型转换为 NVDLA 软件兼容的形式。
以上内容总结了 NVDLA 项目的背景、架构、模块、软件生态、实现类型和运算模式,以及 NVIDIA 提供的软件支持,展示了 NVDLA 在深度学习推理加速领域的潜力与应用。