一夜回到解放前——掀起“NVDLA”的盖头来(Nvidia刚发布的NVDLA是何方神圣?)

  • 时间:2025-10-20 23:45 作者: 来源: 阅读:0
  • 扫一扫,手机访问
摘要:为了更好地便于大家交流学习,EETOP组建了 GPU&FPGA深度学习群欢迎行业内朋友加入,加群方法:长按二维码加群主好友,发送如下信息:加群+深度学习+所在公司(或院校)长按二维码,加群主为好友,拉你入群加群前请务必在朋友圈分享至少一篇EETOP的微信文章引言AI加速器的一桌麻将刚刚凑齐,一桌牌还没打完,就来了一个踢馆砸场的-NVDLA。NVDLA是何方神

为了更好地便于大家交流学习,EETOP组建了

GPU&FPGA深度学习群

欢迎行业内朋友加入,加群方法:长按二维码加群主好友,发送如下信息:加群+深度学习+所在公司(或院校)

长按二维码,加群主为好友,拉你入群

加群前请务必在朋友圈分享至少一篇EETOP的微信文章

引言

AI加速器的一桌麻将刚刚凑齐,一桌牌还没打完,就来了一个踢馆砸场的-NVDLA。NVDLA是何方神圣,颜值如何,下面我们就掀起她的盖头来。

一、NVDLA是什么?

