0

我正在尝试使用英特尔 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));

有人可以告诉我如何解决这些警告吗?

重现步骤:

  1. 拦截构建
  2. dpct -p compile_commands.json
4

1 回答 1

1

您只需重写代码即可消除与 cudaCheckErrors 相关的警告。

例如:“ checkCudaErrors (cudaMalloc((void **)&d_CallResult, OPT_SZ));” 可以改写为“cudaMalloc((void **)&d_CallResult, OPT_SZ);” 即在 cuda 源代码中明确删除“ checkCudaErrors ”。其他 cudaCheckErrors 警告也是如此。

稍后尝试迁移代码。我希望这可以帮助你

谢谢, 希瓦尼

于 2021-09-22T10:45:19.040 回答