PIPIPIG233666 / gentoo_pppig

Gentoo custom ebuild
0 stars 0 forks source link

clang #6

Closed PIPIPIG233666 closed 1 year ago

PIPIPIG233666 commented 1 year ago
main.hip ``` #include #include #include #define CHECK_HIP(expr) \ do { \ hipError_t result = (expr); \ if (result != hipSuccess) { \ fprintf(stderr, "%s:%d: %s (%d)\n", __FILE__, __LINE__, \ hipGetErrorString(result), result); \ exit(EXIT_FAILURE); \ } \ } while (0) __global__ void sq_arr(float *arr, int n) { int tid = blockDim.x * blockIdx.x + threadIdx.x; if (tid < n) { arr[tid] = arr[tid] * arr[tid]; } } int main() { enum { N = 5 }; float hArr[N] = {1, 2, 3, 4, 5}; float *dArr; CHECK_HIP(hipMalloc(&dArr, sizeof(float) * N)); CHECK_HIP(hipMemcpy(dArr, hArr, sizeof(float) * N, hipMemcpyHostToDevice)); sq_arr<<>>(dArr, N); CHECK_HIP(hipMemcpy(hArr, dArr, sizeof(float) * N, hipMemcpyDeviceToHost)); for (int i = 0; i < N; ++i) { printf("%f\n", hArr[i]); } CHECK_HIP(hipFree(dArr)); return 0; } ```

here we have a sample hip testing code, and quite frankly, hipcc works fine

