diff --git a/clang/examples/DPCT/Runtime/cudaLaunchHostFunc.cu b/clang/examples/DPCT/Runtime/cudaLaunchHostFunc.cu new file mode 100644 index 000000000000..a2c6a5bfdff1 --- /dev/null +++ b/clang/examples/DPCT/Runtime/cudaLaunchHostFunc.cu @@ -0,0 +1,5 @@ +void test(cudaStream_t stream, cudaHostFn_t fn, void*userData) { + // Start + cudaLaunchHostFunc(stream/*cudaStream_t*/, fn/*cudaHostFn_t*/, userData/*void**/); + // End +} diff --git a/clang/examples/DPCT/Runtime/cudaMemcpy3DPeer.cu b/clang/examples/DPCT/Runtime/cudaMemcpy3DPeer.cu new file mode 100644 index 000000000000..49e5731de11e --- /dev/null +++ b/clang/examples/DPCT/Runtime/cudaMemcpy3DPeer.cu @@ -0,0 +1,5 @@ +void test(const cudaMemcpy3DPeerParms*p) { + // Start + cudaMemcpy3DPeer(p/*const cudaMemcpy3DPeerParms**/); + // End +} diff --git a/clang/examples/DPCT/Runtime/cudaMemcpy3DPeerAsync.cu b/clang/examples/DPCT/Runtime/cudaMemcpy3DPeerAsync.cu new file mode 100644 index 000000000000..bb5b5d8282f5 --- /dev/null +++ b/clang/examples/DPCT/Runtime/cudaMemcpy3DPeerAsync.cu @@ -0,0 +1,5 @@ +void test(const cudaMemcpy3DPeerParms*p, cudaStream_t stream) { + // Start + cudaMemcpy3DPeerAsync(p/*const cudaMemcpy3DPeerParms**/, stream/*cudaStream_t*/); + // End +} diff --git a/clang/examples/DPCT/Runtime/cudaMemcpyPeer.cu b/clang/examples/DPCT/Runtime/cudaMemcpyPeer.cu new file mode 100644 index 000000000000..f177a221b09b --- /dev/null +++ b/clang/examples/DPCT/Runtime/cudaMemcpyPeer.cu @@ -0,0 +1,5 @@ +void test(void*dst, int dstDevice, const void*src, int srcDevice, size_t count) { + // Start + cudaMemcpyPeer(dst/*void**/, dstDevice/*int*/, src/*const void**/, srcDevice/*int*/, count/*size_t*/); + // End +} diff --git a/clang/examples/DPCT/Runtime/cudaMemcpyPeerAsync.cu b/clang/examples/DPCT/Runtime/cudaMemcpyPeerAsync.cu new file mode 100644 index 000000000000..043d8ca07674 --- /dev/null +++ b/clang/examples/DPCT/Runtime/cudaMemcpyPeerAsync.cu @@ -0,0 +1,5 @@ +void test(void*dst, int dstDevice, const void*src, int srcDevice, size_t count, cudaStream_t stream) { + // Start + cudaMemcpyPeerAsync(dst/*void**/, dstDevice/*int*/, src/*const void**/, srcDevice/*int*/, count/*size_t*/, stream/*cudaStream_t*/); + // End +} diff --git a/clang/examples/DPCT/Runtime/cudaProfilerStart.cu b/clang/examples/DPCT/Runtime/cudaProfilerStart.cu new file mode 100644 index 000000000000..1164a95aa1d4 --- /dev/null +++ b/clang/examples/DPCT/Runtime/cudaProfilerStart.cu @@ -0,0 +1,7 @@ +#include "cuda_profiler_api.h" + +void test() { + // Start + cudaProfilerStart(); + // End +} diff --git a/clang/examples/DPCT/Runtime/cudaProfilerStop.cu b/clang/examples/DPCT/Runtime/cudaProfilerStop.cu new file mode 100644 index 000000000000..d097b8274291 --- /dev/null +++ b/clang/examples/DPCT/Runtime/cudaProfilerStop.cu @@ -0,0 +1,7 @@ +#include "cuda_profiler_api.h" + +void test() { + // Start + cudaProfilerStop(); + // End +} diff --git a/clang/test/dpct/query_api_mapping/Runtime/test-after10.cu b/clang/test/dpct/query_api_mapping/Runtime/test-after10.cu index 46736c156e5a..115226d39b50 100644 --- a/clang/test/dpct/query_api_mapping/Runtime/test-after10.cu +++ b/clang/test/dpct/query_api_mapping/Runtime/test-after10.cu @@ -21,3 +21,15 @@ // CUDASTREAMISCAPTURING-NEXT: ps /* enum cudaStreamCaptureStatus **/); // CUDASTREAMISCAPTURING-NEXT: Is migrated to (with the option --use-experimental-features=graph): // CUDASTREAMISCAPTURING-NEXT: *ps = s->ext_oneapi_get_state(); + + + +// RUN: dpct --cuda-include-path="%cuda-path/include" -query-api-mapping=cudaLaunchHostFunc | FileCheck %s -check-prefix=CUDALAUNCHHOSTFUNC +// CUDALAUNCHHOSTFUNC: CUDA API: +// CUDALAUNCHHOSTFUNC-NEXT: cudaLaunchHostFunc(stream/*cudaStream_t*/, fn/*cudaHostFn_t*/, userData/*void**/); +// CUDALAUNCHHOSTFUNC-NEXT: Is migrated to: +// CUDALAUNCHHOSTFUNC-NEXT: stream->submit([&](sycl::handler &cgh) { +// CUDALAUNCHHOSTFUNC-NEXT: cgh.host_task([=](){ +// CUDALAUNCHHOSTFUNC-NEXT: fn(userData); +// CUDALAUNCHHOSTFUNC-NEXT: }); +// CUDALAUNCHHOSTFUNC-NEXT: }); \ No newline at end of file diff --git a/clang/test/dpct/query_api_mapping/Runtime/test.cu b/clang/test/dpct/query_api_mapping/Runtime/test.cu index 35eaf29d89b8..1664739882ab 100644 --- a/clang/test/dpct/query_api_mapping/Runtime/test.cu +++ b/clang/test/dpct/query_api_mapping/Runtime/test.cu @@ -519,3 +519,41 @@ // CUDARUNTIMEGETVERSION-NEXT: cudaRuntimeGetVersion(pi /*int **/); // CUDARUNTIMEGETVERSION-NEXT: Is migrated to: // CUDARUNTIMEGETVERSION-NEXT: *pi = dpct::get_major_version(dpct::get_current_device()); + + + +// RUN: dpct --cuda-include-path="%cuda-path/include" -query-api-mapping=cudaMemcpy3DPeer | FileCheck %s -check-prefix=CUDAMEMCPY3DPEER +// CUDAMEMCPY3DPEER: CUDA API: +// CUDAMEMCPY3DPEER-NEXT: cudaMemcpy3DPeer(p/*const cudaMemcpy3DPeerParms**/); +// CUDAMEMCPY3DPEER-NEXT: Is migrated to: +// CUDAMEMCPY3DPEER-NEXT: dpct::dpct_memcpy(*p/*const cudaMemcpy3DPeerParms**/); + +// RUN: dpct --cuda-include-path="%cuda-path/include" -query-api-mapping=cudaMemcpy3DPeerAsync | FileCheck %s -check-prefix=CUDAMEMCPY3DPEERASYNC +// CUDAMEMCPY3DPEERASYNC: CUDA API: +// CUDAMEMCPY3DPEERASYNC-NEXT: cudaMemcpy3DPeerAsync(p/*const cudaMemcpy3DPeerParms**/, stream/*cudaStream_t*/); +// CUDAMEMCPY3DPEERASYNC-NEXT: Is migrated to: +// CUDAMEMCPY3DPEERASYNC-NEXT: dpct::async_dpct_memcpy(*p/*const cudaMemcpy3DPeerParms**/, *stream/*cudaStream_t*/); + +// RUN: dpct --cuda-include-path="%cuda-path/include" -query-api-mapping=cudaMemcpyPeer | FileCheck %s -check-prefix=CUDAMEMCPYPEER +// CUDAMEMCPYPEER: CUDA API: +// CUDAMEMCPYPEER-NEXT: cudaMemcpyPeer(dst/*void**/, dstDevice/*int*/, src/*const void**/, srcDevice/*int*/, count/*size_t*/); +// CUDAMEMCPYPEER-NEXT: Is migrated to: +// CUDAMEMCPYPEER-NEXT: dpct::dpct_memcpy(dst/*void**/, dstDevice/*int*/, src/*const void**/, srcDevice/*int*/, count/*size_t*/); + +// RUN: dpct --cuda-include-path="%cuda-path/include" -query-api-mapping=cudaMemcpyPeerAsync | FileCheck %s -check-prefix=CUDAMEMCPYPEERASYNC +// CUDAMEMCPYPEERASYNC: CUDA API: +// CUDAMEMCPYPEERASYNC-NEXT: cudaMemcpyPeerAsync(dst/*void**/, dstDevice/*int*/, src/*const void**/, srcDevice/*int*/, count/*size_t*/, stream/*cudaStream_t*/); +// CUDAMEMCPYPEERASYNC-NEXT: Is migrated to: +// CUDAMEMCPYPEERASYNC-NEXT: dpct::async_dpct_memcpy(dst/*void**/, dstDevice/*int*/, src/*const void**/, srcDevice/*int*/, count/*size_t*/, *stream/*cudaStream_t*/); + +// RUN: dpct --cuda-include-path="%cuda-path/include" -query-api-mapping=cudaProfilerStart | FileCheck %s -check-prefix=CUDAPROFILERSTART +// CUDAPROFILERSTART: CUDA API: +// CUDAPROFILERSTART-NEXT: cudaProfilerStart(); +// CUDAPROFILERSTART-NEXT: The API is Removed. +// CUDAPROFILERSTART-EMPTY: + +// RUN: dpct --cuda-include-path="%cuda-path/include" -query-api-mapping=cudaProfilerStop | FileCheck %s -check-prefix=CUDAPROFILERSTOP +// CUDAPROFILERSTOP: CUDA API: +// CUDAPROFILERSTOP-NEXT: cudaProfilerStop(); +// CUDAPROFILERSTOP-NEXT: The API is Removed. +// CUDAPROFILERSTOP-EMPTY: diff --git a/clang/test/dpct/query_api_mapping/test_all.cu b/clang/test/dpct/query_api_mapping/test_all.cu index afa9c8e49a9d..d6e517624b23 100644 --- a/clang/test/dpct/query_api_mapping/test_all.cu +++ b/clang/test/dpct/query_api_mapping/test_all.cu @@ -1485,6 +1485,7 @@ // CHECK-NEXT: cudaIpcGetMemHandle // CHECK-NEXT: cudaIpcOpenMemHandle // CHECK-NEXT: cudaLaunchCooperativeKernel +// CHECK-NEXT: cudaLaunchHostFunc // CHECK-NEXT: cudaLaunchKernel // CHECK-NEXT: cudaMalloc // CHECK-NEXT: cudaMalloc3D @@ -1507,12 +1508,16 @@ // CHECK-NEXT: cudaMemcpy2DToArrayAsync // CHECK-NEXT: cudaMemcpy3D // CHECK-NEXT: cudaMemcpy3DAsync +// CHECK-NEXT: cudaMemcpy3DPeer +// CHECK-NEXT: cudaMemcpy3DPeerAsync // CHECK-NEXT: cudaMemcpyArrayToArray // CHECK-NEXT: cudaMemcpyAsync // CHECK-NEXT: cudaMemcpyFromArray // CHECK-NEXT: cudaMemcpyFromArrayAsync // CHECK-NEXT: cudaMemcpyFromSymbol // CHECK-NEXT: cudaMemcpyFromSymbolAsync +// CHECK-NEXT: cudaMemcpyPeer +// CHECK-NEXT: cudaMemcpyPeerAsync // CHECK-NEXT: cudaMemcpyToArray // CHECK-NEXT: cudaMemcpyToArrayAsync // CHECK-NEXT: cudaMemcpyToSymbol @@ -1526,6 +1531,8 @@ // CHECK-NEXT: cudaOccupancyMaxActiveBlocksPerMultiprocessor // CHECK-NEXT: cudaPeekAtLastError // CHECK-NEXT: cudaPointerGetAttributes +// CHECK-NEXT: cudaProfilerStart +// CHECK-NEXT: cudaProfilerStop // CHECK-NEXT: cudaRuntimeGetVersion // CHECK-NEXT: cudaSetDevice // CHECK-NEXT: cudaSetDeviceFlags