玄铁RISC-V处理器入门与实战-平头哥RISC-V 工具链-HHB神经网络模型部署工具

本文涉及的产品
模型训练 PAI-DLC,5000CU*H 3个月
交互式建模 PAI-DSW,每月250计算时 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
简介: 玄铁RISC-V处理器入门与实战-平头哥RISC-V 工具链


1概述

HHB(Heterogeneous Honey Badger)是针对玄铁全系列处理器、无剑SoC平台的神经网络模型部署工具集,包括了编译优化,性能分析,过程调试,结果模拟等一系列部署时所需的工具。该工具集通过向开发者提供从模型优化到部署调试全过程的辅助工具,简化AI模型应用落地到端侧设备的开发过程,从而缩短AI产品的开发周期。

 

HHB的功能与特性:

支持caffe,tensorflow,onnx和tflite对应格式的模型

支持8/16位定点和16位浮点等数据类型

支持对称和非对称定点量化,支持通道量化

可在部署前优化模型的网络结构

编译生成可在玄铁芯片平台上执行的二进制

支持在主机上做行为模拟

多组件形式的工具集方便二次开发

符合传统习惯的Unix命令行模式

2HHB层次结构

HHB已支持语音和视觉的多种不同业务算法,可导入Caffe和TensorFlow等不同训练框架的模型。

 

HHB以开源项目TVM为基础架构,添加了丰富的命令行选项提供命令模式;预置了多类量化算法适配不同平台可支持的数据类型;根据不同平台特点,输出调用CSI-NN2的C代码,或者直接输出可执行的二进制。

 

image.png 

 

3命令行工具集

HHB工具集包括了如下一些独立命令行工具:

import:模型导入工具,负责将现有的模型转换为HHB私有的格式。

quantize:量化工具,负责将import出来的文件量化,生成量化后的中间文件。

codegen:代码生成工具,调整中间文件为生成二进制做准备。

deploy:特定平台的部署工具,负责生成二进制及配套的头文件和源代码。

simulate:行为模拟工具,负责在主机上模拟模型执行。

profiler:性能分析工具,负责分析网络中的热点子图,以及提供在特定平台上的优化建议。

 

相互关系大致如下图所示,其中deploy和标灰的是暂时还不支持的部分:

 

image.png

 

4)获取安装

HHB版本发布时,提供独立的可执行程序包,也提供包含示例的完整docker环境。

推荐使用docker,docker安装参考附录《Docker安装和导入镜像》。

OCC站点下载:AI部署工具

 

环境要求

推荐使用已测试过的执行环境:

可执行程序包:ubuntu 18.04

docker:Docker version 19.03.4

HHB默认以docker镜像的方式发布,最简单的获取方式是docker官方的镜像仓库:dockerhub

获取HHB 2.0可以使用命令:

 

docker push hhb4tools/hhb:lastest

 

如果未安装docker,可以参考附录《Docker安装和导入镜像》先安装docker。更多关于HHB神经网络模型部署工具相关内容可以参考《HHB用户手册》。

