onnxruntime gpu/cpu 推理onnx vs2019c++

onnx onnxruntime cuda cudnn对应关系

Compatibility | onnxruntime

NVIDIA - CUDA | onnxruntime

/*onnx  1.12  onnxruntime 1.13.1 cuda 11.6 cudnn 8.5.0.96 */	
Ort::SessionOptions session_options;
Ort::Env env = Ort::Env(ORT_LOGGING_LEVEL_ERROR, "yolov8-onnx");
session_options.SetGraphOptimizationLevel(ORT_ENABLE_BASIC);

std::vector<std::string> providers = Ort::GetAvailableProviders();
std::vector<std::string>::iterator cudaproviders;
for (cudaproviders = providers.begin(); cudaproviders != providers.end(); ++cudaproviders)
{
	std::cout << *cudaproviders << std::endl;
	if ((*cudaproviders) == "CUDAExecutionProvider")
		break;
}
if (cudaproviders != providers.end())
{
	OrtCUDAProviderOptions cudaOption;
	cudaOption.device_id = 0;//gpu设备id
	cudaOption.arena_extend_strategy = 0;//内存分配和释放策略   0:默认
	cudaOption.cudnn_conv_algo_search = OrtCudnnConvAlgoSearchExhaustive;//卷积算法搜索策略,表示在初始化时,进行全面搜索以找到最优的卷积算法,可能会在初始化时增加时间开销,但在推理过程中提高性能
	cudaOption.gpu_mem_limit = SIZE_MAX;//设置gpu内存上限,SIZE_MAX无上限
	cudaOption.do_copy_in_default_stream = 1;//是否在默认流中进行内存复制。1 表示启用这个选项。启用这个选项可以简化内存管理,但在某些情况下可能会影响性能(例如,当有多个流时)
	session_options.AppendExecutionProvider_CUDA(cudaOption);
}

Ort::Session session_(env, onnx_path_name, session_options);

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值