基于onnxruntime的C++版本CPU/GPU源码编译
基于onnxruntime的C++版本CPU/GPU源码编译
提示:基于onnxruntime的CPU/GPU源码编译,C++版本
文章目录
- 基于onnxruntime的C++版本CPU/GPU源码编译
- 前言
- 一、源码地址
- 二、步骤
- 1.基础环境搭建
- 2.源码编译
- 3.测试
- 4.注意事项
- 总结
前言
一、ONNX Runtime是什么?
ONNX Runtime是适用于Linux,Windows和Mac上ONNX格式的机器学习模型的高性能推理引擎.
二、为什么要用ONNX Runtime?
微软在开源中提供了大量框架和引擎。第一个是开放式神经网络交换(ONNX)运行时 https://github.com/microsoft/onnxruntime,这是一种用于ONNX格式的机器学习模型的高性能推理引擎。它从今天开始在GitHub上提供,可以自定义并直接集成到现有代码库中,或者从源代码编译,在Windows 10,Linux和各种其他操作系统上运行。
对于不熟悉的人来说,ONNX是一种与平台无关的深度学习模型,可以实现开源AI框架之间的互操作性,例如Google的TensorFlow,Microsoft的Cognitive Toolkit,Facebook的Caffe2和Apache的MXNet。微软,AWS和Facebook在大约于2017年9月联合宣布,它正在由亚马逊,Nvidia,英特尔和AMD等公司进行积极的开发。
也许更重要的是,它得到了更广泛的ONNX社区的支持。英特尔和微软正在合作将nGraph编译器集成为ONNX Runtime的执行提供程序。Nvidia正在帮助整合TensorRT; 高通公司表示支持。它可以在嵌入式设备,Windows和Linux上运行…它极大地简化了开发人员的生活。随着微软开发Azure机器学习服务 - 一个允许开发人员构建,培训和部署AI模型的云平台 - 一般可用并发布Azure认知服务语言理解API的容器化支持,ONNX的推出也随之而来。
一、源码地址
源码github地址.
https://github.com/microsoft/onnxruntime
本人github地址.
https://github.com/wyt95
二、步骤
1.基础环境搭建
- 基础编译环境:
Ubuntu18.04
cmake version 3.20.3
Python3.9.5.
- python版本 > 3.5 ,建议直接最新源码下载编译
- 源码编译步骤:./configure;sudo make ; make install
- 编译完成后记得执行python3 -V看下版本信息对不对
- PS:如果要使用tesonrRT,建议下载python3.8,因为onnxruntime的tensorRt的编译需要下载tensorRt7.2.2.3,支持的python版本:2.7,3.4-3.8,目前暂不支持3.9以上
python3 numpy
pip3 install numpy即可
nvidia驱动
下载cuda11.0的版本时使用默认的cuda自带的驱动进行安装,见第二张图
CUDA以及cudnn版本
- CUDA版本11.0update.
- cudnn版本8.05forCUDA11.0.
以上就是基础环境配置
2.源码编译
进入onnxruntime的代码目录
编译GPU,命令如下:
./build.sh --skip_tests --use_cuda --config Release --build_shared_lib --parallel --cuda_home /usr/local/cuda-11.0 --cudnn_home /usr/local/cuda-11.0
编译CPU,命令如下:
./build.sh --skip_tests --config Release --build_shared_lib
编译tensorrt,命令如下:
./build.sh --build_shared_lib --skip_tests --config Release --use_cuda --cudnn_home /usr/local/cuda/ --cuda_home /usr/local/cuda --use_tensorrt --tensorrt_home /home/TensorRT-7.2.2.3/
以下就是GPU版本编译完成后产生的libonnxruntime.so.1.8.0以及libonnxruntime.so
libonnxruntime.so是软连接到libonnxruntime.so.1.8.0上去的
- GPU版本的onnxruntime的库包含cuda的函数信息,CPU版本的库就不会存在cuda的函数信息
1.7.0版本是本人四月份编译的cpu的版本,大家可以自己编译之后比对下两者的函数包含信息
3.测试
- 需要这几个库放一起编译使用
4.注意事项
onnxruntime的GPU的版本经过本人一周反复测试,cuda、cudnn以及nvdia驱动的版本是强配套的
ps:期间因为版本没有完全配套导致环境乱了,重装环境了QAQ
总结
我也是第一次尝试,源码编译还是慢慢来吧,有什么问题可以直接私信讨论,或者下方评论留言
基于onnxruntime的C++版本CPU/GPU源码编译相关推荐
- Linux16.04配置tensorflow(GPU源码编译)并深入了解tensorboard
Tensorflow – Google推出的一个强大的"深度学习框架".于2015年11月在GIthub上开源,在2016年4月补充了分布式版本,并于2017年1月发布了1.0版本 ...
- 最好用的Redis Desktop Manager 0.9.3 版本下载 以及源码编译教程
文章目录 一.前言 二.编译教程 2.1 [redis destop manager 的源码地址](https://github.com/uglide/RedisDesktopManager) 2.2 ...
- android 编译 oserror,jdk/java版本与Android源码编译中的错误
错误一:javap未指向有效的java版本 Traceback (most recent call last): File"../../base/android/jni_generator/ ...
- Oryx 2.1.2版本: src源码编译
2019独角兽企业重金招聘Python工程师标准>>> 1)打开 https://github.com/OryxProject/oryx/releases 2)下载 选择最新版本: ...
- 干货|TensorFlow开发环境搭建(Ubuntu16.04+GPU+TensorFlow源码编译)
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|机器学习算法工程师 安装平台 1 平台 目前Tensor ...
- anaconda tensorflow 2.3_TensorFlow开发环境搭建(Ubuntu16.04+GPU+TensorFlow源码编译)
1 安装选择 1.1 平台 目前TensorFlow已支持Mac.Ubuntu和Windows三个主流平台(64位平台), 1.2 GPU vs CPU 在安装时可以选择安装版本是否支持GPU, 1. ...
- 07-PDI(Kettle)源码编译8.2.0.0.R版本
文章目录 07-PDI(Kettle)源码编译8.2.0.0.R版本 1.安装PDI8.2.0.0.R的parent工程到本地 1.1配置Maven的settings.xml文件 1.2安装PDI源码 ...
- pip安装wxpython报错traceback_使用源码编译wxpython-基于python2.7
1.前言 本文主要讲述在linux环境下进行编译wxpython,在windows下面安装wxpython很简单,只要下载,然后直接执行exe文件,下一步下一步即可安装,在linux下面,则具有很多步 ...
- mindspore 1.3.0版本GPU环境下源码编译的正式工作——完整的编译过程
转载地址:https://bbs.huaweicloud.com/forum/thread-143140-1-1.html 作者: devilmaycry 编译之前需要完成依赖环境的安装,具体请看: ...
最新文章
- 哪家中国公司为Java 16贡献最多?Java第一大厂居然不是第一的...
- java怎么xml文件解析_Java对Xml文件解析
- Unity3D ShaderLab 内发光防护罩
- C语言高级编程:函数指针的用法
- andriod sqlite 详解转载
- tinycore php,tinycore中文支持
- ExtJS和AngularJS比较
- 如何用Pygame写游戏(五)
- Python机器学习:KNN算法06网格搜索
- 【时间序列预测】基于matlab RBF神经网络时间序列预测【含Matlab源码 1336期】
- C语言 知识点总结完美版
- python绘图代码大全_python绘图代码总结
- 精简版WIN XP安装日文输入法
- 【PID控制与模糊PID控制的比较】(带仿真和代码链接)
- 返利网app有那些?哪一个最好用?
- 2021年山东省职业院校技能大赛中职组网络安全赛项竞赛样题
- word 文本框插入图片
- SPI通讯协议详解 基于STM32
- 对 Linux 初级、中级、高级用户非常有用的 60 个命令
- 精品咖啡知识不能不知道的8个地方
热门文章
- 【软件测试】工作瓶颈?测试的出路在哪?
- Similar command is: ‘lz’ bash: ls: command not found...
- 2023适合新手的免费编曲软件FL Studio水果21中文版
- java2018国家竞赛_2018年全国普通高校学科竞赛排行榜发布
- Web项目小票打印分页打印
- Arithmetic problem | The Triangle
- 看门狗 (监控芯片)
- 从Google Map爬数据
- 如何提高蓝队在实战攻防演习中的防御水平?
- 企业管理 - 波司登战略管理解析