NVDLA简介

nvdia深度学习加速器(NVDLA)是一种免费开放式架构,具有可扩展性,高度可配置性,旨在简化集成和可移植性。NVDLA软件生态系统包括一个设备上的软件堆栈(开源版本的一部分),一个完整的培训基础架构,用于构建包含深度学习的新模型,以及将现有模型转换为可在设备上使用的形式的解析器软件。可以提供其自己的硬件平台以及软件内核:

NVDLA可以加速神经网络推理工作,可分两步完成

  1. 针对DLA硬件优化训练有素的神经网络,并将图形转换为DLA HW指令。转换后的图形将保存到称为可加载的平面缓冲区文件中。使用NVDLA编译器可以实现此目的,并且可以在主机系统上脱机执行。
  2. 使用步骤1中的可加载程序在DLA上运行推理作业。这是使用NVDLA运行时实现的,并在目标系统上执行

NVDLA Compiler

NVDLA编译器用于为DLA HW体系结构优化神经网络,并创建HW指令列表以在DLA上运行推理。NVDLA编译器可以从源代码构建,也可以直接使用预编译的二进制文件

root@6b9d78f7dd:# ./nvdla_compiler -h
Usage: ./nvdla_compiler [-options] --prototxt <prototxt_file> --caffemodel <caffemodel_file>
where options include:
    -h                                                          print this help message
    -o <outputpath>                                             outputs wisdom files in 'outputpath' directory
    --profile <basic|default|performance|fast-math>             computation profile (default: fast-math)
    --cprecision <fp16|int8>                                    compute precision (default: fp16)
    --configtarget <opendla-full|opendla-large|opendla-small>   target platform (default: nv_full)
    --calibtable <int8 calib file>                              calibration table for INT8 networks (default: 0.00787)
    --quantizationMode <per-kernel|per-filter>                  quantization mode for INT8 (default: per-kernel)
    --batch                                                     batch size (default: 1)
    --informat <ncxhwx|nchw|nhwc>                               input data format (default: nhwc)

转换example(以resnet50 nv_full int8 为例)

./nvdla_compiler --prototxt ResNet-50-deploy.prototxt --caffemodel ResNet-50-model.caffemodel -o . --profile fast-math --cprecision int8 --configtarget nv_full --calibtable resnet50.json --quantizationMode per-filter --batch 1 --informat nhwc

输出

一旦编译成功,它将在使用-o参数指定的输出目录中生成.nvdla文件。例如,在上述情况下,它将在curren目录中生成fast-math.nvdla

如果需要自行编译nvdla_compiler 

cd umd
export TOP={sw-repo-root}/umd
make compilerNote :
使用sdk中默认的libprotobuf.a可能链接会报错,这个需要根据自己的环境重新编译一下protobuf,命令如下
./configure --enable-shared
make
make check
sudo make install

NVDLA compiler相关推荐

  1. NVDLA VP使用指南

    本文用流水账的形式记录如何使用nvdla的virtual platform编译生成NVDLA硬件可识别代码并且在QEMU中模拟运行.NVDLA硬件为full模式,并没有对硬件做任何的配置. 使用Doc ...

  2. Python3:ImportError: No module named 'compiler.ast'

    from compiler.ast import flatten 上面这条语句好像在python3 以后就废除了,如果使用的话就会报错. Traceback (most recent call las ...

  3. 深度学习编译器综述The Deep Learning Compiler

    深度学习编译器综述The Deep Learning Compiler The Deep Learning Compiler: A Comprehensive Survey 参考文献: https:/ ...

  4. JIT Compiler编译器及指令集

    JIT Compiler编译器及指令集 LLVM一些编程语法语义特性 High Level Structure Module Structure LLVM 程序由Module's组成,每个 's 是输 ...

  5. 全文翻译(全文合集):TVM: An Automated End-to-End Optimizing Compiler for Deep Learning

    全文翻译(全文合集):TVM: An Automated End-to-End Optimizing Compiler for Deep Learning 摘要 人们越来越需要将机器学习应用到各种各样 ...

  6. 全文翻译(四) TVM An Automated End-to-End Optimizing Compiler

    全文翻译(四) TVM An Automated End-to-End Optimizing Compiler 6.3 嵌入式GPU评估 对于移动GPU实验,在配备ARM Mali-T860MP4 G ...

  7. 全文翻译(三) TVM An Automated End-to-End Optimizing Compiler

    全文翻译(三) TVM An Automated End-to-End Optimizing Compiler 5. 自动化优化 考虑到一组丰富的调度原语,剩下的问题是为DL模型的每一层,找到最佳的算 ...

  8. 全文翻译(二): TVM: An Automated End-to-End Optimizing Compiler for Deep Learning

    全文翻译(二): TVM: An Automated End-to-End Optimizing Compiler for Deep Learning 3.优化计算图 计算图是在DL框架中表示程序的常 ...

  9. 全文翻译(一):TVM: An Automated End-to-End Optimizing Compiler for Deep Learning

    全文翻译(一):TVM: An Automated End-to-End Optimizing Compiler for Deep Learning 摘要 人们越来越需要将机器学习应用到各种各样的硬件 ...

最新文章

  1. Ckeditor通过Ajax更新数据
  2. GitHub 新手详细教程转载,亲测可用
  3. H.264码流解析 一个SPS的nalu及获取视频的分辨率
  4. 开发辅助 | 阿里图标库iconfont入门使用
  5. get post put delete
  6. Web 前端开发精华文章推荐(jQuery、HTML5、CSS3)【系列十四】
  7. 教你炒股票19:学习缠中说禅技术分析理论的关键
  8. 北京计算机应用基础考试时间,07年北京市自学考试计算机应用基础课周末开考...
  9. vue.config.js跨域配置
  10. C++ 创建 TcpClient 客户端,使用QAbstractSocket 、 QtNetwork
  11. SAP固定资产的几个日期
  12. 使用VNC远程登录百度智能云服务器
  13. Joint Discriminative and Generative Learning for Person Re-identification论文翻译
  14. 不需要数据库的php迷你博客程序,GitHub - Smilefish0/miniblog: 一个不需要数据库、轻量级、微型、开源的博客程序!...
  15. 如何快速知道哪些中文期刊是中文核心期刊
  16. 【JZOJ4587】Snow的追寻 题解
  17. 团队管理31-典型场景(向上沟通)
  18. matlab画六面体,MATLAB绘制平行六面体
  19. 【备忘录】浏览器不能上网但是微信能收到消息的一个解决办法
  20. 高通平台wifi命令操作

热门文章

  1. 中顶汽车美容管理系统
  2. java计算机毕业设计水质监测数据采集系统源代码+数据库+系统+lw文档
  3. VB外部调用AutoCAD
  4. linux通讯管理机,国电南瑞NSC2200E通讯管理机
  5. 台积电5nm工厂明年一季度投产 现已开始转移设备
  6. 5.1.2 运输层的两个重要协议
  7. 干簧管磁浮球液位开关原来是这么样用的
  8. python import文件pyd_Python生成pyd文件
  9. n76e003浮点_N76E003之IO控制
  10. 时间计算题100道_软考学习第20天-----软考综合考试的计算题