GPUOpen-LibrariesAndSDKs / HIPRT

Other
97 stars 7 forks source link

More compilation problems #8

Open ib00 opened 6 months ago

ib00 commented 6 months ago

Compilation (on Linux and for CUDA) is still not without problems. I am following instructions in README.

  1. If compiling with CUDA (ie, without HIP), you immediately get the following error: HIPRT_API_VERSION: 02003_0x7df94af sh: line 1: hipcc: command not found HIP_VERSION_STR: HIP_SDK_NOT_FOUND HIPRT_API_VERSION: 02003_0x7df94af sh: line 1: hipcc: command not found HIP_VERSION_STR: HIP_SDK_NOT_FOUND /bin/sh: line 1: hipcc: command not found Bitcodes Compile Error: executing command: hipcc --version /bin/sh: line 1: hipcc: command not found

This is however harmless as compilation continues.

  1. Another harmless error:

    BakeKernel Executed mkdir: cannot create directory ‘hiprt/cache’: File exists

  2. If you use "--precompile" flag the above with hipcc crashes kernel compilation:

Traceback (most recent call last): File "/tmp/HIPRT/scripts/bitcodes/compile.py", line 164, in compileAmd() File "/tmp/HIPRT/scripts/bitcodes/compile.py", line 83, in compileAmd result = subprocess.check_output(cmd, shell=True)

  1. After modifying "compile.py" script, the kernel compilation continues, but you get a bunch of errors like:

compiling hiprt02003_nv_lib.fatbin... ../../hiprt/hiprt_common.h(127): error: identifier "uint8_t" is undefined static_assert( ( sizeof( uint8_t ) == 1 ), "" ); ^

This can be fixed by including:

include

in "hiprt/hiprt_common.h"

  1. Compile warning:

../../hiprt/impl/PlocBuilderKernels.h(142): warning #186-D: pointless comparison of unsigned integer with zero if ( index >= 0 && index < numberOfClusters ) ^

  1. Kernel compilation eventually succeeds, but some more errors:

Compilation SUCCEEDED. compiling oro_compiled_kernels.fatbin... Compilation SUCCEEDED. export built programs ... cp: target '../../dist/bin/Debug/': No such file or directory cp: target '../../dist/bin/Release/': No such file or directory

  1. After trying to run the unit tests:

../dist/bin/Release/unittest64 -p

tests run, but it takes a long time for tests to start. Are the kernels being recompiled?

meistdan commented 6 months ago

Thank you for the detailed explanation. We will address them.

Regarding the longer run times, with --bitcode --precompile options only the user code should be compiled and linked with the HIPRT trace kernels in runtime. Without --bitcode --precompile, all kernels are compiled for the first time and cached for the next runs.