Skip to content

Commit 006a50f

Browse files
authored
Update build script for rocm (#84)
Change github URL name to ROCm. Get device libs, comgr and hipcc from llvm for ROCm 6.1 and above. Make the script work for ROCm version above 5.7.
1 parent 665c105 commit 006a50f

File tree

2 files changed

+53
-21
lines changed

2 files changed

+53
-21
lines changed

rocm/build.sh

+38-21
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,12 @@ FULLNAME=hip-amd-${ROCM_VERSION}
1212
OUTPUT=$2/${FULLNAME}.tar.xz
1313
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
1414

15+
if [[ "${VERSION}" =~ ([0-9]+)\.([0-9]+)\.[^.]+ ]]; then
16+
ROCM_MAJOR=${BASH_REMATCH[1]}
17+
ROCM_MINOR=${BASH_REMATCH[2]}
18+
ROCM_MAJOR_MINOR=$(( ROCM_MAJOR * 100 + ROCM_MINOR ))
19+
fi
20+
1521
initialise "${VERSION}" "${OUTPUT}"
1622

1723
OUTPUT=$(realpath "${OUTPUT}")
@@ -30,8 +36,20 @@ ${OPT}/infra/bin/ce_install install "clang-rocm ${VERSION}"
3036
COMP=${OPT}/clang-rocm-${VERSION}
3137
DEST=${OPT}/libs/rocm/${VERSION}
3238

39+
rm -rf llvm-project-$ROCM_VERSION ROCm-Device-Libs-$ROCM_VERSION ROCm-CompilerSupport-$ROCM_VERSION HIPCC-$ROCM_VERSION
40+
if (( ROCM_MAJOR_MINOR < 601 )); then
41+
curl -sL https://github.com/ROCm/ROCm-Device-Libs/archive/refs/tags/${ROCM_VERSION}.tar.gz | tar xz
42+
curl -sL https://github.com/ROCm/ROCm-CompilerSupport/archive/refs/tags/${ROCM_VERSION}.tar.gz | tar xz
43+
curl -sL https://github.com/ROCm/HIPCC/archive/refs/tags/${ROCM_VERSION}.tar.gz | tar xz
44+
else
45+
git clone --depth 1 --single-branch -b "$ROCM_VERSION" "https://github.com/ROCm/llvm-project.git" "llvm-project-$ROCM_VERSION"
46+
ln -fs llvm-project-$ROCM_VERSION/amd/device-libs ROCm-Device-Libs-$ROCM_VERSION
47+
mkdir -p ROCm-CompilerSupport-$ROCM_VERSION/lib
48+
ln -fs ../../llvm-project-$ROCM_VERSION/amd/comgr ROCm-CompilerSupport-$ROCM_VERSION/lib/comgr
49+
ln -fs llvm-project-$ROCM_VERSION/amd/hipcc HIPCC-$ROCM_VERSION
50+
fi
51+
3352
# ROCm-Device-Libs
34-
curl -sL https://github.com/RadeonOpenCompute/ROCm-Device-Libs/archive/refs/tags/${ROCM_VERSION}.tar.gz | tar xz
3553
pushd ROCm-Device-Libs-${ROCM_VERSION}
3654
for PATCH_FILE in "${SCRIPT_DIR}"/patches/ROCm-Device-Libs-${ROCM_VERSION}-*; do
3755
if [ -e "${PATCH_FILE}" ]; then
@@ -47,7 +65,6 @@ ninja -C build install
4765
popd
4866

4967
# comgr
50-
curl -sL https://github.com/RadeonOpenCompute/ROCm-CompilerSupport/archive/refs/tags/${ROCM_VERSION}.tar.gz | tar xz
5168
pushd ROCm-CompilerSupport-${ROCM_VERSION}
5269
cmake -Slib/comgr -Bbuild -DCMAKE_BUILD_TYPE=Release \
5370
-GNinja \
@@ -57,8 +74,18 @@ ninja -C build
5774
ninja -C build install
5875
popd
5976

77+
# hipcc
78+
pushd HIPCC-${ROCM_VERSION}
79+
cmake -S. -Bbuild \
80+
-GNinja \
81+
-DCMAKE_PREFIX_PATH="${COMP};${DEST}" \
82+
-DCMAKE_INSTALL_PREFIX="${DEST}"
83+
ninja -C build
84+
ninja -C build install
85+
popd
86+
6087
# roct-thunk-interface
61-
curl -sL https://github.com/RadeonOpenCompute/ROCT-Thunk-Interface/archive/refs/tags/${ROCM_VERSION}.tar.gz | tar xz
88+
curl -sL https://github.com/ROCm/ROCT-Thunk-Interface/archive/refs/tags/${ROCM_VERSION}.tar.gz | tar xz
6289
pushd ROCT-Thunk-Interface-${ROCM_VERSION}
6390
cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release \
6491
-GNinja \
@@ -68,7 +95,7 @@ ninja -C build install
6895
popd
6996

7097
# rocr-runtime
71-
curl -sL https://github.com/RadeonOpenCompute/ROCR-Runtime/archive/refs/tags/${ROCM_VERSION}.tar.gz | tar xz
98+
curl -sL https://github.com/ROCm/ROCR-Runtime/archive/refs/tags/${ROCM_VERSION}.tar.gz | tar xz
7299
pushd ROCR-Runtime-${ROCM_VERSION}
73100
cmake -Ssrc -Bbuild \
74101
-GNinja \
@@ -78,28 +105,18 @@ ninja -C build
78105
ninja -C build install
79106
popd
80107

81-
# hipcc
82-
curl -sL https://github.com/ROCm-Developer-Tools/HIPCC/archive/refs/tags/${ROCM_VERSION}.tar.gz | tar xz
83-
pushd HIPCC-${ROCM_VERSION}
84-
cmake -S. -Bbuild \
85-
-GNinja \
86-
-DCMAKE_PREFIX_PATH="${COMP};${DEST}" \
87-
-DCMAKE_INSTALL_PREFIX="${DEST}"
88-
ninja -C build
89-
ninja -C build install
90-
popd
91108

92109
# hip
93-
if [ "$VERSION" == "5.7.0" ]; then
94-
curl -sL https://github.com/ROCm-Developer-Tools/clr/archive/refs/tags/${ROCM_VERSION}.tar.gz | tar xz
110+
if (( ROCM_MAJOR_MINOR >= 507 )); then
111+
curl -sL https://github.com/ROCm/clr/archive/refs/tags/${ROCM_VERSION}.tar.gz | tar xz
95112
else
96-
git clone --depth 1 https://github.com/ROCm-Developer-Tools/hipamd.git -b ${ROCM_VERSION}
97-
curl -sL https://github.com/ROCm-Developer-Tools/ROCclr/archive/refs/tags/${ROCM_VERSION}.tar.gz | tar xz
98-
curl -sL https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime/archive/refs/tags/${ROCM_VERSION}.tar.gz | tar xz
113+
git clone --depth 1 https://github.com/ROCm/hipamd.git -b ${ROCM_VERSION}
114+
curl -sL https://github.com/ROCm/ROCclr/archive/refs/tags/${ROCM_VERSION}.tar.gz | tar xz
115+
curl -sL https://github.com/ROCm/ROCm-OpenCL-Runtime/archive/refs/tags/${ROCM_VERSION}.tar.gz | tar xz
99116
fi
100-
curl -sL https://github.com/ROCm-Developer-Tools/HIP/archive/refs/tags/${ROCM_VERSION}.tar.gz | tar xz
117+
curl -sL https://github.com/ROCm/HIP/archive/refs/tags/${ROCM_VERSION}.tar.gz | tar xz
101118

102-
if [ "$VERSION" == "5.7.0" ]; then
119+
if (( ROCM_MAJOR_MINOR >= 507 )); then
103120
pushd clr-${ROCM_VERSION}
104121
for PATCH_FILE in "${SCRIPT_DIR}"/patches/hipamd-${ROCM_VERSION}-*; do
105122
if [ -e "${PATCH_FILE}" ]; then
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
diff --git a/hipamd/CMakeLists.txt b/hipamd/CMakeLists.txt
2+
index 272ebca35..cab007649 100755
3+
--- a/hipamd/CMakeLists.txt
4+
+++ b/hipamd/CMakeLists.txt
5+
@@ -402,8 +402,8 @@ if (NOT ${HIPCC_BIN_DIR} STREQUAL "")
6+
install(PROGRAMS ${HIPCC_BIN_DIR}/hipcc.pl DESTINATION bin)
7+
install(PROGRAMS ${HIPCC_BIN_DIR}/hipconfig.pl DESTINATION bin)
8+
install(PROGRAMS ${HIPCC_BIN_DIR}/hipvars.pm DESTINATION bin)
9+
- install(PROGRAMS ${HIPCC_BIN_DIR}/hipcc.bat DESTINATION bin)
10+
- install(PROGRAMS ${HIPCC_BIN_DIR}/hipconfig.bat DESTINATION bin)
11+
+ #install(PROGRAMS ${HIPCC_BIN_DIR}/hipcc.bat DESTINATION bin)
12+
+ #install(PROGRAMS ${HIPCC_BIN_DIR}/hipconfig.bat DESTINATION bin)
13+
endif()
14+
15+
#############################

0 commit comments

Comments
 (0)