diff --git a/.github/workflows/build-libtorch-images.yml b/.github/workflows/build-libtorch-images.yml index cf24caae6..9526434e4 100644 --- a/.github/workflows/build-libtorch-images.yml +++ b/.github/workflows/build-libtorch-images.yml @@ -47,7 +47,7 @@ jobs: runs-on: ubuntu-18.04 strategy: matrix: - rocm_version: ["5.0", "5.1.1"] + rocm_version: ["5.1.1", "5.2"] env: GPU_ARCH_TYPE: rocm GPU_ARCH_VERSION: ${{ matrix.rocm_version }} diff --git a/.github/workflows/build-manywheel-images.yml b/.github/workflows/build-manywheel-images.yml index f2d6afb8d..b62507bbd 100644 --- a/.github/workflows/build-manywheel-images.yml +++ b/.github/workflows/build-manywheel-images.yml @@ -47,7 +47,7 @@ jobs: runs-on: ubuntu-18.04 strategy: matrix: - rocm_version: ["5.0", "5.1.1"] + rocm_version: ["5.1.1", "5.2"] env: GPU_ARCH_TYPE: rocm GPU_ARCH_VERSION: ${{ matrix.rocm_version }} diff --git a/common/install_miopen.sh b/common/install_miopen.sh index cdb7849f4..5c0fd84c9 100644 --- a/common/install_miopen.sh +++ b/common/install_miopen.sh @@ -59,7 +59,10 @@ MIOPEN_CMAKE_COMMON_FLAGS=" -DMIOPEN_BUILD_DRIVER=OFF " # Pull MIOpen repo and set DMIOPEN_EMBED_DB based on ROCm version -if [[ $ROCM_INT -ge 50100 ]]; then +if [[ $ROCM_INT -ge 50200 ]]; then + MIOPEN_CMAKE_DB_FLAGS="-DMIOPEN_EMBED_DB=gfx900_56;gfx906_60;gfx90878;gfx90a6e;gfx1030_36" + MIOPEN_BRANCH="release/rocm-rel-5.2-staging" +elif [[ $ROCM_INT -ge 50100 ]]; then MIOPEN_CMAKE_DB_FLAGS="-DMIOPEN_EMBED_DB=gfx900_56;gfx906_60;gfx90878;gfx90a6e;gfx1030_36" MIOPEN_BRANCH="release/rocm-rel-5.1-staging" elif [[ $ROCM_INT -ge 50000 ]]; then diff --git a/common/install_rocm.sh b/common/install_rocm.sh index 32d62ede9..a69d1767c 100644 --- a/common/install_rocm.sh +++ b/common/install_rocm.sh @@ -11,7 +11,7 @@ ver() { } # Map ROCm version to AMDGPU version -declare -A AMDGPU_VERSIONS=( ["5.0"]="21.50" ["5.1.1"]="22.10.1") +declare -A AMDGPU_VERSIONS=( ["5.0"]="21.50" ["5.1.1"]="22.10.1" ["5.2"]="22.20" ) install_ubuntu() { apt-get update diff --git a/libtorch/Dockerfile b/libtorch/Dockerfile index 8ae734d2d..224c0610a 100644 --- a/libtorch/Dockerfile +++ b/libtorch/Dockerfile @@ -76,13 +76,13 @@ RUN apt-get update -y && \ apt-get install gfortran -y && \ apt-get clean -FROM rocm as rocm5.0 -RUN ROCM_VERSION=5.0 bash ./install_rocm.sh && rm install_rocm.sh +FROM rocm as rocm5.1.1 +RUN ROCM_VERSION=5.1.1 bash ./install_rocm.sh && rm install_rocm.sh RUN bash ./install_rocm_drm.sh && rm install_rocm_drm.sh RUN bash ./install_rocm_magma.sh && rm install_rocm_magma.sh -FROM rocm as rocm5.1.1 -RUN ROCM_VERSION=5.1.1 bash ./install_rocm.sh && rm install_rocm.sh +FROM rocm as rocm5.2 +RUN ROCM_VERSION=5.2 bash ./install_rocm.sh && rm install_rocm.sh RUN bash ./install_rocm_drm.sh && rm install_rocm_drm.sh RUN bash ./install_rocm_magma.sh && rm install_rocm_magma.sh diff --git a/libtorch/build_all_docker.sh b/libtorch/build_all_docker.sh index 208242805..5703ca41c 100755 --- a/libtorch/build_all_docker.sh +++ b/libtorch/build_all_docker.sh @@ -8,6 +8,6 @@ for cuda_version in 11.7 11.6 11.5 11.3 10.2; do GPU_ARCH_TYPE=cuda GPU_ARCH_VERSION="${cuda_version}" "${TOPDIR}/libtorch/build_docker.sh" done -for rocm_version in 5.0 5.1.1; do +for rocm_version in 5.1.1 5.2; do GPU_ARCH_TYPE=rocm GPU_ARCH_VERSION="${rocm_version}" "${TOPDIR}/libtorch/build_docker.sh" done diff --git a/manywheel/build_all_docker.sh b/manywheel/build_all_docker.sh index 8bb92becc..d50eea49d 100644 --- a/manywheel/build_all_docker.sh +++ b/manywheel/build_all_docker.sh @@ -14,7 +14,7 @@ for cuda_version in 11.5 11.3 10.2; do MANYLINUX_VERSION=2014 GPU_ARCH_TYPE=cuda GPU_ARCH_VERSION="${cuda_version}" "${TOPDIR}/manywheel/build_docker.sh" done -for rocm_version in 5.0 5.1.1; do +for rocm_version in 5.1.1 5.2; do GPU_ARCH_TYPE=rocm GPU_ARCH_VERSION="${rocm_version}" "${TOPDIR}/manywheel/build_docker.sh" MANYLINUX_VERSION=2014 GPU_ARCH_TYPE=rocm GPU_ARCH_VERSION="${rocm_version}" "${TOPDIR}/manywheel/build_docker.sh" done diff --git a/manywheel/build_rocm.sh b/manywheel/build_rocm.sh index e4eae9569..5b52b1224 100755 --- a/manywheel/build_rocm.sh +++ b/manywheel/build_rocm.sh @@ -57,19 +57,19 @@ if [[ "$OS_NAME" == *"CentOS Linux"* ]]; then LIBNUMA_PATH="/usr/lib64/libnuma.so.1" LIBELF_PATH="/usr/lib64/libelf.so.1" LIBTINFO_PATH="/usr/lib64/libtinfo.so.5" + LIBDRM_PATH="/opt/amdgpu/lib64/libdrm.so.2" + LIBDRM_AMDGPU_PATH="/opt/amdgpu/lib64/libdrm_amdgpu.so.1" MAYBE_LIB64=lib64 elif [[ "$OS_NAME" == *"Ubuntu"* ]]; then LIBGOMP_PATH="/usr/lib/x86_64-linux-gnu/libgomp.so.1" LIBNUMA_PATH="/usr/lib/x86_64-linux-gnu/libnuma.so.1" LIBELF_PATH="/usr/lib/x86_64-linux-gnu/libelf.so.1" LIBTINFO_PATH="/lib/x86_64-linux-gnu/libtinfo.so.5" + LIBDRM_PATH="/usr/lib/x86_64-linux-gnu/libdrm.so.2" + LIBDRM_AMDGPU_PATH="/usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1" MAYBE_LIB64=lib fi -# NOTE: Some ROCm versions have identical dependencies, or very close deps. -# We conditionalize as generically as possible, capturing only what changes -# from version to version. - # To make version comparison easier, create an integer representation. ROCM_VERSION_CLEAN=$(echo ${ROCM_VERSION} | sed s/rocm//) save_IFS="$IFS" @@ -89,171 +89,330 @@ else fi ROCM_INT=$(($ROCM_VERSION_MAJOR * 10000 + $ROCM_VERSION_MINOR * 100 + $ROCM_VERSION_PATCH)) -# rocm3.8 and later use TensileLibrary.dat -if [[ $ROCM_INT -ge 30800 ]]; then - TENSILE_LIBRARY_NAME=TensileLibrary.dat -else - TENSILE_LIBRARY_NAME=TensileLibrary.yaml -fi +if [[ $ROCM_INT -ge 50200 ]]; then +DEPS_LIST=( + "/opt/rocm/lib/libMIOpen.so.1" + "/opt/rocm/lib/libamdhip64.so.5" + "/opt/rocm/lib/libhipblas.so.0" + "/opt/rocm/lib/libhipfft.so" + "/opt/rocm/lib/libhiprand.so.1" + "/opt/rocm/lib/libhipsparse.so.0" + "/opt/rocm/lib/libhsa-runtime64.so.1" + "/opt/rocm/${MAYBE_LIB64}/libamd_comgr.so.2" + "/opt/rocm/magma/lib/libmagma.so" + "/opt/rocm/lib/librccl.so.1" + "/opt/rocm/lib/librocblas.so.0" + "/opt/rocm/lib/librocfft-device-0.so.0" + "/opt/rocm/lib/librocfft-device-1.so.0" + "/opt/rocm/lib/librocfft-device-2.so.0" + "/opt/rocm/lib/librocfft-device-3.so.0" + "/opt/rocm/lib/librocfft.so.0" + "/opt/rocm/lib/librocm_smi64.so.5" + "/opt/rocm/lib/librocrand.so.1" + "/opt/rocm/lib/librocsolver.so.0" + "/opt/rocm/lib/librocsparse.so.0" + "/opt/rocm/lib/libroctracer64.so.1" + "/opt/rocm/lib/libroctx64.so.1" + "$LIBGOMP_PATH" + "$LIBNUMA_PATH" + "$LIBELF_PATH" + "$LIBTINFO_PATH" + "$LIBDRM_PATH" + "$LIBDRM_AMDGPU_PATH" +) -# in rocm4.0, libamdhip64.so.3 changed to *.so.4 -if [[ $ROCM_INT -ge 50000 ]]; then - LIBAMDHIP64=libamdhip64.so.5 -elif [[ $ROCM_INT -ge 40000 ]]; then - LIBAMDHIP64=libamdhip64.so.4 -else - LIBAMDHIP64=libamdhip64.so.3 -fi; +DEPS_SONAME=( + "libMIOpen.so.1" + "libamdhip64.so.5" + "libhipblas.so.0" + "libhipfft.so" + "libhiprand.so.1" + "libhipsparse.so.0" + "libhsa-runtime64.so.1" + "libamd_comgr.so.2" + "libmagma.so" + "librccl.so.1" + "librocblas.so.0" + "librocfft-device-0.so.0" + "librocfft-device-1.so.0" + "librocfft-device-2.so.0" + "librocfft-device-3.so.0" + "librocfft.so.0" + "librocm_smi64.so.5" + "librocrand.so.1" + "librocsolver.so.0" + "librocsparse.so.0" + "libroctracer64.so.1" + "libroctx64.so.1" + "libgomp.so.1" + "libnuma.so.1" + "libelf.so.1" + "libtinfo.so.5" + "libdrm.so.2" + "libdrm_amdgpu.so.1" +) -# in rocm4.1, libamd_comgr.so.1 changed to *.so.2 -# hipfft is a new package, separate from rocfft -if [[ $ROCM_INT -ge 40500 ]]; then - LIBAMDCOMGR=libamd_comgr.so.2 - SRCLIST_PATH="/opt/rocm/rocblas/lib/library/" - DSTLIST_PATH="lib/library/" - KERNELGFX906=gfx906-xnack- - KERNELGFX908=gfx908-xnack- - KERNELGFX90A="Kernels.so-000-gfx90a-xnack-.hsaco" - KERNELGFX90A_="Kernels.so-000-gfx90a-xnack+.hsaco" - KERNELGFX1030="Kernels.so-000-gfx1030.hsaco" - TENSILEGFX90A="TensileLibrary_gfx90a.co" - TENSILEGFX1030="TensileLibrary_gfx1030.co" - HIPFFT_DEP=/opt/rocm/hipfft/lib/libhipfft.so - HIPFFT_SO=libhipfft.so -elif [[ $ROCM_INT -ge 40100 ]]; then - LIBAMDCOMGR=libamd_comgr.so.2 - SRCLIST_PATH= - DSTLIST_PATH= - KERNELGFX906=gfx906-xnack- - KERNELGFX908=gfx908-xnack- - KERNELGFX90A= - KERNELGFX90A_= - KERNELGFX1030= - TENSILEGFX90A= - TENSILEGFX1030= - HIPFFT_DEP=/opt/rocm/hipfft/lib/libhipfft.so - HIPFFT_SO=libhipfft.so -else - LIBAMDCOMGR=libamd_comgr.so.1 - SRCLIST_PATH= - DSTLIST_PATH= - KERNELGFX906=gfx906 - KERNELGFX908=gfx908 - KERNELGFX90A= - KERNELGFX90A_= - KERNELGFX1030= - TENSILEGFX90A= - TENSILEGFX1030= - HIPFFT_DEP= - HIPFFT_SO= -fi; +DEPS_AUX_SRCLIST=( + "/opt/rocm/lib/rocblas/library/Kernels.so-000-gfx803.hsaco" + "/opt/rocm/lib/rocblas/library/Kernels.so-000-gfx900.hsaco" + "/opt/rocm/lib/rocblas/library/Kernels.so-000-gfx906-xnack-.hsaco" + "/opt/rocm/lib/rocblas/library/Kernels.so-000-gfx908-xnack-.hsaco" + "/opt/rocm/lib/rocblas/library/Kernels.so-000-gfx90a-xnack-.hsaco" + "/opt/rocm/lib/rocblas/library/Kernels.so-000-gfx90a-xnack+.hsaco" + "/opt/rocm/lib/rocblas/library/Kernels.so-000-gfx1030.hsaco" + "/opt/rocm/lib/rocblas/library/TensileLibrary_gfx803.co" + "/opt/rocm/lib/rocblas/library/TensileLibrary_gfx900.co" + "/opt/rocm/lib/rocblas/library/TensileLibrary_gfx906.co" + "/opt/rocm/lib/rocblas/library/TensileLibrary_gfx908.co" + "/opt/rocm/lib/rocblas/library/TensileLibrary_gfx90a.co" + "/opt/rocm/lib/rocblas/library/TensileLibrary_gfx1030.co" + "/opt/rocm/lib/rocblas/library/TensileLibrary_gfx803.dat" + "/opt/rocm/lib/rocblas/library/TensileLibrary_gfx900.dat" + "/opt/rocm/lib/rocblas/library/TensileLibrary_gfx906.dat" + "/opt/rocm/lib/rocblas/library/TensileLibrary_gfx908.dat" + "/opt/rocm/lib/rocblas/library/TensileLibrary_gfx90a.dat" + "/opt/rocm/lib/rocblas/library/TensileLibrary_gfx1030.dat" + "/opt/amdgpu/share/libdrm/amdgpu.ids" +) -if [[ $ROCM_INT -ge 50100 ]]; then - HIPRAND_DEP="/opt/rocm/lib/libhiprand.so.1" - HIPRAND_SO="libhiprand.so.1" - ROCRAND_DEP="/opt/rocm/lib/librocrand.so.1" - ROCRAND_SO="librocrand.so.1" -else - HIPRAND_DEP="/opt/rocm/hiprand/lib/libhiprand.so.1" - HIPRAND_SO="libhiprand.so.1" - ROCRAND_DEP="/opt/rocm/rocrand/lib/librocrand.so.1" - ROCRAND_SO="librocrand.so.1" -fi +DEPS_AUX_DSTLIST=( + "lib/rocblas/library/Kernels.so-000-gfx803.hsaco" + "lib/rocblas/library/Kernels.so-000-gfx900.hsaco" + "lib/rocblas/library/Kernels.so-000-gfx906-xnack-.hsaco" + "lib/rocblas/library/Kernels.so-000-gfx908-xnack-.hsaco" + "lib/rocblas/library/Kernels.so-000-gfx90a-xnack-.hsaco" + "lib/rocblas/library/Kernels.so-000-gfx90a-xnack+.hsaco" + "lib/rocblas/library/Kernels.so-000-gfx1030.hsaco" + "lib/rocblas/library/TensileLibrary_gfx803.co" + "lib/rocblas/library/TensileLibrary_gfx900.co" + "lib/rocblas/library/TensileLibrary_gfx906.co" + "lib/rocblas/library/TensileLibrary_gfx908.co" + "lib/rocblas/library/TensileLibrary_gfx90a.co" + "lib/rocblas/library/TensileLibrary_gfx1030.co" + "lib/rocblas/library/TensileLibrary_gfx803.dat" + "lib/rocblas/library/TensileLibrary_gfx900.dat" + "lib/rocblas/library/TensileLibrary_gfx906.dat" + "lib/rocblas/library/TensileLibrary_gfx908.dat" + "lib/rocblas/library/TensileLibrary_gfx90a.dat" + "lib/rocblas/library/TensileLibrary_gfx1030.dat" + "share/libdrm/amdgpu.ids" +) +elif [[ $ROCM_INT -ge 50100 ]]; then +DEPS_LIST=( + "/opt/rocm/miopen/lib/libMIOpen.so.1" + "/opt/rocm/hip/lib/libamdhip64.so.5" + "/opt/rocm/hipblas/lib/libhipblas.so.0" + "/opt/rocm/hipfft/lib/libhipfft.so" + "/opt/rocm/lib/libhiprand.so.1" + "/opt/rocm/hipsparse/lib/libhipsparse.so.0" + "/opt/rocm/hsa/lib/libhsa-runtime64.so.1" + "/opt/rocm/${MAYBE_LIB64}/libamd_comgr.so.2" + "/opt/rocm/magma/lib/libmagma.so" + "/opt/rocm/rccl/lib/librccl.so.1" + "/opt/rocm/rocblas/lib/librocblas.so.0" + "/opt/rocm/rocfft/lib/librocfft-device-0.so.0" + "/opt/rocm/rocfft/lib/librocfft-device-1.so.0" + "/opt/rocm/rocfft/lib/librocfft-device-2.so.0" + "/opt/rocm/rocfft/lib/librocfft-device-3.so.0" + "/opt/rocm/rocfft/lib/librocfft.so.0" + "/opt/rocm/rocm_smi/lib/librocm_smi64.so.5" + "/opt/rocm/lib/librocrand.so.1" + "/opt/rocm/rocsolver/lib/librocsolver.so.0" + "/opt/rocm/rocsparse/lib/librocsparse.so.0" + "/opt/rocm/roctracer/lib/libroctracer64.so.1" + "/opt/rocm/roctracer/lib/libroctx64.so.1" + "$LIBGOMP_PATH" + "$LIBNUMA_PATH" + "$LIBELF_PATH" + "$LIBTINFO_PATH" + "$LIBDRM_PATH" + "$LIBDRM_AMDGPU_PATH" +) -#in rocm4.5, libhsakmt is statically linked into hsa runtime -if [[ $ROCM_INT -ge 40500 ]]; then - HSAKMT_DEP= - HSAKMT_SO= -else - HSAKMT_DEP="/opt/rocm/${MAYBE_LIB64}/libhsakmt.so.1" - HSAKMT_SO="libhsakmt.so.1" -fi +DEPS_SONAME=( + "libMIOpen.so.1" + "libamdhip64.so.5" + "libhipblas.so.0" + "libhipfft.so" + "libhiprand.so.1" + "libhipsparse.so.0" + "libhsa-runtime64.so.1" + "libamd_comgr.so.2" + "libmagma.so" + "librccl.so.1" + "librocblas.so.0" + "librocfft-device-0.so.0" + "librocfft-device-1.so.0" + "librocfft-device-2.so.0" + "librocfft-device-3.so.0" + "librocfft.so.0" + "librocm_smi64.so.5" + "librocrand.so.1" + "librocsolver.so.0" + "librocsparse.so.0" + "libroctracer64.so.1" + "libroctx64.so.1" + "libgomp.so.1" + "libnuma.so.1" + "libelf.so.1" + "libtinfo.so.5" + "libdrm.so.2" + "libdrm_amdgpu.so.1" +) -#in rocm4.5, librocm_smi64 and libroctracer64 deps added -if [[ $ROCM_INT -ge 50000 ]]; then - ROCM_SMI_DEP=/opt/rocm/rocm_smi/lib/librocm_smi64.so.5 - ROCM_SMI_SO=librocm_smi64.so.5 -elif [[ $ROCM_INT -ge 40500 ]]; then - ROCM_SMI_DEP=/opt/rocm/rocm_smi/lib/librocm_smi64.so.4 - ROCM_SMI_SO=librocm_smi64.so.4 -else - ROCM_SMI_DEP= - ROCM_SMI_SO= -fi +DEPS_AUX_SRCLIST=( + "/opt/rocm/rocblas/lib/library/Kernels.so-000-gfx803.hsaco" + "/opt/rocm/rocblas/lib/library/Kernels.so-000-gfx900.hsaco" + "/opt/rocm/rocblas/lib/library/Kernels.so-000-gfx906-xnack-.hsaco" + "/opt/rocm/rocblas/lib/library/Kernels.so-000-gfx908-xnack-.hsaco" + "/opt/rocm/rocblas/lib/library/Kernels.so-000-gfx90a-xnack-.hsaco" + "/opt/rocm/rocblas/lib/library/Kernels.so-000-gfx90a-xnack+.hsaco" + "/opt/rocm/rocblas/lib/library/Kernels.so-000-gfx1030.hsaco" + "/opt/rocm/rocblas/lib/library/TensileLibrary_gfx803.co" + "/opt/rocm/rocblas/lib/library/TensileLibrary_gfx900.co" + "/opt/rocm/rocblas/lib/library/TensileLibrary_gfx906.co" + "/opt/rocm/rocblas/lib/library/TensileLibrary_gfx908.co" + "/opt/rocm/rocblas/lib/library/TensileLibrary_gfx90a.co" + "/opt/rocm/rocblas/lib/library/TensileLibrary_gfx1030.co" + "/opt/rocm/rocblas/lib/library/TensileLibrary.dat" + "/opt/amdgpu/share/libdrm/amdgpu.ids" +) -#since rocm4.5, amdgpu is an added dependency -if [[ $ROCM_INT -ge 40500 ]]; then - DRM_IDS_SRC=/opt/amdgpu/share/libdrm/amdgpu.ids - DRM_IDS_DST=share/libdrm/amdgpu.ids - DRM_SO=libdrm.so.2 - DRM_AMDGPU_SO=libdrm_amdgpu.so.1 - if [[ "$OS_NAME" == *"CentOS Linux"* ]]; then - DRM_DEP=/opt/amdgpu/lib64/${DRM_SO} - DRM_AMDGPU_DEP=/opt/amdgpu/lib64/${DRM_AMDGPU_SO} - elif [[ "$OS_NAME" == *"Ubuntu"* ]]; then - DRM_DEP=/usr/lib/x86_64-linux-gnu/${DRM_SO} - DRM_AMDGPU_DEP=/usr/lib/x86_64-linux-gnu/${DRM_AMDGPU_SO} - fi -else - DRM_DEP= - DRM_SO= - DRM_AMDGPU_DEP= - DRM_AMDGPU_SO= -fi +DEPS_AUX_DSTLIST=( + "lib/library/Kernels.so-000-gfx803.hsaco" + "lib/library/Kernels.so-000-gfx900.hsaco" + "lib/library/Kernels.so-000-gfx906-xnack-.hsaco" + "lib/library/Kernels.so-000-gfx908-xnack-.hsaco" + "lib/library/Kernels.so-000-gfx90a-xnack-.hsaco" + "lib/library/Kernels.so-000-gfx90a-xnack+.hsaco" + "lib/library/Kernels.so-000-gfx1030.hsaco" + "lib/library/TensileLibrary_gfx803.co" + "lib/library/TensileLibrary_gfx900.co" + "lib/library/TensileLibrary_gfx906.co" + "lib/library/TensileLibrary_gfx908.co" + "lib/library/TensileLibrary_gfx90a.co" + "lib/library/TensileLibrary_gfx1030.co" + "lib/library/TensileLibrary.dat" + "share/libdrm/amdgpu.ids" +) +elif [[ $ROCM_INT -ge 50000 ]]; then +DEPS_LIST=( + "/opt/rocm/miopen/lib/libMIOpen.so.1" + "/opt/rocm/hip/lib/libamdhip64.so.5" + "/opt/rocm/hipblas/lib/libhipblas.so.0" + "/opt/rocm/hipfft/lib/libhipfft.so" + "/opt/rocm/hiprand/lib/libhiprand.so.1" + "/opt/rocm/hipsparse/lib/libhipsparse.so.0" + "/opt/rocm/hsa/lib/libhsa-runtime64.so.1" + "/opt/rocm/${MAYBE_LIB64}/libamd_comgr.so.2" + "/opt/rocm/magma/lib/libmagma.so" + "/opt/rocm/rccl/lib/librccl.so.1" + "/opt/rocm/rocblas/lib/librocblas.so.0" + "/opt/rocm/rocfft/lib/librocfft-device-0.so.0" + "/opt/rocm/rocfft/lib/librocfft-device-1.so.0" + "/opt/rocm/rocfft/lib/librocfft-device-2.so.0" + "/opt/rocm/rocfft/lib/librocfft-device-3.so.0" + "/opt/rocm/rocfft/lib/librocfft.so.0" + "/opt/rocm/rocm_smi/lib/librocm_smi64.so.5" + "/opt/rocm/rocrand/lib/librocrand.so.1" + "/opt/rocm/rocsolver/lib/librocsolver.so.0" + "/opt/rocm/rocsparse/lib/librocsparse.so.0" + "/opt/rocm/roctracer/lib/libroctracer64.so.1" + "/opt/rocm/roctracer/lib/libroctx64.so.1" + "$LIBGOMP_PATH" + "$LIBNUMA_PATH" + "$LIBELF_PATH" + "$LIBTINFO_PATH" + "$LIBDRM_PATH" + "$LIBDRM_AMDGPU_PATH" +) -# in rocm4.3, rocfft refactored their device libs, hipfft is a new package, separate from rocfft -# in rocm4.5, rocfft refactored their device libs again -if [[ $ROCM_INT -ge 40500 ]]; then - DEP_ROCFFT_DEVICE_0=/opt/rocm/rocfft/lib/librocfft-device-0.so.0 - DEP_ROCFFT_DEVICE_1=/opt/rocm/rocfft/lib/librocfft-device-1.so.0 - DEP_ROCFFT_DEVICE_2=/opt/rocm/rocfft/lib/librocfft-device-2.so.0 - DEP_ROCFFT_DEVICE_3=/opt/rocm/rocfft/lib/librocfft-device-3.so.0 - SO_ROCFFT_DEVICE_0=librocfft-device-0.so.0 - SO_ROCFFT_DEVICE_1=librocfft-device-1.so.0 - SO_ROCFFT_DEVICE_2=librocfft-device-2.so.0 - SO_ROCFFT_DEVICE_3=librocfft-device-3.so.0 -elif [[ $ROCM_INT -ge 40300 ]]; then - DEP_ROCFFT_DEVICE_0=/opt/rocm/rocfft/lib/librocfft-device-misc.so.0 - DEP_ROCFFT_DEVICE_1=/opt/rocm/rocfft/lib/librocfft-device-single.so.0 - DEP_ROCFFT_DEVICE_2=/opt/rocm/rocfft/lib/librocfft-device-double.so.0 - DEP_ROCFFT_DEVICE_3= - SO_ROCFFT_DEVICE_0=librocfft-device-misc.so.0 - SO_ROCFFT_DEVICE_1=librocfft-device-single.so.0 - SO_ROCFFT_DEVICE_2=librocfft-device-double.so.0 - SO_ROCFFT_DEVICE_3= -else - DEP_ROCFFT_DEVICE_0=/opt/rocm/rocfft/lib/librocfft-device.so.0 - DEP_ROCFFT_DEVICE_1= - DEP_ROCFFT_DEVICE_2= - DEP_ROCFFT_DEVICE_3= - SO_ROCFFT_DEVICE_0=librocfft-device.so.0 - SO_ROCFFT_DEVICE_1= - SO_ROCFFT_DEVICE_2= - SO_ROCFFT_DEVICE_3= -fi; +DEPS_SONAME=( + "libMIOpen.so.1" + "libamdhip64.so.5" + "libhipblas.so.0" + "libhipfft.so" + "libhiprand.so.1" + "libhipsparse.so.0" + "libhsa-runtime64.so.1" + "libamd_comgr.so.2" + "libmagma.so" + "librccl.so.1" + "librocblas.so.0" + "librocfft-device-0.so.0" + "librocfft-device-1.so.0" + "librocfft-device-2.so.0" + "librocfft-device-3.so.0" + "librocfft.so.0" + "librocm_smi64.so.5" + "librocrand.so.1" + "librocsolver.so.0" + "librocsparse.so.0" + "libroctracer64.so.1" + "libroctx64.so.1" + "libgomp.so.1" + "libnuma.so.1" + "libelf.so.1" + "libtinfo.so.5" + "libdrm.so.2" + "libdrm_amdgpu.so.1" +) -echo "PYTORCH_ROCM_ARCH: ${PYTORCH_ROCM_ARCH}" +DEPS_AUX_SRCLIST=( + "/opt/rocm/rocblas/lib/library/Kernels.so-000-gfx803.hsaco" + "/opt/rocm/rocblas/lib/library/Kernels.so-000-gfx900.hsaco" + "/opt/rocm/rocblas/lib/library/Kernels.so-000-gfx906-xnack-.hsaco" + "/opt/rocm/rocblas/lib/library/Kernels.so-000-gfx908-xnack-.hsaco" + "/opt/rocm/rocblas/lib/library/Kernels.so-000-gfx90a-xnack-.hsaco" + "/opt/rocm/rocblas/lib/library/Kernels.so-000-gfx90a-xnack+.hsaco" + "/opt/rocm/rocblas/lib/library/Kernels.so-000-gfx1030.hsaco" + "/opt/rocm/rocblas/lib/library/TensileLibrary_gfx803.co" + "/opt/rocm/rocblas/lib/library/TensileLibrary_gfx900.co" + "/opt/rocm/rocblas/lib/library/TensileLibrary_gfx906.co" + "/opt/rocm/rocblas/lib/library/TensileLibrary_gfx908.co" + "/opt/rocm/rocblas/lib/library/TensileLibrary_gfx90a.co" + "/opt/rocm/rocblas/lib/library/TensileLibrary_gfx1030.co" + "/opt/rocm/rocblas/lib/library/TensileLibrary.dat" + "/opt/amdgpu/share/libdrm/amdgpu.ids" +) +DEPS_AUX_DSTLIST=( + "lib/library/Kernels.so-000-gfx803.hsaco" + "lib/library/Kernels.so-000-gfx900.hsaco" + "lib/library/Kernels.so-000-gfx906-xnack-.hsaco" + "lib/library/Kernels.so-000-gfx908-xnack-.hsaco" + "lib/library/Kernels.so-000-gfx90a-xnack-.hsaco" + "lib/library/Kernels.so-000-gfx90a-xnack+.hsaco" + "lib/library/Kernels.so-000-gfx1030.hsaco" + "lib/library/TensileLibrary_gfx803.co" + "lib/library/TensileLibrary_gfx900.co" + "lib/library/TensileLibrary_gfx906.co" + "lib/library/TensileLibrary_gfx908.co" + "lib/library/TensileLibrary_gfx90a.co" + "lib/library/TensileLibrary_gfx1030.co" + "lib/library/TensileLibrary.dat" + "share/libdrm/amdgpu.ids" +) +elif [[ $ROCM_INT -ge 40500 ]]; then DEPS_LIST=( "/opt/rocm/miopen/lib/libMIOpen.so.1" - "/opt/rocm/hip/lib/$LIBAMDHIP64" + "/opt/rocm/hip/lib/libamdhip64.so.4" "/opt/rocm/hipblas/lib/libhipblas.so.0" - ${HIPFFT_DEP} - ${HIPRAND_DEP} + "/opt/rocm/hipfft/lib/libhipfft.so" + "/opt/rocm/hiprand/lib/libhiprand.so.1" "/opt/rocm/hipsparse/lib/libhipsparse.so.0" "/opt/rocm/hsa/lib/libhsa-runtime64.so.1" - "/opt/rocm/${MAYBE_LIB64}/${LIBAMDCOMGR}" - ${HSAKMT_DEP} + "/opt/rocm/${MAYBE_LIB64}/libamd_comgr.so.2" "/opt/rocm/magma/lib/libmagma.so" "/opt/rocm/rccl/lib/librccl.so.1" "/opt/rocm/rocblas/lib/librocblas.so.0" - ${DEP_ROCFFT_DEVICE_0} - ${DEP_ROCFFT_DEVICE_1} - ${DEP_ROCFFT_DEVICE_2} - ${DEP_ROCFFT_DEVICE_3} + "/opt/rocm/rocfft/lib/librocfft-device-0.so.0" + "/opt/rocm/rocfft/lib/librocfft-device-1.so.0" + "/opt/rocm/rocfft/lib/librocfft-device-2.so.0" + "/opt/rocm/rocfft/lib/librocfft-device-3.so.0" "/opt/rocm/rocfft/lib/librocfft.so.0" - ${ROCM_SMI_DEP} - ${ROCRAND_DEP} + "/opt/rocm/rocm_smi/lib/librocm_smi64.so.4" + "/opt/rocm/rocrand/lib/librocrand.so.1" "/opt/rocm/rocsolver/lib/librocsolver.so.0" "/opt/rocm/rocsparse/lib/librocsparse.so.0" "/opt/rocm/roctracer/lib/libroctracer64.so.1" @@ -262,30 +421,29 @@ DEPS_LIST=( "$LIBNUMA_PATH" "$LIBELF_PATH" "$LIBTINFO_PATH" - ${DRM_DEP} - ${DRM_AMDGPU_DEP} + "$LIBDRM_PATH" + "$LIBDRM_AMDGPU_PATH" ) DEPS_SONAME=( "libMIOpen.so.1" - "$LIBAMDHIP64" + "libamdhip64.so.4" "libhipblas.so.0" - ${HIPFFT_SO} - ${HIPRAND_SO} + "libhipfft.so" + "libhiprand.so.1" "libhipsparse.so.0" "libhsa-runtime64.so.1" - "${LIBAMDCOMGR}" - ${HSAKMT_SO} + "libamd_comgr.so.2" "libmagma.so" "librccl.so.1" "librocblas.so.0" - ${SO_ROCFFT_DEVICE_0} - ${SO_ROCFFT_DEVICE_1} - ${SO_ROCFFT_DEVICE_2} - ${SO_ROCFFT_DEVICE_3} + "librocfft-device-0.so.0" + "librocfft-device-1.so.0" + "librocfft-device-2.so.0" + "librocfft-device-3.so.0" "librocfft.so.0" - ${ROCM_SMI_SO} - ${ROCRAND_SO} + "librocm_smi64.so.4" + "librocrand.so.1" "librocsolver.so.0" "librocsparse.so.0" "libroctracer64.so.1" @@ -294,45 +452,128 @@ DEPS_SONAME=( "libnuma.so.1" "libelf.so.1" "libtinfo.so.5" - ${DRM_SO} - ${DRM_AMDGPU_SO} + "libdrm.so.2" + "libdrm_amdgpu.so.1" ) DEPS_AUX_SRCLIST=( "/opt/rocm/rocblas/lib/library/Kernels.so-000-gfx803.hsaco" "/opt/rocm/rocblas/lib/library/Kernels.so-000-gfx900.hsaco" - "/opt/rocm/rocblas/lib/library/Kernels.so-000-${KERNELGFX906}.hsaco" - "/opt/rocm/rocblas/lib/library/Kernels.so-000-${KERNELGFX908}.hsaco" - ${SRCLIST_PATH}${KERNELGFX90A} - ${SRCLIST_PATH}${KERNELGFX90A_} - ${SRCLIST_PATH}${KERNELGFX1030} + "/opt/rocm/rocblas/lib/library/Kernels.so-000-gfx906-xnack-.hsaco" + "/opt/rocm/rocblas/lib/library/Kernels.so-000-gfx908-xnack-.hsaco" + "/opt/rocm/rocblas/lib/library/Kernels.so-000-gfx90a-xnack-.hsaco" + "/opt/rocm/rocblas/lib/library/Kernels.so-000-gfx90a-xnack+.hsaco" + "/opt/rocm/rocblas/lib/library/Kernels.so-000-gfx1030.hsaco" "/opt/rocm/rocblas/lib/library/TensileLibrary_gfx803.co" "/opt/rocm/rocblas/lib/library/TensileLibrary_gfx900.co" "/opt/rocm/rocblas/lib/library/TensileLibrary_gfx906.co" "/opt/rocm/rocblas/lib/library/TensileLibrary_gfx908.co" - ${SRCLIST_PATH}${TENSILEGFX90A} - ${SRCLIST_PATH}${TENSILEGFX1030} - "/opt/rocm/rocblas/lib/library/$TENSILE_LIBRARY_NAME" - ${DRM_IDS_SRC} + "/opt/rocm/rocblas/lib/library/TensileLibrary_gfx90a.co" + "/opt/rocm/rocblas/lib/library/TensileLibrary_gfx1030.co" + "/opt/rocm/rocblas/lib/library/TensileLibrary.dat" + "/opt/amdgpu/share/libdrm/amdgpu.ids" ) DEPS_AUX_DSTLIST=( "lib/library/Kernels.so-000-gfx803.hsaco" "lib/library/Kernels.so-000-gfx900.hsaco" - "lib/library/Kernels.so-000-${KERNELGFX906}.hsaco" - "lib/library/Kernels.so-000-${KERNELGFX908}.hsaco" - ${DSTLIST_PATH}${KERNELGFX90A} - ${DSTLIST_PATH}${KERNELGFX90A_} - ${DSTLIST_PATH}${KERNELGFX1030} + "lib/library/Kernels.so-000-gfx906-xnack-.hsaco" + "lib/library/Kernels.so-000-gfx908-xnack-.hsaco" + "lib/library/Kernels.so-000-gfx90a-xnack-.hsaco" + "lib/library/Kernels.so-000-gfx90a-xnack+.hsaco" + "lib/library/Kernels.so-000-gfx1030.hsaco" "lib/library/TensileLibrary_gfx803.co" "lib/library/TensileLibrary_gfx900.co" "lib/library/TensileLibrary_gfx906.co" "lib/library/TensileLibrary_gfx908.co" - ${DSTLIST_PATH}${TENSILEGFX90A} - ${DSTLIST_PATH}${TENSILEGFX1030} - "lib/library/$TENSILE_LIBRARY_NAME" - ${DRM_IDS_DST} + "lib/library/TensileLibrary_gfx90a.co" + "lib/library/TensileLibrary_gfx1030.co" + "lib/library/TensileLibrary.dat" + "share/libdrm/amdgpu.ids" ) +elif [[ $ROCM_INT -ge 40300 ]]; then +DEPS_LIST=( + "/opt/rocm/miopen/lib/libMIOpen.so.1" + "/opt/rocm/hip/lib/libamdhip64.so.4" + "/opt/rocm/hipblas/lib/libhipblas.so.0" + "/opt/rocm/hipfft/lib/libhipfft.so" + "/opt/rocm/hiprand/lib/libhiprand.so.1" + "/opt/rocm/hipsparse/lib/libhipsparse.so.0" + "/opt/rocm/hsa/lib/libhsa-runtime64.so.1" + "/opt/rocm/${MAYBE_LIB64}/libamd_comgr.so.2" + "/opt/rocm/${MAYBE_LIB64}/libhsakmt.so.1" + "/opt/rocm/magma/lib/libmagma.so" + "/opt/rocm/rccl/lib/librccl.so.1" + "/opt/rocm/rocblas/lib/librocblas.so.0" + "/opt/rocm/rocfft/lib/librocfft-device-misc.so.0" + "/opt/rocm/rocfft/lib/librocfft-device-single.so.0" + "/opt/rocm/rocfft/lib/librocfft-device-double.so.0" + "/opt/rocm/rocfft/lib/librocfft.so.0" + "/opt/rocm/rocrand/lib/librocrand.so.1" + "/opt/rocm/rocsolver/lib/librocsolver.so.0" + "/opt/rocm/rocsparse/lib/librocsparse.so.0" + "/opt/rocm/roctracer/lib/libroctracer64.so.1" + "/opt/rocm/roctracer/lib/libroctx64.so.1" + "$LIBGOMP_PATH" + "$LIBNUMA_PATH" + "$LIBELF_PATH" + "$LIBTINFO_PATH" +) + +DEPS_SONAME=( + "libMIOpen.so.1" + "libamdhip64.so.4" + "libhipblas.so.0" + "libhipfft.so" + "libhiprand.so.1" + "libhipsparse.so.0" + "libhsa-runtime64.so.1" + "libamd_comgr.so.2" + "libhsakmt.so.1" + "libmagma.so" + "librccl.so.1" + "librocblas.so.0" + "librocfft-device-misc.so.0" + "librocfft-device-single.so.0" + "librocfft-device-double.so.0" + "librocfft.so.0" + "librocrand.so.1" + "librocsolver.so.0" + "librocsparse.so.0" + "libroctracer64.so.1" + "libroctx64.so.1" + "libgomp.so.1" + "libnuma.so.1" + "libelf.so.1" + "libtinfo.so.5" +) + +DEPS_AUX_SRCLIST=( + "/opt/rocm/rocblas/lib/library/Kernels.so-000-gfx803.hsaco" + "/opt/rocm/rocblas/lib/library/Kernels.so-000-gfx900.hsaco" + "/opt/rocm/rocblas/lib/library/Kernels.so-000-gfx906-xnack-.hsaco" + "/opt/rocm/rocblas/lib/library/Kernels.so-000-gfx908-xnack-.hsaco" + "/opt/rocm/rocblas/lib/library/TensileLibrary_gfx803.co" + "/opt/rocm/rocblas/lib/library/TensileLibrary_gfx900.co" + "/opt/rocm/rocblas/lib/library/TensileLibrary_gfx906.co" + "/opt/rocm/rocblas/lib/library/TensileLibrary_gfx908.co" + "/opt/rocm/rocblas/lib/library/TensileLibrary.dat" +) + +DEPS_AUX_DSTLIST=( + "lib/library/Kernels.so-000-gfx803.hsaco" + "lib/library/Kernels.so-000-gfx900.hsaco" + "lib/library/Kernels.so-000-gfx906-xnack-.hsaco" + "lib/library/Kernels.so-000-gfx908-xnack-.hsaco" + "lib/library/TensileLibrary_gfx803.co" + "lib/library/TensileLibrary_gfx900.co" + "lib/library/TensileLibrary_gfx906.co" + "lib/library/TensileLibrary_gfx908.co" + "lib/library/TensileLibrary.dat" +) +fi + +echo "PYTORCH_ROCM_ARCH: ${PYTORCH_ROCM_ARCH}" SCRIPTPATH="$( cd "$(dirname "$0")" ; pwd -P )" if [[ -z "$BUILD_PYTHONLESS" ]]; then