78 lines
3.0 KiB
Markdown
78 lines
3.0 KiB
Markdown
rocm/libraries/rocsolver 7.2.4
|
|
=
|
|
https://github.com/ROCm/rocm-libraries/releases/download/rocm-7.2.4/rocsolver.tar.gz
|
|
|
|
``` env *** env ***
|
|
HIP_DEVICE_LIB_PATH=/pkg/gnu/rocm/llvm/amd/device-libs/amdgcn/bitcode
|
|
HIP_PATH=/pkg/gnu
|
|
ROCM_PATH=/pkg/gnu
|
|
```
|
|
|
|
export HIP_DEVICE_LIB_PATH=/pkg/gnu/rocm/llvm/amd/device-libs/amdgcn/bitcode
|
|
export HIP_PATH=/pkg/gnu
|
|
export ROCM_PATH=/pkg/gnu
|
|
|
|
[root@xuy /pkg/gnu/rocm/libraries/rocsolver/src/build]$ export HIP_CLANG_PATH=/pkg/gnu/rocm/llvm/amd/hipcc/lib/llvm/bin
|
|
export ROCM_PATH=/pkg/gnu/rocm
|
|
export HIP_DEVICE_LIB_PATH=/pkg/gnu/rocm/llvm/amd/device-libs/amdgcn/bitcode
|
|
|
|
echo '#include <hip/hip_runtime.h>
|
|
#include <hip/hip_math_functions.h>
|
|
__global__ void test() { double x = sqrt(2.0); }' > /tmp/test_sqrt.hip
|
|
|
|
$HIP_CLANG_PATH/clang++ \
|
|
--rocm-path=$ROCM_PATH \
|
|
--offload-arch=gfx1150 \
|
|
--rocm-device-lib-path=$HIP_DEVICE_LIB_PATH \
|
|
-x hip -c /tmp/test_sqrt.hip -o /tmp/test_sqrt.o 2>&1
|
|
|
|
echo "Exit code: $?"
|
|
/tmp/test_sqrt.hip:2:10: fatal error: 'hip/hip_math_functions.h' file not found
|
|
2 | #include <hip/hip_math_functions.h>
|
|
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
1 error generated when compiling for gfx1150.
|
|
Exit code: 1
|
|
|
|
|
|
|
|
``` sh *** patch ***
|
|
sed -i \
|
|
-e '/#include "rocsolver_run_specialized_kernels.hpp"/a #include <algorithm>' \
|
|
-e 's/\bmin(n, LARF_SSKER_BLOCKS)/std::min(n, LARF_SSKER_BLOCKS)/g' \
|
|
/pkg/gnu/rocm/libraries/rocsolver/src/library/src/specialized/rocauxiliary_larf_specialized_kernels.hpp
|
|
sed -i \
|
|
-e '/#include <algorithm>/d' \
|
|
-e 's/std::min(n, LARF_SSKER_BLOCKS)/((n) < (LARF_SSKER_BLOCKS) ? (n) : (LARF_SSKER_BLOCKS))/g' \
|
|
-e 's/\bmin(m, LARF_SSKER_BLOCKS)/((m) < (LARF_SSKER_BLOCKS) ? (m) : (LARF_SSKER_BLOCKS))/g' \
|
|
/pkg/gnu/rocm/libraries/rocsolver/src/library/src/specialized/rocauxiliary_larf_specialized_kernels.hpp
|
|
```
|
|
|
|
grep -n -E '(#include <algorithm>|std::min\(n, LARF_SSKER_BLOCKS\))' \
|
|
/pkg/gnu/rocm/libraries/rocsolver/src/library/src/specialized/rocauxiliary_larf_specialized_kernels.hpp
|
|
|
|
``` sh *** build ***
|
|
mkdir -p build; cd build
|
|
cmake .. \
|
|
-DCMAKE_INSTALL_PREFIX=/pkg/gnu/rocm/libraries/rocsolver \
|
|
-DCMAKE_C_COMPILER=/pkg/gnu/rocm/llvm/bin/amdclang \
|
|
-DCMAKE_CXX_COMPILER=/pkg/gnu/rocm/llvm/bin/clang++ \
|
|
-DAMDDeviceLibs_DIR=/pkg/gnu/rocm/llvm/amd/device-libs/lib/cmake/AMDDeviceLibs \
|
|
-Damd_comgr_DIR=/pkg/gnu/rocm/llvm/amd/comgr/lib/cmake/amd_comgr \
|
|
-DCMAKE_CXX_FLAGS="--rocm-device-lib-path=/pkg/gnu/rocm/llvm/amd/device-libs/amdgcn/bitcode -fuse-ld=lld" \
|
|
-Dhsa-runtime64_DIR=/pkg/gnu/rocm/systems/rocr-runtime/lib/cmake/hsa-runtime64 \
|
|
-DGPU_TARGETS="gfx1150"
|
|
cmake --build . -j$(nproc)
|
|
cmake --install .
|
|
```
|
|
|
|
``` cfg *** build deps ***
|
|
rocm/libraries/rocprim
|
|
```
|
|
|
|
-DCMAKE_C_COMPILER=/pkg/gnu/rocm/llvm/amd/hipcc/lib/llvm/bin/clang \
|
|
-DCMAKE_CXX_COMPILER=/pkg/gnu/rocm/llvm/amd/hipcc/bin/hipcc \
|
|
-DCMAKE_CXX_FLAGS="--rocm-device-lib-path=/pkg/gnu/rocm/llvm/amd/device-libs/amdgcn/bitcode -fuse-ld=lld" \
|
|
|
|
-DCMAKE_LINKER=/pkg/gnu/rocm/llvm/amd/hipcc/lib/llvm/bin/ld.lld \
|
|
|