11#! /bin/bash
2- declare build_arch
3- declare build_os
4- declare rocm_version
5-
62set -xeuo pipefail
3+
4+ : " ${RUNNER_OS:? RUNNER_OS must be set (Linux/ Windows)} "
5+ : " ${ROCM_VERSION:? ROCM_VERSION must be set} "
6+
77bnb_rocm_arch=" gfx90a;gfx942;gfx1100;gfx1101;gfx1102;gfx1103"
88
99# ROCm 6.4+ - Add RDNA4 and RDNA3.5 targets. Note we assume >=6.4.4.
10- [[ " ${rocm_version } " == 6.4.* || " ${rocm_version } " == 7.* ]] && bnb_rocm_arch=" ${bnb_rocm_arch} ;gfx1150;gfx1151;gfx1152;gfx1153;gfx1200;gfx1201"
10+ [[ " ${ROCM_VERSION } " == 6.4.* || " ${ROCM_VERSION } " == 7.* ]] && bnb_rocm_arch=" ${bnb_rocm_arch} ;gfx1150;gfx1151;gfx1152;gfx1153;gfx1200;gfx1201"
1111
1212# ROCm 7.0+ - Add gfx950
13- [[ " ${rocm_version } " == 7.* ]] && bnb_rocm_arch=" ${bnb_rocm_arch} ;gfx950"
13+ [[ " ${ROCM_VERSION } " == 7.* ]] && bnb_rocm_arch=" ${bnb_rocm_arch} ;gfx950"
1414
15- if [ " ${build_os : 0 : 6 } " == ubuntu ]; then
16- image=rocm/dev-ubuntu-22.04:${rocm_version } -complete
15+ if [ " ${RUNNER_OS } " == " Linux " ]; then
16+ image=rocm/dev-ubuntu-22.04:${ROCM_VERSION } -complete
1717 echo " Using image $image "
18- docker run --rm --platform " linux/ $build_arch " - i \
18+ docker run --rm -i \
1919 -w /src -v " $PWD :/src" " $image " sh -c \
2020 " apt-get update \
2121 && pip install cmake==3.31.6 \
@@ -24,32 +24,30 @@ if [ "${build_os:0:6}" == ubuntu ]; then
2424else
2525 bnb_rocm_arch=" gfx1100;gfx1101;gfx1102;gfx1150;gfx1151;gfx1200;gfx1201"
2626
27- pip install ninja cmake==3.31.6
28-
2927 # Install ROCm SDK wheels from repo.radeon.com.
30- rocm_base_url=" https://repo.radeon.com/rocm/windows/rocm-rel-${rocm_version } "
28+ rocm_base_url=" https://repo.radeon.com/rocm/windows/rocm-rel-${ROCM_VERSION } "
3129 pip install \
32- " ${rocm_base_url} /rocm_sdk_core-${rocm_version } -py3-none-win_amd64.whl" \
33- " ${rocm_base_url} /rocm_sdk_devel-${rocm_version } -py3-none-win_amd64.whl" \
34- " ${rocm_base_url} /rocm_sdk_libraries_custom-${rocm_version } -py3-none-win_amd64.whl" \
35- " ${rocm_base_url} /rocm-${rocm_version } .tar.gz"
30+ " ${rocm_base_url} /rocm_sdk_core-${ROCM_VERSION } -py3-none-win_amd64.whl" \
31+ " ${rocm_base_url} /rocm_sdk_devel-${ROCM_VERSION } -py3-none-win_amd64.whl" \
32+ " ${rocm_base_url} /rocm_sdk_libraries_custom-${ROCM_VERSION } -py3-none-win_amd64.whl" \
33+ " ${rocm_base_url} /rocm-${ROCM_VERSION } .tar.gz"
3634
3735 # Expand the devel tarball
3836 rocm-sdk init
3937
40- ROCM_PATH=" $( rocm-sdk path --root) "
41- export ROCM_PATH
42- export PATH=" ${ROCM_PATH} /bin:${PATH} "
38+ ROCM_PATH=" $( rocm-sdk path --root | tr ' \\' ' /' ) "
39+ export ROCM_PATH PATH=" ${ROCM_PATH} /bin:${PATH} "
4340
4441 cmake -G Ninja \
4542 -DCOMPUTE_BACKEND=hip \
4643 -DBNB_ROCM_ARCH=" ${bnb_rocm_arch} " \
4744 -DCMAKE_BUILD_TYPE=MinSizeRel \
4845 -DCMAKE_HIP_FLAGS=" --offload-compress" \
46+ -DCMAKE_HIP_COMPILER_ROCM_ROOT=" ${ROCM_PATH} " \
4947 -S .
5048 cmake --build .
5149fi
5250
53- output_dir=" output/${build_os} / ${build_arch} "
51+ output_dir=" output/${RUNNER_OS} /X64 "
5452mkdir -p " ${output_dir} "
5553(shopt -s nullglob && cp bitsandbytes/* .{so,dylib,dll} " ${output_dir} " )
0 commit comments