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

Nvidia GEForce 上的 OpenCL 示例程序问题

小型机下移从UNIX 到 Linux 的迁移应注意什么?

如何创建 NVIDIA OpenCL 项目

nvidia 驱动在长时间断电重启后消失

X11 和 nVidia 驱动程序的奇怪 EGL 行为