DefTruth
DefTruth
可以尝试下设置CUDAProvider, 在ort_handler.cpp中修改session_options. ```c++ // GPU compatiable. 尝试增加以下2句,emmm..... 我没有windows环境,其实没试过 OrtCUDAProviderOptions provider_options; // C接口 session_options.AppendExecutionProvider_CUDA(provider_options); // 1. session ort_session = new Ort::Session(ort_env, onnx_path, session_options); ``` 以及可以参考下这个官方案例[fns_candy_style_transfer.c](https://github.com/microsoft/onnxruntime-inference-examples/blob/main/c_cxx/fns_candy_style_transfer/fns_candy_style_transfer.c) 里面有不同Provider的设置方法。比如. ```c #ifdef USE_CUDA void enable_cuda(OrtSessionOptions*...
> > ```c > > ORT_ABORT_ON_ERROR(OrtSessionOptionsAppendExecutionProvider_CUDA(session_options, 0)); > > ``` > > 不对的,我加了这句话后,崩溃: > 跟cuda cudnn什么的怎么匹配? 应该也不能完全说不对的,应该还是用法有些问题。我这版代码是暂时没有做GPU兼容的,应该有些地方需要你去修改。首先你需要确保你用的GPU版本的库以及对应CUDA版本是对的。 我们可以从源码来分析一下用法。在onnxruntime_c_api.cc中有一段: ```c++ # include "core/session/onnxruntime_c_api.h" // ...省略一部分头文件 #ifdef USE_CUDA #include "core/providers/cuda/cuda_provider_factory.h" #endif ```...
> 我想问一下,模型导出的时候,有没有cpu和gpu之分,导出的cpu模型,gpu不能加载? 这个没有cpu和gpu区别的,都是可以用的。你现在用的是GPU版本的库和头文件吗?你直接导入这些头文件试试?onnxruntime_c_api.h已经是被包含在onnxruntime_cxx_api.h里面的, OrtSessionOptionsAppendExecutionProvider_CUDA这个C API应该能找到才对啊。你这有点奇怪 ```c++ #include #include ```
> 我的环境:cuda 11.3 cudnn 8.0.1.6, vs2019 onnxruntime 1.8.1 gpu版本 > 帮忙看看,能不能找到点头绪? 你电脑确定是NVIDIA的显卡吗?只能是N卡哦
> > > 我想问一下,模型导出的时候,有没有cpu和gpu之分,导出的cpu模型,gpu不能加载? > > > > > > 这个没有cpu和gpu区别的,都是可以用的。你现在用的是GPU版本的库和头文件吗?你直接导入这些头文件试试?onnxruntime_c_api.h已经是被包含在onnxruntime_cxx_api.h里面的, OrtSessionOptionsAppendExecutionProvider_CUDA这个C API应该能找到才对啊。你这有点奇怪 > > ```c++ > > #include > > #include > > ``` > > https://github.com/microsoft/onnxruntime/releases 我是从这里下载的,这里下载的,貌似就没有cuda那个文件夹 我看到是有cuda_provider_factory.h的,应该是一样。官方包里面的头文件目录结构和自己编的是不一样的。官方包里面的include是这样的。
> 非常感谢,可以了。哎。 你太艰难了~ 哈哈 ~
> 没事,只要弄成了,再难都值得。哈哈。你可以把这一句加上了,兼容gpu。 get ~
> 只是,接下来,希望把yolor模型进行兼容吧 之后看时间允不允许,平时工作也比较忙。不过这个项目应该会长期维护~
> 嗯。加油。希望可以整个qq群吧,这样交流起来比较方便点。 精力有限,暂时没有这个计划哈哈~
> 另外,如果模型输入,不是640*640,怎么修改? 看这个issue #9 ,这里面有讨论这个问题,yolox.cpp现在兼容非方形输入,不会有问题的,你需要下载Lite.AI最新版的代码,或者直接拷贝新的[yolox.cpp](https://github.com/DefTruth/lite.ai/blob/main/ort/cv/yolox.cpp) 和 [yolox.h](https://github.com/DefTruth/lite.ai/blob/main/ort/cv/yolox.h) 替换原来的即可。