Files
AeroPkg/assets/var/gnu/rocm/libraries/rocsolver.md

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 \