0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于Xilinx FPGA的SDK端的深度学习开发工具包

电子工程师 来源:祥瑞Coding 作者:祥瑞Coding 2021-03-30 10:33 次阅读

背景:深鉴科技的DNNDK,是一个基于Xilinx FPGASDK端的深度学习开发工具包,能够快速的实现深度学习的硬件化。

目的:了解深鉴科技DNNDK内容。

参考内容:

http://www.deephi.com/technology/dnndk

deephi_dnndk_1.10_betadocs user Guide

本篇目录

1. 概览

1.1 DNNDK基于什么?

1.2DP-8000开发板

2. DNNDK Framework

3. DPU应用部署

3.1模型压缩

3.2模型编译

4. DPU编程

4.1DPU Kernel

4.2DPU Task

4.3DPU Node

4.4DPU Tensor

5. 混合编译

6. 运行

7. 重要信息

7.1 板子是否为xilinx的开发板?

7.2 源码是否公开?

正文

1概览

DNNDK (Deep Neural Network Development Kit) - DeePhi deep learning SDK, is designed as an integrated framework, which aims to simplify & accelerate DL (Deep Learning) applications development and deployment on DeePhi DPU (Deep Learning Processing Unit) platform. (Click DNNDK for more information.)

1.1 DNNDK基于什么?

深鉴科技基于 XILINX FPGA芯片 (包括 ZYNQ-7020,ZU2,ZU3,ZU9, KU115等)实现了多个DPU开发平台(2018年将对外提供深鉴自主研发的对外提供深鉴自主研发的 DPU Soc芯片) ,DNNDK对所有 DPU开发平台向用 户提供统一的工具链和户编程接口 APIs。

1.2DP-8000开发板

运用zynq7020芯片,开发板与FPGA芯片是不一样的。

A complete set of solid optimization toolchains, covering compression, compilation and runtime

Lightweight standard C/C++ programming APIs

Easy-to-use & flat/gentle learning curve

2DNNDK Framework

DNNDK组成:

DEep ComprEssioN Tool (DECENT),深度压缩工具:提供剪枝和定点化运算。

Deep Neural Network Compiler (DNNC), 神经网络编译器:将网络算法编译到DPU平台高效运行。运用DECENT后的caffe网络模型作为输入。

Deep Neural Network Assembler (DNNAS), 神经网络集成器:将DPU指令流会编程标准的ELF二进制文件

Neural Network Runtime (N2Cube), 神经网络运行,运行时支持环境,神经网络的加载,资源管理,调度。N2Cube核心组件包括四个部分 : DPU驱动程序 (Driver),加载器 (Loader)、性能分析器 (Profiler)及编程开发库编程开发库 (Library)。

DPU Simulator and Profiler. 深度学习处理单元模拟器。simulator用于验证二进制指令流,只是深鉴科技内部使用,没有对外发布。

e04dd5cc-8c65-11eb-8b86-12bb97331649.png

3DPU应用部署

1. 模型压缩 (主机)
2. 模型编译 (主机)
3. DPU编程开发 (主机或开发板)
4. 混合编译 (开发板)
5. 运行 (开发板)

3.1模型压缩

DECENT工具:

e0b7bc58-8c65-11eb-8b86-12bb97331649.png

3.2模型编译

e11b24dc-8c65-11eb-8b86-12bb97331649.png

编译器前端( Parser)主要处理网络模型的分析与转换,解析输入网络模型的拓扑结构并将其为 DNNC内部与深度学习框架生成的计算图用IR表示。

中端为优化器 (Optimizer),它基于内部IR实施各种编译优化遍 ,包括融合计算图中不同节点间的操作 、高效调度指令 、充分复用 DPU片上数据等 。

代码生成器 (Code-generator)为DNNC编译后端, 主要负责把经过中端优化后的计算图IR映射成为高效运行在DPU上的指令流 。

4DPU编程

4.1DPU Kernel

