全球首个软硬件推理平台 :NVDLA编译器正式开源
【导读】为深度学习设计新的定制硬件加速器,是目前的一个趋势,但用一种新的设计,实现最先进的性能和效率却具有挑战性。近日,英伟达开源了软硬件推理平台 NVADLA 编译器,一起来围观一下吧。
2017 年,英伟达发布了深度学习加速器 NVDLA,全称 NVIDIA DeepLearning Accelerator,以推动在定制硬件设计中采用高效的 AI 推理。
在英伟达的开发套件 Jetson AGX Xavier 中,它能为 AI 模型提供 7.9 TOPS/W 的最佳峰值效率。
而最近,英伟达在 GitHub 上开源了 NVDLA 编译器的源代码,这是世界上首个软硬件推理平台的完整开源代码。系统架构师和软件开发者们,现在已可访问这个软硬件推理平台。
使用 NVDLA 进行物体检测
在本文中,将详细介绍网络图形编译器,是如何提升了专用硬件加速器的性能,并介绍在云端,如何构建和运行自定义 NVDLA 软硬件设计。
NVDLA 编译器的性能和效率
编译器是 NVDLA 软件栈的关键组件。它能生成优化的执行图,将预训练的神经网络模型层中定义的任务,映射到 NVDLA 中的各个执行单元。
一方面能最大限度地利用计算硬件,另一方面尽可能地减少数据移动。
NVDLA 核心硬件有六个专门的硬件单元,可以实现同时调度,或者在流水线配置中实现调度。
NVDLA 架构图
此外,它还具有小型和大型硬件配置文件。其中大型配置文件含有一些高级特性,如芯片上的 SRAM 接口、连接微控制器的能力。
NVDLA 小型配置文件模型
硬件架构是模块化的,它被设计成可自由伸缩的形态,小到嵌入式物联网设计,大到使用NVDLA 单元阵列的大型数据中心,都能完美适用。
编译器可以根据多项因素进行调优:NVDLA 硬件配置、系统的 CPU 和内存控制配置,以及应用程序的自定义神经网络用例等等。
NVDLA 是如何提升性能的
在大型的 NVDLA 设计上,层融合和管道调度之类的编译器优化,表现性能良好,可广泛应用于多种神经网络架构,能提供高达 3 倍的性能效益。
这种优化后的灵活性,是实现跨大型网络模型(如ResNet-50)和小型网络模型(如 MobileNet)的性能优化的重要原因。
对于较小的 NVDLA 设计,编译器优化(如 Memory tiling )也是提高性能效率的关键。
Memory tiling 设计能在权重和激活数据之间,平衡芯片上缓冲区的使用,从而最小化芯片外存储的流量和能耗。
用户还可以自由地创建定制的图层,并根据自己的特殊用例进行调优,或者使用最新的算法进行实验。
为了方面对比,可以根据下面的性能数字,评估 NVDLA 大型模型的预期性能。测量数据来自 Jetson AGX Xavier 开发工具上的一个 NVDLA 核心捕获。
使用 RISC-V 和 FireSim 在云端设计
通过这个编译器版本,NVDLA 用户可以访问集成、增添和探索 NVDLA 平台所需的软件和硬件源代码。
如果想要尝试入手,建议的方式是直接使用 NVDLA 上的 YOLOv3 ,以及云端的 RISC-V 和 FireSim 进行物体检测。
在使用 FireSim- NVADLA 时,可按照 FireSim 的说明操作,直到能够运行单节点模拟为止。
使用指南:http://docs.fires.im/en/1.5.0/index.html
按照教程中的步骤操作,在「设置FireSim Repo」一节中,验证是否正使用 FireSim -NVADLA 存储库,具体的操作代码如下:
git clone https://github.com/CSL-KU/firesim-nvdla
cd firesim-nvdla
./build-setup.sh fast
使用 NVDLA 运行单节点模拟之后,按照 NVDLA 教程中的步骤可以立即启动 YOLOv3。(地址:https://github.com/CSL-KU/firesim-nvdla#running-yolov3-on-nvdla)
这套编译器已经被 SiFive 这类初创公司所使用,并从中得到了受益。
SiFive 使用 NVDLA 进行深度学习推理
据悉,SiFive 在一年前首次在自己的平台上开始使用 NVDLA,而经过了性能优化的开源 NVDLA 编译器,能够创建特定领域的优化 SoC 设计,为 IoT Edge 中的 AI 现代计算需求做足准备。
项目开源地址:
https://github.com/nvdla/sw/releases/tag/v1.2.0-OC
内容来源:
Nvidia Developer Blog
◆
精彩推荐
◆
推荐阅读
免费开源!新学期必收藏的AI学习资源,从课件、工具到源码都齐了
干货 | 收藏!16段代码入门Python循环语句
Python玩转高德地图API(一)
任正非称华为 6G 领先世界;支付宝小程序将与微博打通;Linux Kernel 5.3 发布 | 极客头条
幼儿识字从比特币开始? 小哥出了本区块链幼教书, 画风真泥石流……
Serverless 的喧哗与骚动
我们到底该如何看待6G?
互联网大佬为什么爱唱歌
惊呆!这辆悍马自己在跑跑跑跑跑跑跑!

你点的每个“在看”,我都认真当成了喜欢
相关文章:

【leetcode】1018. Binary Prefix Divisible By 5
题目如下: Given an array A of 0s and 1s, consider N_i: the i-th subarray from A[0] to A[i] interpreted as a binary number (from most-significant-bit to least-significant-bit.) Return a list of booleans answer, where answer[i]is true if and only …

php中magic_quotes_gpc对unserialize的影响
昨天朋友让我帮他解决下他网站的购物车程序的问题,程序用的是PHPCMS,换空间前是好的(刚换的空间),具体问题是提示成功加入购物车后跳转到购物车页面,购物车里为空。 我看了下代码,大致的原理就是…

值得收藏!基于激光雷达数据的深度学习目标检测方法大合集(上)
作者 | 黄浴转载自知乎专栏自动驾驶的挑战和发展【导读】上周,我们在激光雷达,马斯克看不上,却又无可替代?》一文中对自动驾驶中广泛使用的激光雷达进行了简单的科普,今天,这篇文章将各大公司和机构基于激光…
Caffe源码中Pooling Layer文件分析
Caffe源码(caffe version commit: 09868ac , date: 2015.08.15)中有一些重要的头文件,这里介绍下include/caffe/vision_layers文件中PoolingLayer类,在最新版caffe中,PoolingLayer类被单独放在了include/caffe/layers/pooling_layer.hpp文件中…

手持终端以物联网的模式
近年来,物联宇手持终端以物联网的模式,开启了信息化的管理模式,迸发了新的自我提升和业务新商机。手持终端是一款智能的电子设备,它的核心功能为用户速带来业务效率的提升,如快递行业,每天的工作量需求大&a…

Linux系统基础-管理之用户、权限管理
Linux用户、权限管理一、如何实现"用户管理"1.什么是用户 "User" : 是一个使用者获取系统资源的凭证,是权限的结合,为了识别界定每一个用户所能访问的资源及其服务的。只是一种凭证。会有一个表示数字,计算机会首…
Ubuntu14.04 LTS中安装Ruby 2.4源码操作步骤
(1)、查看是否已安装ruby,执行命令,如下图,可见机子上还没有安装ruby,即使通过apt-get install命令安装也只能安装1.8版本;(2)、从 http://www.ruby-lang.org/en/downloads/ 下载最新稳定版2.4即ruby-2.4.0.tar.gz&a…

图森未来完成2.15亿美元D轮融资,将拓展无人驾驶运输服务
AI科技大本营消息,9月17日,图森未来宣布获得1.2亿美元的D2轮投资,并完成总额为2.15亿美元的D轮融资。D2轮的投资方除了此前已宣布的UPS外,还包括新的投资方鼎晖资本,以及一级供应商万都(Mando Corporation&…

中国互联网公司开源项目调研报告
近年来,开源技术得到越来越多的重视,微软收购GitHub、IBM收购红帽,都表明了开源的价值。国内公司也越来越多的参与开源,加入开源基金会/贡献开源项目。但是,它们到底做得如何呢?为此InfoQ统计了国内在GitHu…

ReSharper 配置及用法
1:安装后,Resharper会用他自己的英文智能提示,替换掉 vs2010的智能提示,所以我们要换回到vs2010的智能提示 2:快捷键。是使用vs2010的快捷键还是使用 Resharper的快捷键呢?我是使用re的快捷键 3: Resharper安装后,会做…
Ubuntu14.04 LTS中升级gcc/g++版本到4.9.4的操作步骤
Ubuntu14.04 LTS中默认的gcc/g版本为4.8.4,如下图,在C11中增加了对正则表达式的支持,但是好像到gcc/g 4.9.2版本才会对正则表达式能很好的支持,这里介绍下Ubuntu14.04 LTS升级gcc/g版本到4.9.4的操作步骤: 1࿰…

华为全球最快AI训练集群Atlas 900诞生
作者 | 胡巍巍来源 | CSDN(ID:CSDNnews)你,和计算有什么关系?早上,你打开手机App,查看天气预报,和计算有关;中午,你打开支付宝人脸支付,买了份宫保…

rabbitmq可靠发送的自动重试机制 --转
原贴地址 https://www.jianshu.com/p/6579e48d18ae https://www.jianshu.com/p/4112d78a8753 git项目代码地址 https://github.com/littlersmall/rabbitmq-access 转载于:https://www.cnblogs.com/hmpcly/p/10641688.html

在Linux下如何安装配置SVN服务
2019独角兽企业重金招聘Python工程师标准>>> Linux下在阿里云上架一个svn centos上安装:yum install subversion 安装成功 键入命令 svnserve --version 有版本信息则进行下一步 1、新建版本库目录 mkdir -p /opt/svndata/repos 2、设置此目录为…

201671030129 周婷 《英文文本统计分析》结对项目报告
项目内容这个作业属于哪个课程软件工程这个作业的要求在哪里软件工程结对项目课程学习目标熟悉软件开发整体流程及结对编程,提升自身能力本次作业在哪个具体方面帮助我们实现目标体验组队编程,体验一个完整的工程任务一: 作业所点评博客GetHu…

C++/C++11中std::string用法汇总
C/C11中std::string是个模板类,它是一个标准库。使用string类型必须首先包含<string>头文件。作为标准库的一部分,string定义在命名空间std中。std::string是C中的字符串。字符串对象是一种特殊类型的容器,专门设计来操作字符序列。str…

你在付费听《说好不哭》,我在这里免费看直播还送书 | CSDN新书发布会
周一的时候,我拖着疲惫的身体回到家中,躺倒床上刷刷朋友圈,什么?周杰伦出新歌了?朋友圈都是在分享周杰伦的新歌《说好不哭》,作为周杰伦的粉丝,我赶紧打开手机上的QQ音乐,准备去听&a…

解决Mysql:unrecognized service错误的方法(CentOS)附:修改用户名密码
2019独角兽企业重金招聘Python工程师标准>>> service mysql start出错,mysql启动不了,解决mysql: unrecognized service错误的方法如下: [rootctohome.com ~]# service mysql startmysql: unrecognized service [rootctohome.co…
Caffe源码中Net文件分析
Caffe源码(caffe version commit: 09868ac , date: 2015.08.15)中有一些重要的头文件,这里介绍下include/caffe/net.hpp文件的内容:1. include文件:(1)、<caffe/blob.hpp>:此文件的介绍可以参考:http://blo…

满满干货的硬核技术沙龙,免费看直播还送书 | CSDN新书发布会
周一的时候,我拖着疲惫的身体回到家中,躺倒床上刷刷朋友圈,什么,周杰伦出新歌了?朋友圈都是在分享周杰伦的新歌《说好的不哭》,作为周杰伦的粉丝,我赶紧打开我手机上的QQ音乐,准备去…

【重磅上线】思维导图工具XMind:ZEN基础问题详解合集
XMind是XMind Ltd公司旗下一款出色的思维导图和头脑风暴软件。黑暗的UI设计、独特的ZEN模式、丰富的风格和主题、多分支的颜色等等功能会让你的工作更加便捷与高效。在视觉感官上也会给你带来最佳的体验感。 对于初学者来说,肯定会遇到各种各样的问题,有…

Linux内置的审计跟踪工具:last命令
这个命令是last。它对于追踪非常有用。让我们来看一下last可以为你做些什么。last命令的功能是什么last显示的是自/var/log/wtmp文件创建起所有登录(和登出)的用户。这个文件是二进制文件,它不能被文本编辑器浏览,比如vi、Joe或者其他软件。这是非常有用…

C++/C++11中std::set用法汇总
一个容器就是一些特定类型对象的集合。顺序容器(sequential container)为程序员提供了控制元素存储和访问顺序的能力。这种顺序不依赖于元素的值,而是与元素加入容器时的位置相对应。与之相对的,有序和无序关联容器,则根据关键字的值来存储元…

值得收藏!基于激光雷达数据的深度学习目标检测方法大合集(下)
作者 | 黄浴来源 | 转载自知乎专栏自动驾驶的挑战和发展【导读】在近日发布的《值得收藏!基于激光雷达数据的深度学习目标检测方法大合集(上)》一文中,作者介绍了一部分各大公司和机构基于激光雷达的目标检测所做的工作࿰…

java B2B2C源码电子商务平台 -commonservice-config配置服务搭建
2019独角兽企业重金招聘Python工程师标准>>> Spring Cloud Config为分布式系统中的外部配置提供服务器和客户端支持。使用Config Server,您可以在所有环境中管理应用程序的外部属性。客户端和服务器上的概念映射与Spring Environment和PropertySource抽象…

Topshelf:一款非常好用的 Windows 服务开发框架
背景 多数系统都会涉及到“后台服务”的开发,一般是为了调度一些自动执行的任务或从队列中消费一些消息,开发 windows service 有一点不爽的是:调试麻烦,当然你还需要知道 windows service 相关的一些开发知识(也不难&…

C++中nothrow的介绍及使用
在C中,使用malloc等分配内存的函数时,一定要检查其返回值是否为”空指针”,并以此作为检查内存操作是否成功的依据,这种Test-for-NULL代码形式是一种良好的编程习惯,也是编写可靠程序所必需的。在C中new在申请内存失败…

你猜猜typeof (typeof 1) 会返回什么值(类型)?!
typeof typeof操作符返回一个字符串,表示未经计算的操作数的类型。 语法: var num a; console.log(typeof (num)); 或console.log(typeof num) 复制代码typeof 可以返回的类型为:number、string、boolean、undefined、null、object、functi…

阿里云智能运维的自动化三剑客
整理 | 王银出品 | AI科技大本营(ID:rgznai100)近日,2019 AI开发者大会在北京举行。会上,近百位中美顶尖AI专家、知名企业代表以及千余名AI开发者进行技术解读和产业论证。而在AIDevOps论坛上,阿里巴巴高级技术专家滕圣…

Sublime Text2.0.2注册码
直接输入注册码就可以了 ----- BEGIN LICENSE ----- Andrew Weber Single User License EA7E-855605 813A03DD 5E4AD9E6 6C0EEB94 BC99798F 942194A6 02396E98 E62C9979 4BB979FE 91424C9D A45400BF F6747D88 2FB88078 90F5CC94 1CDC92DC 8457107A F151657B 1D22E383 A997F016 …