-1

我正在尝试使用 dpct 迁移我的 cuda 应用程序。调用 dpct 时;我看到它处理 CUDA 文件并生成一些良性警告,但最后它退出而没有写出任何 DPC++ 等效文件。我可以清楚地看到这些应用程序中调用的 CUDA 函数,并且删除 CUDA 路径会使编译过程失败。这是命令我用了

$ dpct --report-type=all --cuda-include-path=/usr/local/cuda-10.2/include -p compile_commands.json"

我已经消除了文件的实际物理路径以避免混淆:

Processing: ....../ComputeThermoGPU.cu
Processing: ....../CommunicatorGPU.cu
Processing: ....../ParticleData.cu
Processing: ....../Integrator.cu
------------------APIS report--------------------
API name Frequency
------------------------------------------------- 
----------Stats report---------------
File name, LOC migrated to DPC++, LOC migrated to helper functions, LOC not needed to migrate, 
LOC not able to migrate
....../Integrator.cu, 1, 0, 168, 0
....../ParticleData.cu, 1, 0, 402, 0
....../ComputeThermoGPU.cu, 1, 0, 686, 0
....../ParticleGroup.cu, 6, 0, 111, 0
Total migration time: 17207.371000 ms
-------------------------------------
dpct exited with code: 1 (Migration not necessary)```
4

1 回答 1

0

我可以解决我自己的问题 dpct -p compile_commands.json --in-root=src --out-root=dpct_out --process-all

我认为原因可能是由于缺少驱动程序代码(包含 main 函数),DPCT 认为由于这些辅助 .cu 文件无论如何都没有被使用,因此无需对这些文件执行迁移。这就是您看到“不需要迁移”警告的原因。

于 2021-06-18T09:42:51.940 回答