hipcc main.hip -v ```clang version 16.0.4 Target: x86_64-pc-linux-gnu Thread model: posix InstalledDir: /usr/lib/llvm/16/bin Configuration file: /etc/clang/clang++.cfg System configuration file directory: /etc/clang Selected GCC installation: /usr/lib/gcc/x86_64-pc-linux-gnu/13 Candidate multilib: .;@m64 Candidate multilib: 32;@m32 Selected multilib: .;@m64 Found HIP installation: /usr, version 3.5.0 "/usr/lib/llvm/16/bin/clang-16" -cc1 -triple amdgcn-amd-amdhsa -aux-triple x86_64-pc-linux-gnu -emit-obj -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name main.hip -mrelocation-model pic -pic-level 1 -fhalf-no-semantic-interposition -mframe-pointer=none -fno-rounding-math -mconstructor-aliases -aux-target-cpu x86-64 -fcuda-is-device -mllvm -amdgpu-internalize-symbols -fcuda-allow-variadic-functions -fvisibility=hidden -fapply-global-visibility-to-externs -mlink-builtin-bitcode /usr/lib/amdgcn/bitcode/hip.bc -mlink-builtin-bitcode /usr/lib/amdgcn/bitcode/ocml.bc -mlink-builtin-bitcode /usr/lib/amdgcn/bitcode/ockl.bc -mlink-builtin-bitcode /usr/lib/amdgcn/bitcode/oclc_daz_opt_off.bc -mlink-builtin-bitcode /usr/lib/amdgcn/bitcode/oclc_unsafe_math_off.bc -mlink-builtin-bitcode /usr/lib/amdgcn/bitcode/oclc_finite_only_off.bc -mlink-builtin-bitcode /usr/lib/amdgcn/bitcode/oclc_correctly_rounded_sqrt_on.bc -mlink-builtin-bitcode /usr/lib/amdgcn/bitcode/oclc_wavefrontsize64_off.bc -mlink-builtin-bitcode /usr/lib/amdgcn/bitcode/oclc_isa_version_1030.bc -mlink-builtin-bitcode /usr/lib/amdgcn/bitcode/oclc_abi_version_400.bc -target-cpu gfx1030 -mllvm -treat-scalable-fixed-error-as-warning -debugger-tuning=gdb -v -resource-dir /usr/lib/llvm/16/bin/../../../../lib/clang/16 -internal-isystem /usr/lib/llvm/16/bin/../../../../lib/clang/16 -idirafter /usr/include -include /usr/include/gentoo/fortify.h -include /usr/include/gentoo/maybe-stddefs.h -internal-isystem /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13 -internal-isystem /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/x86_64-pc-linux-gnu -internal-isystem /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/backward -internal-isystem /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13 -internal-isystem /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/x86_64-pc-linux-gnu -internal-isystem /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/backward -internal-isystem /usr/lib/llvm/16/bin/../../../../lib/clang/16/include -internal-isystem /usr/local/include -internal-isystem /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -internal-isystem /usr/lib/llvm/16/bin/../../../../lib/clang/16/include -internal-isystem /usr/local/include -internal-isystem /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -O3 -fdeprecated-macro -fno-autolink -fdebug-compilation-dir=/home/pppig -ferror-limit 19 -fhip-new-launch-api -fgnuc-version=4.2.1 -fcxx-exceptions -fexceptions -fcolor-diagnostics -vectorize-loops -vectorize-slp -mllvm -amdgpu-early-inline-all=true -mllvm -amdgpu-function-calls=false -cuid=ad2bca9809c94be6 -fcuda-allow-variadic-functions -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/main-819e11/main-gfx1030.o -x hip main.hip clang -cc1 version 16.0.4 based upon LLVM 16.0.4 default target x86_64-pc-linux-gnu ignoring nonexistent directory "/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/include" ignoring nonexistent directory "/include" ignoring nonexistent directory "/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/include" ignoring nonexistent directory "/include" ignoring duplicate directory "/usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13" ignoring duplicate directory "/usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/x86_64-pc-linux-gnu" ignoring duplicate directory "/usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/backward" ignoring duplicate directory "/usr/lib/llvm/16/bin/../../../../lib/clang/16/include" ignoring duplicate directory "/usr/local/include" ignoring duplicate directory "/usr/include" ignoring duplicate directory "/usr/local/include" ignoring duplicate directory "/usr/lib/llvm/16/bin/../../../../lib/clang/16/include" ignoring duplicate directory "/usr/include" ignoring duplicate directory "/usr/include" #include "..." search starts here: #include <...> search starts here: /usr/lib/llvm/16/bin/../../../../lib/clang/16 /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13 /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/x86_64-pc-linux-gnu /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/backward /usr/lib/llvm/16/bin/../../../../lib/clang/16/include /usr/local/include /usr/include End of search list. "/usr/lib/llvm/16/bin/lld" -flavor gnu -m elf64_amdgpu --no-undefined -shared -plugin-opt=-amdgpu-internalize-symbols -plugin /usr/lib/llvm/16/bin/../lib64/LLVMgold.so -plugin-opt=mcpu=gfx1030 -plugin-opt=O3 -plugin-opt=-amdgpu-early-inline-all=true -plugin-opt=-amdgpu-function-calls=false -o /tmp/main-80a6e1/main-gfx1030.out /tmp/main-819e11/main-gfx1030.o "/usr/lib/llvm/16/bin/clang-offload-bundler" -type=o -bundle-align=4096 -targets=host-x86_64-unknown-linux,hipv4-amdgcn-amd-amdhsa--gfx1030 -input=/dev/null -input=/tmp/main-80a6e1/main-gfx1030.out -output=/tmp/main-9ea668.hipfb "/usr/lib/llvm/16/bin/clang-16" -cc1 -triple x86_64-pc-linux-gnu -aux-triple amdgcn-amd-amdhsa -emit-obj -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name main.hip -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=none -fmath-errno -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -mllvm -treat-scalable-fixed-error-as-warning -debugger-tuning=gdb -v -fcoverage-compilation-dir=/home/pppig -resource-dir /usr/lib/llvm/16/bin/../../../../lib/clang/16 -internal-isystem /usr/lib/llvm/16/bin/../../../../lib/clang/16 -idirafter /usr/include -include /usr/include/gentoo/fortify.h -include /usr/include/gentoo/maybe-stddefs.h -internal-isystem /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13 -internal-isystem /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/x86_64-pc-linux-gnu -internal-isystem /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/backward -internal-isystem /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13 -internal-isystem /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/x86_64-pc-linux-gnu -internal-isystem /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/backward -internal-isystem /usr/lib/llvm/16/bin/../../../../lib/clang/16/include -internal-isystem /usr/local/include -internal-isystem /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -internal-isystem /usr/lib/llvm/16/bin/../../../../lib/clang/16/include -internal-isystem /usr/local/include -internal-isystem /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -O3 -fdeprecated-macro -fdebug-compilation-dir=/home/pppig -ferror-limit 19 -fstack-clash-protection -fhip-new-launch-api -fgnuc-version=4.2.1 -fcxx-exceptions -fexceptions -fcolor-diagnostics -vectorize-loops -vectorize-slp -mllvm -amdgpu-early-inline-all=true -mllvm -amdgpu-function-calls=false -fcuda-include-gpubinary /tmp/main-9ea668.hipfb -cuid=ad2bca9809c94be6 -fcuda-allow-variadic-functions -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/main-9829bd.o -x hip main.hip clang -cc1 version 16.0.4 based upon LLVM 16.0.4 default target x86_64-pc-linux-gnu ignoring nonexistent directory "/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/include" ignoring nonexistent directory "/include" ignoring nonexistent directory "/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/include" ignoring nonexistent directory "/include" ignoring duplicate directory "/usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13" ignoring duplicate directory "/usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/x86_64-pc-linux-gnu" ignoring duplicate directory "/usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/backward" ignoring duplicate directory "/usr/lib/llvm/16/bin/../../../../lib/clang/16/include" ignoring duplicate directory "/usr/local/include" ignoring duplicate directory "/usr/include" ignoring duplicate directory "/usr/include" #include "..." search starts here: #include <...> search starts here: /usr/lib/llvm/16/bin/../../../../lib/clang/16 /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13 /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/x86_64-pc-linux-gnu /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/backward /usr/lib/llvm/16/bin/../../../../lib/clang/16/include /usr/local/include /usr/include End of search list. "/usr/bin/x86_64-pc-linux-gnu-ld.bfd" -pie --hash-style=gnu --eh-frame-hdr -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o a.out /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64/Scrt1.o /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64/crti.o /usr/lib/llvm/16/bin/../../../../lib/clang/16/lib/linux/clang_rt.crtbegin-x86_64.o -L/usr/lib/gcc/x86_64-pc-linux-gnu/13 -L/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/lib -L/lib -L/usr/lib /tmp/main-9829bd.o -L/usr/lib -lamdhip64 -lstdc++ -lm /usr/lib/llvm/16/bin/../../../../lib/clang/16/lib/linux/libclang_rt.builtins-x86_64.a -lgcc_s -lc /usr/lib/llvm/16/bin/../../../../lib/clang/16/lib/linux/libclang_rt.builtins-x86_64.a -lgcc_s /usr/lib/llvm/16/bin/../../../../lib/clang/16/lib/linux/clang_rt.crtend-x86_64.o /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64/crtn.o ```

