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

仓库下载

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

posted @ 2024-05-29 15:49  eastgeneral  阅读(93)  评论(0编辑  收藏  举报