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

本文涉及的产品
交互式建模 PAI-DSW,5000CU*H 3个月
简介: 玄铁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月前
|
监控 网络协议 Java
Linux 网络编程从入门到进阶 学习指南
在上一篇文章中,我们探讨了 Linux 系统编程的诸多基础构件,包括文件操作、进程管理和线程同步等,接下来,我们将视野扩展到网络世界。在这个新篇章里,我们要让应用跳出单机限制,学会在网络上跨机器交流信息。
Linux 网络编程从入门到进阶 学习指南
|
1月前
|
机器学习/深度学习 PyTorch 算法框架/工具
【PyTorch实战演练】AlexNet网络模型构建并使用Cifar10数据集进行批量训练(附代码)
【PyTorch实战演练】AlexNet网络模型构建并使用Cifar10数据集进行批量训练(附代码)
61 0
|
1月前
|
机器学习/深度学习 PyTorch 算法框架/工具
【PyTorch实战演练】使用Cifar10数据集训练LeNet5网络并实现图像分类(附代码)
【PyTorch实战演练】使用Cifar10数据集训练LeNet5网络并实现图像分类(附代码)
60 0
|
1天前
|
存储 NoSQL Linux
Redis入门到通关之Redis5种网络模型详解
Redis入门到通关之Redis5种网络模型详解
|
3天前
|
存储 网络协议 关系型数据库
Python从入门到精通:2.3.2数据库操作与网络编程——学习socket编程,实现简单的TCP/UDP通信
Python从入门到精通:2.3.2数据库操作与网络编程——学习socket编程,实现简单的TCP/UDP通信
|
10天前
|
数据采集 机器学习/深度学习 数据挖掘
网络数据处理中的NumPy应用实战
【4月更文挑战第17天】本文介绍了NumPy在网络数据处理中的应用,包括数据预处理、流量分析和模式识别。通过使用NumPy进行数据清洗、格式化和聚合,以及处理时间序列数据和计算统计指标,可以有效进行流量分析和异常检测。此外,NumPy还支持相关性分析、周期性检测和聚类分析,助力模式识别。作为强大的科学计算库,NumPy在处理日益增长的网络数据中发挥着不可或缺的作用。
|
1月前
|
机器学习/深度学习 算法 PyTorch
【PyTorch实战演练】深入剖析MTCNN(多任务级联卷积神经网络)并使用30行代码实现人脸识别
【PyTorch实战演练】深入剖析MTCNN(多任务级联卷积神经网络)并使用30行代码实现人脸识别
57 2
|
1月前
|
机器学习/深度学习 自然语言处理 PyTorch
【PyTorch实战演练】基于全连接网络构建RNN并生成人名
【PyTorch实战演练】基于全连接网络构建RNN并生成人名
23 0
|
1月前
|
安全 网络安全 数据安全/隐私保护
网络拓扑结构入门快速介绍
网络拓扑结构入门快速介绍
|
1月前
|
数据采集 Web App开发 数据处理
Ruby网络爬虫教程:从入门到精通下载图片
Ruby网络爬虫教程:从入门到精通下载图片