However, w/ vanilla clang:

clang -x hip main.hip -v --print-rocm-search-dirs ``` ROCm installation search path: /usr/lib/llvm/16 ROCm installation search path: /usr/lib/llvm/16 ROCm installation search path: /usr/lib/llvm/16/bin/../../../../lib/clang/16 ROCm installation search path: /opt/rocm clang version 16.0.4 Target: x86_64-pc-linux-gnu Thread model: posix InstalledDir: /usr/lib/llvm/16/bin Configuration file: /etc/clang/clang.cfg System configuration file directory: /etc/clang Selected GCC installation: /usr/lib/gcc/x86_64-pc-linux-gnu/13 Candidate multilib: .;@m64 Candidate multilib: 32;@m32 Selected multilib: .;@m64 ROCm installation search path: /usr/lib/llvm/16 ROCm installation search path: /usr/lib/llvm/16 ROCm installation search path: /usr/lib/llvm/16/bin/../../../../lib/clang/16 ROCm installation search path: /opt/rocm clang-16: error: cannot find ROCm device library; provide its path via '--rocm-path' or '--rocm-device-lib-path', or pass '-nogpulib' to build without ROCm device library clang-16: error: cannot find HIP runtime; provide its path via '--rocm-path', or pass '-nogpuinc' to build without HIP runtime clang-16: error: cannot find HIP runtime; provide its path via '--rocm-path', or pass '-nogpuinc' to build without HIP runtime ```
PIPIPIG233666 commented 1 year ago
❯ hipconfig -f
HIP version  : 5.5.0

