c++ - 升级到 CUDA 11 时 cudaError/CUresult 不兼容
问题描述
我正在尝试将项目从 VS2013/CUDA 8.0 升级到 VS2019/CUDA11.1。
在 VS2013/CUDA8 中一切正常,但是当我尝试使用 VS2019/CUDA11 构建项目时,我收到关于 cuda_helper 的以下兼容性错误:
1>C:\ProgramData\NVIDIA Corporation\CUDA Samples\v11.1\common\inc\helper_cuda.h(571): error : argument of type "CUresult" is incompatible with parameter of type "cudaError_t"
1> detected during instantiation of "void check(T, const char *, const char *, int) [with T=CUresult]"
1>C:\ProgramData\NVIDIA Corporation\CUDA Samples\v11.1\common\inc\helper_cuda_drvapi.h(123): here
CUDA 11 中的哪些变化会导致此错误?如何找到并纠正项目中的错误?
解决方案
我能够解决这个问题导入<helper_cuda.h>
而不是<helper_cuda_drvapi.h>
实际上,CUDA 驱动程序返回一个 CUresult,而 CUDA 运行时返回一个 cudaError_t。它可能会从一个 CUDA 版本更改为另一个版本。
否则,正如 talonmies 所提到的,在我的项目中包含一些 CUDA 样本可能不是一个好主意。
推荐阅读
- amazon-web-services - AWS Device Farm - 在设备上禁用教程
- android - LiveData 和转换使用
- haskell - 在haskell中为每个列表元素编号并格式化文本
- firebase - 使用“firebase serve”时出现“EACCES:权限被拒绝”
- java - 在spring data jpa的同一个事务中修改不可见,为什么在同一个事务中修改后我得到null?
- python - 使用装饰器保存 matplotlib 图形;保存的输出为空白
- php - Laravel 5.5 测试删除 api 路由的 ModelNotFoundException 异常
- r - 将字符数据构造成数据框
- python - 填充 DataFrame Pandas Python
- amazon-web-services - 动态端口映射使我的任务不可用