将神经网络实现为FPGA上实体(可以看作IPcore)。DPU Kernel可以理解为在DPU平台上部署的平台上部署的一个深度学习网络模型的实 体。每个神经网络对应 一个 DPU汇编文件,通过调用DPU运行N2Cube时的dpuLoadKernel()成为一个可运行实体。 DPU的运行时将其加载到特定内存空间并为其分配硬件资源。 然后通过调用 dpuCreateTask()将其实例化为多个DPU Task。

4.2DPU Task

DPU Task是 DPU Kernel的一个运行实例 。每个 DPU Task中处理一个具体的计算任务。每个 DPU Task之间的内存空间相互独立,使得我们可以通过多线程来运行多个 DPU Task,以此来提高系统效率和吞吐量 。

4.3DPU Node

DPU Node是DPU上运行网络模型的一个组成部分 。每个 DPU Node都有其对应的输入、出以及其对应的输入、出以及相关参数。DPU Node依靠其名称来索引,我们可以依靠其名称来索引,我们可以通过 DNNDK提供的 API来获取每个 Node的相关信息 的相关信息 。

4.4DPU Tensor

DPU Tensor是多维数据的集合 ,用来存储网络在运行过程中的数据信息。我们可以通过DNNDK提供的 API获取某个 Tensor对应的属性,如 Height, Width,Channel以及地址信息。

5混合编译

e17b2756-8c65-11eb-8b86-12bb97331649.png

6运行

e1cd9fa4-8c65-11eb-8b86-12bb97331649.png

DPU运行时主要包含四部分:加载器 (Loader)、性能 、性能分析器( Profiler)、库( Library)和 DPU驱动( DPU Driver)。

7重要信息

7.1 板子是否为xilinx的开发板?

不是Xilinx的开发板,只是包含Xilinx的FPGA芯片7z020,开发板是深鉴科技的开发板DP-8000,但是有DPU及相应工具的情况下可以运用Xilinx的开发板来实现。

7.2 源码是否公开?

仅仅公开了主函数和.h头文件,并没有公开驱动和IPcore的源码。

相当于对DPU的定义封装到安装文件和二进制文件中,无法看到源码。

责任编辑:lq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4610

    浏览量

    99470
  • Xilinx
    +关注

    关注

    70

    文章

    2130

    浏览量

    119770
  • 驱动程序
    +关注

    关注

    19

    文章

    778

    浏览量

    47477

原文标题:深鉴科技DNNDK概览