NVDLA是NVIDIA Deep Learning Accelerator的简称(瞎猜的),由NVIDIA公司在2017年9月26日正式发布在github上(https://github.com/nvdla),关于NVDLA的文档可以在NVDLA的官方网站(http://nvdla.org)找到。目前,文档可分为两部分,粗略的介绍可直接看
http://nvdla.org/primer.html,跟架构相关的较详细的介绍可参考
http://nvdla.org/contents.html,本文中主要信息也是从以上两个文档而来。

NVDLA的PPA如何?

2.1 performance

第一是Performance方面的数据:

一夜回到解放前——掀起“NVDLA”的盖头来(Nvidia刚发布的NVDLA是何方神圣?)

需要注意的是以上数据是针对某个配置下的性能数据,毕竟NVDLA是“变形金刚”,如果不给定configuration,单独给出的性能数据是不可信的。

一夜回到解放前——掀起“NVDLA”的盖头来(Nvidia刚发布的NVDLA是何方神圣?)

2.2 Power

很遗憾,目前还没有NVDLA相关的Power数据,不过据官方人士介绍,NVDLA是从他们内部项目实际使用的版本进化(阉割)而来,功耗估计不会像一般的开源项目那样太离谱。

2.3 area

最后是面积相关的数据:

一夜回到解放前——掀起“NVDLA”的盖头来(Nvidia刚发布的NVDLA是何方神圣?)

注:以上面积数据不包括onchip memory,毕竟4MB的on chip memory对于嵌入式场景来说实在是太奢侈了。

三、掀起盖头来,NVDLA有哪些值得关注的亮点

3.1 变形金刚

毫无疑问,掀起盖头之后,第一映入眼帘的无疑就是其‘多变’的特性,从低端到高端,用户可以根据PPA自行trade-off,得到适合自己的NVDLA版本。在我看来“多变”实属无奈,谁让这世界变化快。在深度学习算法日新月异的状态下,不具备“多变”的属性估计也活不了多久。

3.2 专款专用

对于Deep Learning中的不同layer,NVDLA基本都有与之对应的、相互独立的硬件模块。各模块之间均可单独决定“去留”。这和我们在进行硬件架构时追求的“尽量让运算单元复用”的思想是完全不同的。

NVDLA的整体架构如下:

一夜回到解放前——掀起“NVDLA”的盖头来(Nvidia刚发布的NVDLA是何方神圣?)

其中convolution buffer由RAM组成,其容量可佩,默认为512KB,里面存放coefficient和feature map数据,供convolution core使用。

convolutioncore专门负责conv和fc层的运算,包括大量的MAC单元,这些MACd单元以C * K的形式组织,其中C为同时处理的input channel的数量,K为同时处理的output channel的数量。

SDP负责ReLU, PReLU, precision scaling,batch normalization, bias addition, sigmoid , hyperbolic tangent等简单的线性非线性运算,其中sigmoid和tanh通过LUT的形式实现。

PDP主要负责pool运算,包括max_pool,min_pool,avg_pool三种。暂时还没想清楚为啥要搞个min_pool,希望designer能给个解释。

CDP负责cross channel的LRN。但with in channel的LRN在哪实现呢?目前看来可能性最大的是SDP实现with inchannel LRN,缘由是with inchannel的LRN可以用LUT实现(这个,一般人我不告知他)。

RUBIK,名字很好,体现了designer的情怀。但我觉得RUBIK这个模块有更好的实现方式,列如,通过配置寄存器来约定读取数据的规则,毕竟,玩魔方的时候,不管怎么转也不会多出一面,也不会少掉一面。看官,你说呢?

BridgeDMA,不生产数据,只是数据的搬运工。

3.3 第二战场

众所周知,memory limit是AI 加速器设计者需要面对的头等大事。NVDLA为了解决这个问题祭出了secondarymemory interface这个大招(实则,这个大招,俺也想到了)。可以想象,这个SMI(自己为了省事,暂且简写)可连接ISP,可连接CPU的cache,可连接on chip memory,可连接。。。

第二战场是SMI,那第一战场是啥?当然是sparsity compression,这个已经烂大街了,我就不絮叨了。总之,要是哪个加速器不支持sparsitycompression,都没脸见人。

3.4 砍头也能活

NVDLA有两个版本:head和headless。这次发布的NVDLA是headless,没有头,只有身子,也能活,至于活的好赖,拭目以待。个人觉得,这要看NVDLA对controller的依赖程度如何,考验NVDLA的CSB的设计功力,设计的好,headless就会活的好。这次为什么没发布head版本呢?我猜可能是MCU的版权问题(NVIDIA好像没有自己的CPU架构),或许,只是老黄要求太急,NVDLA的工程师兄弟们没抗住,就先发了个headless的。

四、个人观点

下面扯一下我个人对NVDLA的一些理解。

4.1 secondary memory interface

看到这个feature,确认被震撼到了,这是我前几天还在犹豫不决的问题,NVDLA竟然已经实现了,个人觉得,这个feature真的为NVDLA留了后路,打开了一个新世界的窗口。

4.2 convolution buffer

大言不惭的说,这个俺也是这么搞的。但看遍学术圈的AI加速器的paper,很少有将coefficient和feature map放在一起的。这样设计有好处,也有坏处。大锅饭和各开炉灶的好处和坏处,比较好理解,在此略过。

4.3 bias addition在SDP做

开始还是比较意外,目前想,也顺理成章。

4.4 NVDLA并非完美

4.4.1 NVDLA目前没看到对locallyconnection convolution的支持,这可是face detection领域常见的一个需求。

4.4.2 NVDLA也没有从硬件层面支持dilationconvolution,如果靠离线处理kernel,再加上compression的大招,或许对性能影响不大,但没能看到评估数据,心里还是不踏实。

4.4.3 NVDLA不支持ROIPoolling,这个有点说不过去。毕竟目前objectdetection领域,Fasterr-cnn可占据多半江山,缺少ROIPOOL比较遗憾。

4.4.4 PDP模块不能直接从convolutionbuffer读取数据,这也是个小遗憾,这个遗憾可能是上面遗憾的‘遗产’,由于如果要支持ROI pooling的话,这个PDP必须具备直接读取convolutionbuffer的能力,否则,只能呵呵了。

五、一夜回到解放前

NVDLA的砸场,目前看来是“阴谋得逞”了,一桌麻友必须要评估手里的牌的价值了,我等小辈,冥思苦想,绞尽脑汁想出来的东西,就这样大白天下了。这是好事(流着泪说的-_-!),大家已经起跑的,没有起跑的,一起站在了起跑线上,兄弟们,革命尚未开始,就已经失败了!

赶紧修改一下简历:“熟悉NVDLA架构,掌握基于NVDLA的深度学习开发流程”。

六. NVDLA项目的几个参考链接

https://github.com/nvdla/hw

https://github.com/silicontalks01/OpenDLA

http://nvdia.org

  • 全部评论(0)
最新发布的资讯信息
【系统环境|】Ubuntu 25.04 + RTX 2080(8GB)用 vLLM 部署 Qwen3:8B(2025-10-20 23:52)
【系统环境|】程序员笔记:LINUX安装NVIDIA驱动程序(2025-10-20 23:51)
【系统环境|】ollama 部署和配置(2025-10-20 23:50)
【系统环境|】docker环境运行GPU算法基础环境搭建(2025-10-20 23:50)
【系统环境|】60块钱矿卡p106重新上岗玩大模型(2025-10-20 23:49)
【系统环境|】Ubuntu 安装 NVIDIA L20 显卡驱动(2025-10-20 23:48)
【系统环境|】Ubuntu 22.04 Tesla V100s显卡驱动,CUDA,cuDNN,MiniCONDA3 环境的安装(2025-10-20 23:47)
【系统环境|】显卡驱动安装后CUDA不可用?90%的人都踩过这3个坑(2025-10-20 23:46)
【系统环境|】一夜回到解放前——掀起“NVDLA”的盖头来(Nvidia刚发布的NVDLA是何方神圣?)(2025-10-20 23:45)
【系统环境|】一键提取歌曲伴奏和人声分轨,最强伴奏与人声分离工具(2025-10-20 23:44)
手机二维码手机访问领取大礼包
返回顶部