相关文章
|
1月前
|
机器学习/深度学习 PyTorch 算法框架/工具
目标检测实战(一):CIFAR10结合神经网络加载、训练、测试完整步骤
这篇文章介绍了如何使用PyTorch框架,结合CIFAR-10数据集,通过定义神经网络、损失函数和优化器,进行模型的训练和测试。
107 2
目标检测实战(一):CIFAR10结合神经网络加载、训练、测试完整步骤
|
24天前
|
数据采集 存储 JSON
Python网络爬虫:Scrapy框架的实战应用与技巧分享
【10月更文挑战第27天】本文介绍了Python网络爬虫Scrapy框架的实战应用与技巧。首先讲解了如何创建Scrapy项目、定义爬虫、处理JSON响应、设置User-Agent和代理,以及存储爬取的数据。通过具体示例,帮助读者掌握Scrapy的核心功能和使用方法,提升数据采集效率。
73 6
|
13天前
|
消息中间件 编解码 网络协议
Netty从入门到精通:高性能网络编程的进阶之路
【11月更文挑战第17天】Netty是一个基于Java NIO(Non-blocking I/O)的高性能、异步事件驱动的网络应用框架。使用Netty,开发者可以快速、高效地开发可扩展的网络服务器和客户端程序。本文将带您从Netty的背景、业务场景、功能点、解决问题的关键、底层原理实现,到编写一个详细的Java示例,全面了解Netty,帮助您从入门到精通。
49 0
|
19天前
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
|
24天前
|
数据采集 前端开发 中间件
Python网络爬虫:Scrapy框架的实战应用与技巧分享
【10月更文挑战第26天】Python是一种强大的编程语言,在数据抓取和网络爬虫领域应用广泛。Scrapy作为高效灵活的爬虫框架,为开发者提供了强大的工具集。本文通过实战案例,详细解析Scrapy框架的应用与技巧,并附上示例代码。文章介绍了Scrapy的基本概念、创建项目、编写简单爬虫、高级特性和技巧等内容。
52 4
|
25天前
|
网络协议 物联网 API
Python网络编程:Twisted框架的异步IO处理与实战
【10月更文挑战第26天】Python 是一门功能强大且易于学习的编程语言,Twisted 框架以其事件驱动和异步IO处理能力,在网络编程领域独树一帜。本文深入探讨 Twisted 的异步IO机制,并通过实战示例展示其强大功能。示例包括创建简单HTTP服务器,展示如何高效处理大量并发连接。
40 1
|
26天前
|
网络协议 安全 NoSQL
网络空间安全之一个WH的超前沿全栈技术深入学习之路(8-2):scapy 定制 ARP 协议 、使用 nmap 进行僵尸扫描-实战演练、就怕你学成黑客啦!
scapy 定制 ARP 协议 、使用 nmap 进行僵尸扫描-实战演练等具体操作详解步骤;精典图示举例说明、注意点及常见报错问题所对应的解决方法IKUN和I原们你这要是学不会我直接退出江湖;好吧!!!
网络空间安全之一个WH的超前沿全栈技术深入学习之路(8-2):scapy 定制 ARP 协议 、使用 nmap 进行僵尸扫描-实战演练、就怕你学成黑客啦!
|
26天前
|
网络协议 安全 算法
网络空间安全之一个WH的超前沿全栈技术深入学习之路(9):WireShark 简介和抓包原理及实战过程一条龙全线分析——就怕你学成黑客啦!
实战:WireShark 抓包及快速定位数据包技巧、使用 WireShark 对常用协议抓包并分析原理 、WireShark 抓包解决服务器被黑上不了网等具体操作详解步骤;精典图示举例说明、注意点及常见报错问题所对应的解决方法IKUN和I原们你这要是学不会我直接退出江湖;好吧!!!
网络空间安全之一个WH的超前沿全栈技术深入学习之路(9):WireShark 简介和抓包原理及实战过程一条龙全线分析——就怕你学成黑客啦!
|
1月前
|
Java
[Java]Socket套接字(网络编程入门)
本文介绍了基于Java Socket实现的一对一和多对多聊天模式。一对一模式通过Server和Client类实现简单的消息收发;多对多模式则通过Server类维护客户端集合,并使用多线程实现实时消息广播。文章旨在帮助读者理解Socket的基本原理和应用。
23 1
|
24天前
|
网络协议 调度 开发者
Python网络编程:Twisted框架的异步IO处理与实战
【10月更文挑战第27天】本文介绍了Python网络编程中的Twisted框架,重点讲解了其异步IO处理机制。通过反应器模式,Twisted能够在单线程中高效处理多个网络连接。文章提供了两个实战示例:一个简单的Echo服务器和一个HTTP服务器,展示了Twisted的强大功能和灵活性。
32 0
下一篇
无影云桌面