首页 > 系统相关 >Ubuntu下的onnxruntime(c++)编译 转载文章 非原创

Ubuntu下的onnxruntime(c++)编译 转载文章 非原创

时间:2024-05-29 15:55:31浏览次数:32  
标签:providers onnxruntime c++ -- cuda Ubuntu cc usr

仓库下载

git clone --depth=1 --branch v1.12.1 https://github.com.cnpmjs.org/microsoft/onnxruntime.git

注意:需要更换国内镜像源
编译
GPU

./build.sh --skip_tests --use_cuda --config Release --build_shared_lib --parallel --cuda_home /usr/local/cuda-11.3 --cudnn_home /usr/local/cuda-11.3

其中的use_cuda表示你要使用CUDA的onnxruntime,cuda_home和cudnn_home均指向你的CUDA安装目录即可。

onnxruntime版本和cuda、cudnn版本要对应,具体参考官方推荐
https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html

TensorRT

Tensorrt安装参考
这里


./build.sh \
    --parallel 8 \
    --use_cuda \
    --cuda_version=11.1 \
    --cuda_home=/usr/local/cuda \
    --cudnn_home=/usr/local/cuda \
    --use_tensorrt --tensorrt_home=/usr/local/lib/python3.8/dist-packages/tensorrt \
    --build_shared_lib --enable_pybind \
    --build_wheel --update --build \
    --config Release

注意

    cmake版本过低会导致编译失败;
    问题。编译过程中会链接其他github仓库,需要手动添加镜像源。

cd ${your git repo root}
cd .git
vim config

修改为:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
    precomposeunicode = true
[remote "origin"]
    url = https://github.com.cnpmjs.org/microsoft/onnxruntime.git
    fetch = +refs/tags/v1.7.0:refs/tags/v1.7.0

也不多,大概几十个把

编译成功

[ 98%] Building CXX object CMakeFiles/onnxruntime_providers.dir/Users/xxx/Desktop/third_party/library/onnxruntime/onnxruntime/contrib_ops/cpu/skip_layer_norm.cc.o
[ 98%] Building CXX object CMakeFiles/onnxruntime_providers.dir/Users/xxx/Desktop/third_party/library/onnxruntime/onnxruntime/contrib_ops/cpu/tokenizer.cc.o
[100%] Building CXX object CMakeFiles/onnxruntime_providers.dir/Users/xxx/Desktop/third_party/library/onnxruntime/onnxruntime/contrib_ops/cpu/trilu.cc.o
[100%] Building CXX object CMakeFiles/onnxruntime_providers.dir/Users/xxx/Desktop/third_party/library/onnxruntime/onnxruntime/contrib_ops/cpu/unique.cc.o
[100%] Building CXX object CMakeFiles/onnxruntime_providers.dir/Users/xxx/Desktop/third_party/library/onnxruntime/onnxruntime/contrib_ops/cpu/word_conv_embedding.cc.o
[100%] Linking CXX static library libonnxruntime_providers.a
/Library/Developer/CommandLineTools/usr/bin/ranlib: file: libonnxruntime_providers.a(dft.cc.o) has no symbols
/Library/Developer/CommandLineTools/usr/bin/ranlib: file: libonnxruntime_providers.a(window_functions.cc.o) has no symbols
/Library/Developer/CommandLineTools/usr/bin/ranlib: file: libonnxruntime_providers.a(dft.cc.o) has no symbols
/Library/Developer/CommandLineTools/usr/bin/ranlib: file: libonnxruntime_providers.a(window_functions.cc.o) has no symbols
[100%] Built target onnxruntime_providers
[100%] Building C object CMakeFiles/onnxruntime.dir/generated_source.c.o
[100%] Linking CXX shared library libonnxruntime.dylib
[100%] Built target onnxruntime
2021-04-15 22:39:10,495 util.run [DEBUG] - Subprocess completed. Return code: 0
2021-04-15 22:39:10,496 build [INFO] - Build complete

install

cd ./build/Linux/release
make install

