业界 | 英伟达开源硬件加速项目NVDLA:一种标准化的推断加速框架

选自NVDLA

机器之心编译

参与:李亚洲、蒋思源

近日,英伟达深度学习加速器(NVDLA)项目推出了一种标准化的开放框架以解决执行推断(inference)的计算需求。NVDLA 架构不仅结合了可扩展性和可高度配置性,并且模块的设计始终保持灵活性与简单的集成性。NVDLA 架构通过与主要的深度学习网络保持互通而标准化了深度学习的加速提升,因此它有助于规模化地统一机器学习的增长。

项目地址:http://nvdla.org/

NVDLA 硬件提供了一个简单、灵活和鲁棒的推断加速解决方案。NVDLA 硬件支持各种性能水平,并能轻松地从小型、成本敏感的物联网设备(IoT)扩展到大型性能指向型的 IoT 应用范围。NVDLA 基于开放工业标准提供一组 IP-core 模型:Verilog 模型为 RTL 形式下的综合模拟模型、TLM SystemC 模拟模型能用于软件部署、系统集成和测试。NVDLA 软件生态系统包括设备内的软件堆栈(部分为开源版)、用于构建结合深度学习新模型的完整训练基础设施以及可以将现有模型转换为设备可用的软件解析器。

使用 NVDLA 加速深度学习的推断速度

NVDLA 引入了一个模块架构以简化配置、集成和可移植性,这主要是因为该构建块能用于加速核心深度学习推断运算。NVDLA 硬件主要由以下几个模块组成:

  • 卷积核心(Convolution Core):即一种最优化的高性能卷积引擎。
  • 一维数据处理器(Single Data Processor):激活函数的奇点检索引擎。
  • 二维数据处理器(Planar Data Processor):用于池化的平面均值引擎。
  • 通道数据处理器(Channel Data Processor):高级归一化函数的多通道均值引擎。
  • 专用内存与数据形状重塑引擎(Dedicated Memory and Data Reshape Engines):张量形状重塑和复制操作的内存到内存转换加速。

这些模块都是分离的和独立配置的,每个单元的调度操作都被委派给协同处理器(co-processor)或中央处理器,它们可以以非常细粒度的调度边界进行操作,因此每一个单元操作都是独立的。此外,密切管理的调度需要通过外加专用管理协同处理器成为 NVDLA 子系统的一部分。因此,NVDLA 硬件架构能够服务于各种大小的实现。

NVDLA 硬件利用标准实践与系统的其余部分进行接口交互:控制通道以实现寄存器文件和中断接口,并使用一对标准的 AXI 总线接口与存储器进行交互。此外,异构存储器接口可实现不同类型主机系统之间的额外灵活性。

NVDLA 实现一般可分为两个类别:

  • Headless:发生在主要系统处理器中单位接单位(unit-by-unit)的 NVDLA 硬件管理
  • Headed:委派高中断频率的任务到协同为处理器中,并且和 NVDLA 子系统紧密结合。

下图 1 的 Small 系统模型,展示了 NVDLA headless 的实现示例,Large 系统模型展示了有理解力的实现。前者是对成本敏感的设备建立的实现,后者增加了一个专门的控制协同处理器和高带宽 SRAM 支持的 NVDLA 子系统。Large 系统模型更面向可一次性运行许多任务的高性能 IoT 设备。

图 1:两个可能的 NVDLA 系统对比

硬件架构

NVDLA 架构可被编成进两种运算模式:独立模式、融合模式。

  • 独立模式(Independent):但独立运算时,每个功能块可配置为什么时候执行什么,各自完成分配的任务(类似于深度学习框架中的独立层)。独立运算的开始和结束都是由功能块在主系统存储或者专用 SRAM 存储中,完成存储到存储的运输。
  • 融合模式(Fused):融合运输类似于独立运算,但可把一些运算块组合为一个管道。通过对经过存储的路线进行分路而改善表现,而非让功能块通过小 FIFOs 让彼此之间家里(也就是卷积核能将数据传送到单个数据点处理器,它能将数据传送到平面数据处理器,且反过来传送到 Cross-channel 数据处理器中)

图 2:NVDLA 核心的内部架构

软件设计

据介绍,全部软件生态系统都支持 NVDLA,包括设备上软件堆栈、NVDLA 开源发布的部分软件。此外英伟达也将提供完整的训练基础设施,来建立融合深度学习的全新模型,并将已有的模型转换为 NVDLA 软件可用的形式。常见流程图如下图所示:

图 3:NVDAL系统软件内部的数据流程图

原文地址:http://nvdla.org/primer.html

本文为机器之心编译,转载请联系本公众号获得授权。

原文发布于微信公众号 - 机器之心(almosthuman2014)

原文发表时间:2017-09-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IT派

2018年2月份GitHub上最热门的Python项目:深度学习占半壁江山

本篇文章为大家盘点了2月份最热门的Python 项目,本月最热门的开源项目中,深度学习相关的开源项目占据了半壁江山,让我们一起来看下吧!

1200
来自专栏CVer

TensorFlow 2.0 要来啦!

自 2015 年开源发布以来,TensorFlow 已成为全球应用最广泛的机器学习框架,可满足广泛的用户和用例需求。在此期间,TensorFlow 随着计算硬件...

1262
来自专栏顶级程序员

2月份GitHub上最热门的Python项目:深度学习占半壁江山

源 / 开源最前线 整编 / 猿妹 本篇文章为大家盘点了1月份最热门的Python 项目,本月最热门的开源项目中,深度学习相关的开源项目占据了半壁江山,...

3419
来自专栏AI2ML人工智能to机器学习

当arXiv遇到Twitter

arXiv是一个开放的存放预备版(preprint)文章的地方。 这个Cornell University在1991开启的项目, 因为Grigori Perel...

913
来自专栏AI研习社

呵,我复现一篇深度强化学习论文容易吗

去年,OpenAI和DeepMind联手做了当时最酷的实验,不用经典的奖励信号来训练智能体,而是根据人类反馈进行强化学习的新方法。有篇博客专门讲了这个实验 Le...

1542
来自专栏企鹅号快讯

2017年与机器学习相关的10大Python开源库

作者|Alan Descoins 译者|薛命灯 编辑|Emily Pipenv Pipenv 最初是由 Kenneth Reitz 开发的一个业余项目,旨在将其...

20910
来自专栏量子位

陈天奇团队发布NNVM编译器,性能优于MXNet,李沐撰文介绍

夏乙 若朴 编译整理 量子位 出品 | 公众号 QbitAI 亚马逊和华盛顿大学今天合作发布了开源的端到端深度学习编译器NNVM compiler。 先提醒一句...

4776
来自专栏ATYUN订阅号

2017最流行的十大Python库

年末是你需要思考过去一年的成就的时候。对于程序员来说,这通常是回顾今年发布的或者最近流行的开源库,因为它们是解决特定问题的绝佳工具。 在过去的两个多年中,我们都...

4247
来自专栏腾讯大讲堂的专栏

AI异常计算点的监控调度

1747
来自专栏腾讯移动品质中心TMQ的专栏

【Android场景化性能测试】UI流畅度篇

承接《Android场景化性能测试-方向与框架篇》,本篇详述UI流畅度的测试方法,重点在于获得流畅度SM数据之后,如何利用好。

8514

扫码关注云+社区

领取腾讯云代金券