== hipconfig
HIP_PATH     : /usr
ROCM_PATH    : /usr
HIP_COMPILER : clang
HIP_PLATFORM : amd
HIP_RUNTIME  : rocclr
CPP_CONFIG   :  -D__HIP_PLATFORM_HCC__= -D__HIP_PLATFORM_AMD__= -I/usr/include -I/usr/lib/llvm/16/bin/../lib/clang/16.0.4 

== hip-clang
HIP_CLANG_PATH   : /usr/lib/llvm/16/bin
clang version 16.0.4
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/lib/llvm/16/bin
Configuration file: /etc/clang/clang++.cfg
LLVM (http://llvm.org/):
  LLVM version 16.0.4
  Optimized build.
  Default target: x86_64-pc-linux-gnu
  Host CPU: znver3

  Registered Targets:
    aarch64     - AArch64 (little endian)
    aarch64_32  - AArch64 (little endian ILP32)
    aarch64_be  - AArch64 (big endian)
    amdgcn      - AMD GCN GPUs
    arm         - ARM
    arm64       - ARM64 (little endian)
    arm64_32    - ARM64 (little endian ILP32)
    armeb       - ARM (big endian)
    avr         - Atmel AVR Microcontroller
    bpf         - BPF (host endian)
    bpfeb       - BPF (big endian)
    bpfel       - BPF (little endian)
    hexagon     - Hexagon
    lanai       - Lanai
    loongarch32 - 32-bit LoongArch
    loongarch64 - 64-bit LoongArch
    mips        - MIPS (32-bit big endian)
    mips64      - MIPS (64-bit big endian)
    mips64el    - MIPS (64-bit little endian)
    mipsel      - MIPS (32-bit little endian)
    msp430      - MSP430 [experimental]
    nvptx       - NVIDIA PTX 32-bit
    nvptx64     - NVIDIA PTX 64-bit
    ppc32       - PowerPC 32
    ppc32le     - PowerPC 32 LE
    ppc64       - PowerPC 64
    ppc64le     - PowerPC 64 LE
    r600        - AMD GPUs HD2XXX-HD6XXX
    riscv32     - 32-bit RISC-V
    riscv64     - 64-bit RISC-V
    sparc       - Sparc
    sparcel     - Sparc LE
    sparcv9     - Sparc V9
    systemz     - SystemZ
    thumb       - Thumb
    thumbeb     - Thumb (big endian)
    ve          - VE
    wasm32      - WebAssembly 32-bit
    wasm64      - WebAssembly 64-bit
    x86         - 32-bit X86: Pentium-Pro and above
    x86-64      - 64-bit X86: EM64T and AMD64
    xcore       - XCore
hip-clang-cxxflags :  -fno-stack-protector -O3
hip-clang-ldflags  :  -O3 --hip-link --rtlib=compiler-rt -unwindlib=libgcc

=== Environment Variables
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/lib/llvm/16/bin:/usr/lib/llvm/15/bin
PIPIPIG233666 commented 1 year ago

i honestly give up, cmake is probably not setup properly that's causing the issue

PIPIPIG233666 commented 1 year ago

24599bc2a4e841ecea8b8b17cea147b911aa09c0 fixed