Nvidia 示例应用程序的 DPCT 迁移问题
Posted
技术标签:
【中文标题】Nvidia 示例应用程序的 DPCT 迁移问题【英文标题】:DPCT migration issue with Nvidia sample application 【发布时间】:2021-09-16 15:02:53 【问题描述】:我正在尝试使用英特尔 DPCT 工具将 CUDA 代码迁移到 Dpc++。这是我的详细信息:
操作系统:Ubuntu 20.04 应用:BlackScholes(金融应用。Nvidia CUDA 工具包示例)
在迁移过程中,DPCT 工具生成了很多警告:
/home/administrator/NVIDIA_CUDA-11.1_Samples/4_Finance/BlackScholes/BlackScholes.cu:116:21:警告:DPCT1003:0:迁移的 API 不返回错误代码。 (, 0) 被插入。您可能需要重写此代码。 checkCudaErrors(cudaMalloc((void **)&d_CallResult, OPT_SZ)); ^ /home/administrator/NVIDIA_CUDA-11.1_Samples/4_Finance/BlackScholes/BlackScholes.cu:117:21:警告:DPCT1003:1:迁移的 API 不返回错误代码。 (, 0) 被插入。您可能需要重写此代码。 checkCudaErrors(cudaMalloc((void **)&d_PutResult, OPT_SZ)); ^ /home/administrator/NVIDIA_CUDA-11.1_Samples/4_Finance/BlackScholes/BlackScholes.cu:118:21:警告:DPCT1003:2:迁移的 API 不返回错误代码。 (, 0) 被插入。您可能需要重写此代码。 checkCudaErrors(cudaMalloc((void **)&d_StockPrice, OPT_SZ)); ^ /home/administrator/NVIDIA_CUDA-11.1_Samples/4_Finance/BlackScholes/BlackScholes.cu:119:21:警告:DPCT1003:3:迁移的 API 不返回错误代码。 (, 0) 被插入。您可能需要重写此代码。 checkCudaErrors(cudaMalloc((void **)&d_OptionStrike, OPT_SZ));
谁能告诉我如何解决这些警告?
重现步骤:
-
拦截构建制作
dpct -p compile_commands.json
【问题讨论】:
【参考方案1】:您只需重写代码即可消除与 cudaCheckErrors 相关的警告。
例如: “checkCudaErrors(cudaMalloc((void **)&d_CallResult, OPT_SZ));”可以改写为“cudaMalloc((void **)&d_CallResult, OPT_SZ);”即在 cuda 源代码中明确删除“checkCudaErrors”。与其他 cudaCheckErrors 警告相同。
稍后尝试迁移代码。希望对你有帮助
谢谢,希瓦尼
【讨论】:
以上是关于Nvidia 示例应用程序的 DPCT 迁移问题的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 Intel oneAPI DPCT 迁移我的应用程序:错误代码 -5