文章出处:【微信号:HXSLH1010101010,微信公众号:FPGA技术江湖】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    FPGA深度学习应用中或将取代GPU

    ,这使得它比一般处理器更高效。但是,很难对 FPGA 进行编程,Larzul 希望通过自己公司开发的新平台解决这个问题。 专业的人工智能硬件已经成为了一个独立的产业,但对于什么是深度学习
    发表于 03-21 15:19

    芯圣SDK工具,让开发更方便——SDK-HC89S105A

    SDK-HC89S105A是基于HC89S105A设计的快速开发工具SDK-HC89S105A由HC89S105A微控制器的主控板和HC-LINKV4.0仿真烧录器两部分组成。用户只需使用此
    的头像 发表于 01-17 09:42 292次阅读
    芯圣<b class='flag-5'>SDK</b><b class='flag-5'>工具</b>,让<b class='flag-5'>开发</b>更方便——<b class='flag-5'>SDK</b>-HC89S105A

    为IoT和IIoT应用选择微控制器开发工具包的介绍性指南

    为IoT和IIoT应用选择微控制器开发工具包的介绍性指南
    的头像 发表于 11-30 15:51 316次阅读
    为IoT和IIoT应用选择微控制器<b class='flag-5'>开发工具包</b>的介绍性指南

    CCES和VDSP开发工具有什么不同?哪个易于操作?

    我选用的21489做音频操作,但是我是一名新手,需要学习一个开发工具,我想问各位这两个开发工具CCES和VDSP++到底有什么区别,如何选用?因为还有一系列的后续开发,各位可建议采用哪
    发表于 11-30 06:59

    解决星闪芯片BS25 1.0.T20.12版本开发工具默认SDK无法编译的问题

    本文介绍在BS25 1.0.T20.12版本开发工具下,默认的SDK无法编译的问题。
    的头像 发表于 11-21 09:08 869次阅读
    解决星闪芯片BS25 1.0.T20.12版本<b class='flag-5'>开发工具</b>默认<b class='flag-5'>SDK</b>无法编译的问题

    解决BS25 1.0.T20.12版本开发工具默认SDK无法编译的问题

    本文介绍在BS25 1.0.T20.12版本开发工具下,默认的SDK无法编译的问题。
    的头像 发表于 11-08 09:40 747次阅读
    解决BS25 1.0.T20.12版本<b class='flag-5'>开发工具</b>默认<b class='flag-5'>SDK</b>无法编译的问题

    开发板和开发工具指南

    与使用开发环境相比,许多工程师更倾向于将调试点嵌入其代码并使用测试设备来验证其硬件。欧时电子指南将详述开发板和开发工具的优势,并提供关于使用和选择恰当开发工具的实用建议。
    的头像 发表于 10-26 14:35 360次阅读

    Microchip(微芯)推出MPLAB机器学习开发工具包

    机器学习(ML)正成为嵌入式设计人员开发或改进各种产品的标准要求。为满足这一需求,Microchip(微芯)近日推出了全新的MPLAB®机器学习开发工具包,提供一套完整的集成工作流程来
    的头像 发表于 09-12 18:26 706次阅读
    Microchip(微芯)推出MPLAB机器<b class='flag-5'>学习</b><b class='flag-5'>开发工具包</b>

    Microchip 推出 MPLAB® 机器学习开发工具包,助力开发人员轻松将机器学习集成到 MCU 和 MPU中

    开发工具包,提供一套完整的集成工作流程来简化机器学习模型开发。这款软件工具包可用于Microchip的各类单片机 (MCU) 和微处理器 (MPU) 产品组合,助力
    的头像 发表于 09-11 15:55 404次阅读

    适用于飞利浦2.2版的RealView开发工具包入门指南

    只有用于飞利浦编译工具和调试器的RVDK支持ARM®工具包专有ELF(ATPE)格式。 编译工具生成的对象和图像不能被其他工具链使用。 ATPE映像只能使用随飞利浦RVDK提供的Rea
    发表于 08-24 08:20

    OneCore存储软件开发工具包(SDK)

    电子发烧友网站提供《OneCore存储软件开发工具包(SDK).pdf》资料免费下载
    发表于 08-22 14:53 0次下载
    OneCore存储软件<b class='flag-5'>开发工具包</b>(<b class='flag-5'>SDK</b>)

    ARM软件开发工具包2.50版参考指南

    ARM软件开发工具包(SDT)由一套应用程序以及支持文档和示例组成,使您能够为ARM系列RISC处理器编写和调试应用程序。 您可以使用SDT来开发、生成和调试C、C++或ARM汇编语言程序。
    发表于 08-21 07:17

    c++对于ARM软件开发工具包用户及参考指引

    这本书描述了armc++ 1.0版本的ARM软件开发工具包,以下简称为armc++。ARM c++是一套工具,当与ARM软件开发工具包2.11或更高版本一起使用时,允许您为ARM家族的RisC处理器
    发表于 08-08 06:29

    利用OpenVINO工具包检测汽车品牌

    作为ISV,DGCT有一项检测汽车品牌的要求。因此,有必要设计、开发和测试汽车品牌检测原型,以证明Intel@DistributionofOpenVINOTM用于铝秤的工具包的可行性,从而准确、高效
    发表于 08-04 07:36

    Emulex软件开发工具包实用程序(elxsdkutil)

    电子发烧友网站提供《Emulex软件开发工具包实用程序(elxsdkutil).pdf》资料免费下载
    发表于 07-28 09:36 0次下载
    Emulex软件<b class='flag-5'>开发工具包</b>实用程序(elxsdkutil)