Closed Gardene-el closed 4 months ago
Hello @Gardene-el
Could you please run your hipification command with the -v
option and provide a full log for a single source file?
Could you specify the --clang-resource-directory=
option to point to the Clang resource directory, which is the parent directory for the include folder that contains __clang_cuda_runtime_wrapper.h
and other header files used during the hipification process?
For instance:
./hipify-clang square.cu --cuda-path=/usr/local/cuda-12.3 --clang-resource-directory=/usr/llvm/18.1.5/dist/lib/clang/18
Thanks, Evgeny
>hipify-clang ./CUDA/TOs.cuh -o ./ROCm/TOs.h -v
clang version 17.0.0
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /opt/rocm/bin
Found candidate GCC installation: /usr/lib/gcc/x86_64-pc-linux-gnu/13.2.1
Found candidate GCC installation: /usr/lib/gcc/x86_64-pc-linux-gnu/14.1.1
Found candidate GCC installation: /usr/lib64/gcc/x86_64-pc-linux-gnu/13.2.1
Found candidate GCC installation: /usr/lib64/gcc/x86_64-pc-linux-gnu/14.1.1
Selected GCC installation: /usr/lib64/gcc/x86_64-pc-linux-gnu/14.1.1
Candidate multilib: .;@m64
Candidate multilib: 32;@m32
Selected multilib: .;@m64
Found CUDA installation: /opt/cuda, version
Found HIP installation: /opt/rocm, version 6.0.32831
warning: CUDA version is newer than the latest partially supported version 11.8 [-Wunknown-cuda-version]
clang Invocation:
"/opt/rocm/bin/clang-tool" "-cc1" "-triple" "x86_64-pc-linux-gnu" "-target-sdk-version=11.8" "-aux-triple" "nvptx64-nvidia-cuda" "-fsyntax-only" "-disable-free" "-clear-ast-before-backend" "-main-file-name" "TOs.cuh-49c91c.hip" "-mrelocation-model" "pic" "-pic-level" "2" "-pic-is-pie" "-mframe-pointer=all" "-fmath-errno" "-ffp-contract=on" "-fno-rounding-math" "-mconstructor-aliases" "-funwind-tables=2" "-target-cpu" "x86-64" "-tune-cpu" "generic" "-debugger-tuning=gdb" "-v" "-fcoverage-compilation-dir=/home/Cr0c0diLe/Documents/alien/source/EngineGpuKernels" "-resource-dir" "/opt/rocm/lib/llvm/lib/clang/17" "-internal-isystem" "/opt/rocm/lib/llvm/lib/clang/17/include/cuda_wrappers" "-include" "__clang_cuda_runtime_wrapper.h" "-I" "/home/Cr0c0diLe/Documents/alien/source/EngineGpuKernels/CUDA" "-I/opt/intel/oneapi/tbb/2021.11/env/../include" "-I/opt/intel/oneapi/mpi/2021.11/include" "-I/opt/intel/oneapi/mkl/2024.0/include" "-I/opt/intel/oneapi/ippcp/2021.9/include" "-I/opt/intel/oneapi/ipp/2021.10/include" "-I/opt/intel/oneapi/dpl/2022.3/include" "-I/opt/intel/oneapi/dpcpp-ct/2024.0/include" "-I/opt/intel/oneapi/dnnl/2024.0/include" "-I/opt/intel/oneapi/dev-utilities/2024.0/include" "-I/opt/intel/oneapi/dal/2024.0/include/dal" "-I/opt/intel/oneapi/compiler/2024.0/opt/oclfpga/include" "-I/opt/intel/oneapi/ccl/2021.11/include" "-internal-isystem" "/usr/lib64/gcc/x86_64-pc-linux-gnu/14.1.1/../../../../include/c++/14.1.1" "-internal-isystem" "/usr/lib64/gcc/x86_64-pc-linux-gnu/14.1.1/../../../../include/c++/14.1.1/x86_64-pc-linux-gnu" "-internal-isystem" "/usr/lib64/gcc/x86_64-pc-linux-gnu/14.1.1/../../../../include/c++/14.1.1/backward" "-internal-isystem" "/usr/lib64/gcc/x86_64-pc-linux-gnu/14.1.1/../../../../include/c++/14.1.1" "-internal-isystem" "/usr/lib64/gcc/x86_64-pc-linux-gnu/14.1.1/../../../../include/c++/14.1.1/x86_64-pc-linux-gnu" "-internal-isystem" "/usr/lib64/gcc/x86_64-pc-linux-gnu/14.1.1/../../../../include/c++/14.1.1/backward" "-internal-isystem" "/opt/rocm/lib/llvm/lib/clang/17/include" "-internal-isystem" "/usr/local/include" "-internal-isystem" "/usr/lib64/gcc/x86_64-pc-linux-gnu/14.1.1/../../../../x86_64-pc-linux-gnu/include" "-internal-externc-isystem" "/include" "-internal-externc-isystem" "/usr/include" "-internal-isystem" "/opt/rocm/lib/llvm/lib/clang/17/include" "-internal-isystem" "/usr/local/include" "-internal-isystem" "/usr/lib64/gcc/x86_64-pc-linux-gnu/14.1.1/../../../../x86_64-pc-linux-gnu/include" "-internal-externc-isystem" "/include" "-internal-externc-isystem" "/usr/include" "-internal-isystem" "/opt/cuda/include" "-Wno-pragma-once-outside-header" "-std=c++14" "-fdeprecated-macro" "-fdebug-compilation-dir=/home/Cr0c0diLe/Documents/alien/source/EngineGpuKernels" "-ferror-limit" "19" "-fgnuc-version=4.2.1" "-fcxx-exceptions" "-fexceptions" "-fcolor-diagnostics" "-internal-isystem" "/opt/rocm/bin/../include/hipify/cuda_wrappers" "-internal-isystem" "/opt/rocm/bin/../include/hipify" "-internal-isystem" "/opt/rocm/bin/include/cuda_wrappers" "-internal-isystem" "/opt/rocm/bin/include" "-faddrsig" "-D__GCC_HAVE_DWARF2_CFI_ASM=1" "-x" "cuda" "/tmp/TOs.cuh-49c91c.hip"
clang -cc1 version 17.0.0 based upon LLVM 17.0.0git default target x86_64-pc-linux-gnu ignoring nonexistent directory "/opt/rocm/lib/llvm/lib/clang/17/include/cuda_wrappers" ignoring nonexistent directory "/opt/rocm/lib/llvm/lib/clang/17/include" ignoring nonexistent directory "/usr/lib64/gcc/x86_64-pc-linux-gnu/14.1.1/../../../../x86_64-pc-linux-gnu/include" ignoring nonexistent directory "/include" ignoring nonexistent directory "/opt/rocm/lib/llvm/lib/clang/17/include" ignoring nonexistent directory "/usr/lib64/gcc/x86_64-pc-linux-gnu/14.1.1/../../../../x86_64-pc-linux-gnu/include" ignoring nonexistent directory "/include" ignoring nonexistent directory "/opt/rocm/bin/../include/hipify/cuda_wrappers" ignoring nonexistent directory "/opt/rocm/bin/../include/hipify" ignoring nonexistent directory "/opt/rocm/bin/include/cuda_wrappers" ignoring nonexistent directory "/opt/rocm/bin/include" ignoring duplicate directory "/usr/lib64/gcc/x86_64-pc-linux-gnu/14.1.1/../../../../include/c++/14.1.1" ignoring duplicate directory "/usr/lib64/gcc/x86_64-pc-linux-gnu/14.1.1/../../../../include/c++/14.1.1/x86_64-pc-linux-gnu" ignoring duplicate directory "/usr/lib64/gcc/x86_64-pc-linux-gnu/14.1.1/../../../../include/c++/14.1.1/backward" ignoring duplicate directory "/usr/local/include" ignoring duplicate directory "/usr/include"
/home/Cr0c0diLe/Documents/alien/source/EngineGpuKernels/CUDA /opt/intel/oneapi/tbb/2021.11/env/../include /opt/intel/oneapi/mpi/2021.11/include /opt/intel/oneapi/mkl/2024.0/include /opt/intel/oneapi/ippcp/2021.9/include /opt/intel/oneapi/ipp/2021.10/include /opt/intel/oneapi/dpl/2022.3/include /opt/intel/oneapi/dpcpp-ct/2024.0/include /opt/intel/oneapi/dnnl/2024.0/include /opt/intel/oneapi/dev-utilities/2024.0/include /opt/intel/oneapi/dal/2024.0/include/dal /opt/intel/oneapi/compiler/2024.0/opt/oclfpga/include /opt/intel/oneapi/ccl/2021.11/include /usr/lib64/gcc/x86_64-pc-linux-gnu/14.1.1/../../../../include/c++/14.1.1 /usr/lib64/gcc/x86_64-pc-linux-gnu/14.1.1/../../../../include/c++/14.1.1/x86_64-pc-linux-gnu /usr/lib64/gcc/x86_64-pc-linux-gnu/14.1.1/../../../../include/c++/14.1.1/backward /usr/local/include /usr/include /opt/cuda/include End of search list.
Thanks, @Gardene-el.
ignoring nonexistent directory "/opt/rocm/lib/llvm/lib/clang/17/include"
--clang-resource-directory
.Could you try to locate the __clang_cuda_runtime_wrapper.h
file in your system manually?
for 2. Yes, I indeed use the ROCm through AUR, which is a bit outdated that also caused other problem like compile error. I guess that is the source of many problems i met.
The location of __clang_cuda_runtime_wrapper.h
file should be /usr/lib/clang/17/include/__clang_cuda_runtime_wrapper.h
, and here is whole log of locate __clang_cuda_runtime_wrapper.h
:
/home/Cr0c0diLe/.cache/clangd/index/__clang_cuda_runtime_wrapper.h.FE1BEC2CAAE8E39F.idx
/home/Cr0c0diLe/.nuget/packages/cppsharp/1.0.45.22293/contentFiles/any/any/lib/clang/14.0.0/include/__clang_cuda_runtime_wrapper.h
/home/Cr0c0diLe/Documents/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v22_clang-16.0.6-centos7/aarch64-unknown-linux-gnueabi/lib/clang/16/include/__clang_cuda_runtime_wrapper.h
/home/Cr0c0diLe/Documents/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v22_clang-16.0.6-centos7/x86_64-unknown-linux-gnu/lib/clang/16/include/__clang_cuda_runtime_wrapper.h
/opt/ComputeCpp-CE-2.11.0-x86_64-linux-gnu/lib/clang/8.0.0/include/__clang_cuda_runtime_wrapper.h
/opt/intel/oneapi/2024.0/opt/dpct/lib/clang/18/include/__clang_cuda_runtime_wrapper.h
/opt/intel/oneapi/dpcpp-ct/2024.0/opt/dpct/lib/clang/18/include/__clang_cuda_runtime_wrapper.h
/opt/rocm/lib/llvm/lib/clang/17.0.0/include/__clang_cuda_runtime_wrapper.h
/usr/lib/clang/17/include/__clang_cuda_runtime_wrapper.h
/usr/lib/llvm15/lib/clang/15.0.7/include/__clang_cuda_runtime_wrapper.h
/usr/lib/llvm16/lib/clang/16/include/__clang_cuda_runtime_wrapper.h
/usr/lib/zig/include/__clang_cuda_runtime_wrapper.h
The location of __clang_cuda_runtime_wrapper.h file should be /usr/lib/clang/17/include/__clang_cuda_runtime_wrapper.h
Nope, if we talk about ROCm. ROCm's location of __clang_cuda_runtime_wrapper.h
is /opt/rocm/lib/llvm/lib/clang/17.0.0/include/
And here, we have a known (and already eliminated) issue with clang versioning. They changed it in the 17th version.
As a workaround solution for your configuration, you can copy /opt/rocm/lib/llvm/lib/clang/17.0.0/include/*.*
to /opt/rocm/lib/llvm/lib/clang/17/include/*.*
- hipify-clang will work correctly.
A preferred solution is to install the latest ROCm.
The workaround solution works, and since that I'm not going to try preferred solution.
Thanks for your patient help!
Problem Description
I tried to translate some CUDA source file into ROCm code, and did:
for file in ./EngineGpuKernels/*.cu; do hipify-clang $file -o "${file%.cu}.cpp" --cuda-path=/opt/cuda ; done
(Also for .cuh file)foreach file i got:
About #703, there is a difference that:
Operating System
Arch Linux
CPU
13th Gen Intel(R) Core(TM) i9-13980HX
ROCm Version
ROCm 6.0.0
ROCm Component
HIPIFY
Steps to Reproduce
No response
(Optional for Linux users) Output of /opt/rocm/bin/rocminfo --support
No response
Additional Information
No response