标签:providers,onnxruntime,c++,--,cuda,Ubuntu,cc,usr
From: https://www.cnblogs.com/eastgeneral/p/18220455

相关文章

  • C++中以类的成员函数作为Windows callback函数需要设置成static函数
    在看代码时,发现很多CALLBACK函数,所以仔细研究了一下C++中的CALLBACK函数首先,我们来理解一下,什么是C++中的CALLBACK函数 =>凡是由你设计,但是由Windows操作系统调用的函数,我们把它统称为CALLBACK函数,这些函数都有一定的类型,以方便配合Windows的调用动作某些WindowsAPI函数会要......
  • c++ 构造函数
     =================1.简介子类为完成基类初始化,在C++11之前,需要在初始化列表调用基类的构造函数,从而完成构造函数的传递。如果基类拥有多个构造函数,那么子类也需要实现多个与基类构造函数对应的构造函数。classBase{public: Base(intv):_value(v),_c(‘0’){} Base(cha......
  • QT C++实现表头添加组件
    QTableWidget在表头添加组件QTableWidget的表头有一个类QHeaderView是专门处理表头的类,要在表头添加一个类似QCheckBox的组件需要重写一个类并继承QHeaderView。QTableWidget中添加复选框并实现全选居中:自定义类MyHeaderView并继承QHeaderView自定义类MyTableWidget并继承QTa......
  • Ubuntu22.04安装docker
    相关参考资料腾讯云指导在Ubuntu22.04上安装Docker,可以通过以下步骤进行:更新软件包索引:sudoapt-getupdate安装必要的软件包,以允许apt通过HTTPS使用仓库:sudoapt-getinstallca-certificatescurlgnupglsb-release添加Docker的官方GPG密钥:curl-fsSLhttps://downlo......
  • Java语言,MySQL数据库;SSM 心理咨询预约管理系统19086(免费领源码)计算机毕业设计项目推荐
    目 录摘要1绪论1.1背景及意义1.2研究现状1.3ssm框架介绍1.4论文结构与章节安排2 心理咨询预约管理系统系统分析2.1可行性分析2.1.1技术可行性分析2.1.2经济可行性分析2.1.3法律可行性分析2.2系统功能分析2.2.1功能性分析2.2.2非功能......
  • Ubuntu使用sudo命令
    在Ubuntu系统中,使用管理员权限通常涉及到使用sudo命令。这是因为Ubuntu默认情况下不直接允许root用户登录,而是通过sudo命令来执行需要管理员权限的任务。以下是一些常见的使用管理员权限的方法:1.使用sudo命令运行单个命令如果只需要以管理员权限运行单个命令,可以在命令......
  • 从 .NET 到 C++:集合处理的思考
    1.IEnumerable与List的比较在.NET中,IEnumerable和List是两种常用的集合类型,它们有各自的适用场景:IEnumerable<T>:优点:惰性求值,仅在迭代时计算,适用于大数据集或流式数据处理。缺点:不能进行索引访问,没有直接的添加或移除元素的方法。List<T>:优点:支持索引访问,具备......
  • c++ 11 常用特性
     C++11常用特性总结 非原创,转载出处 http://www.cnblogs.com/feng-scC++11已经出来很久了,网上也早有很多优秀的C++11新特性的总结文章,在编写本博客之前,博主在工作和学习中学到的关于C++11方面的知识,也得益于很多其他网友的总结。本博客文章是在学习的基础上,加上博......
  • Ubuntu发送邮件功能在客户端如何设置自动?
    Ubuntu系统下AokSend邮件发送功能的使用技巧有哪些?在Ubuntu系统中,设置自动发送邮件功能对于管理服务器和监控系统来说非常重要。AokSend将介绍如何在Ubuntu客户端上设置自动发送邮件功能,并探讨使用AokSend发送邮件的技巧和注意事项。Ubuntu发送邮件:功能设置确保sendmail发......
  • c++ 设计模板
     ========一、设计模式的分类总体来说设计模式分为三大类创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板......