diff --git a/tools/rocm-build/ROCm.mk b/tools/rocm-build/ROCm.mk index faca1661d..092d659b6 100644 --- a/tools/rocm-build/ROCm.mk +++ b/tools/rocm-build/ROCm.mk @@ -67,16 +67,18 @@ endef $(call adddep,amd_smi_lib,${ASAN_DEP}) $(call adddep,aqlprofile,${ASAN_DEP} hsa) -$(call adddep,clang-ocl,lightning rocm-cmake) $(call adddep,comgr,lightning devicelibs) $(call adddep,dbgapi,hsa comgr) $(call adddep,devicelibs,lightning) -$(call adddep,hip_on_rocclr,${ASAN_DEP} rocclr rocprofiler-register) +$(call adddep,hip_on_rocclr,${ASAN_DEP} hsa comgr hipcc rocprofiler-register) $(call adddep,hipcc,) $(call adddep,hipify_clang,hip_on_rocclr lightning) $(call adddep,hsa,${ASAN_DEP} thunk lightning devicelibs rocprofiler-register) $(call adddep,lightning,) -$(call adddep,opencl_on_rocclr,${ASAN_DEP} rocclr) +$(call adddep,omniperf,${ASAN_DEP}) +$(call adddep,omnitrace,hipcc hsa hip_on_rocclr rocm_smi_lib rocprofiler roctracer) +$(call adddep,opencl_icd_loader,) +$(call adddep,opencl_on_rocclr,${ASAN_DEP} hsa comgr opencl_icd_loader) $(call adddep,openmp_extras,thunk lightning devicelibs hsa) $(call adddep,rdc,${ASAN_DEP} rocm_smi_lib hsa rocprofiler) $(call adddep,rocclr,${ASAN_DEP} hsa comgr hipcc rocprofiler-register) @@ -87,14 +89,15 @@ $(call adddep,rocm-core,${ASAN_DEP}) $(call adddep,rocm-gdb,dbgapi) $(call adddep,rocminfo,${ASAN_DEP} hsa) $(call adddep,rocprofiler-register,${ASAN_DEP}) -$(call adddep,rocprofiler,${ASAN_DEP} hsa roctracer aqlprofile opencl_on_rocclr hip_on_rocclr comgr dbgapi rocm_smi_lib) +$(call adddep,rocprofiler-sdk,${ASAN_DEP} hsa aqlprofile opencl_on_rocclr hip_on_rocclr comgr) +$(call adddep,rocprofiler,${ASAN_DEP} hsa roctracer aqlprofile opencl_on_rocclr hip_on_rocclr comgr) $(call adddep,rocr_debug_agent,${ASAN_DEP} hip_on_rocclr hsa dbgapi) $(call adddep,roctracer,${ASAN_DEP} hsa hip_on_rocclr) $(call adddep,thunk,${ASAN_DEP}) # rocm-dev points to all possible last finish components of Stage1 build. rocm-dev-components :=rdc hipify_clang openmp_extras \ - rocm-core amd_smi_lib hipcc clang-ocl \ + omniperf omnitrace rocm-core amd_smi_lib hipcc \ rocm_bandwidth_test rocr_debug_agent rocm-gdb $(call adddep,rocm-dev,$(filter-out ${NOBUILD},${rocm-dev-components})) @@ -117,6 +120,7 @@ $(call adddep,mivisionx,amdmigraphx miopen-hip rpp lightning hipcc) $(call adddep,rccl,hip_on_rocclr hsa lightning hipcc rocm_smi_lib hipify_clang) $(call adddep,rocalution,rocblas rocsparse rocrand lightning hipcc) $(call adddep,rocblas,hip_on_rocclr openmp_extras lightning hipcc) +$(call adddep,rocal,mivisionx) $(call adddep,rocdecode,hip_on_rocclr lightning hipcc) $(call adddep,rocfft,hip_on_rocclr rocrand hiprand lightning hipcc openmp_extras) $(call adddep,rocmvalidationsuite,hip_on_rocclr hsa rocblas rocm-core lightning hipcc rocm_smi_lib) @@ -221,7 +225,7 @@ rocm-dev: T_rocm-dev ${OUT_DIR}/logs: sudo mkdir -p -m 775 "${ROCM_INSTALL_PATH}" && \ - sudo chown -R "$(shell id -u):$(shell id -g)" "${ROCM_INSTALL_PATH}" + sudo chown -R "$(shell id -u):$(shell id -g)" "/opt" sudo chown -R "$(shell id -u):$(shell id -g)" "/home/$(shell id -un)" mkdir -p "${@}" mkdir -p ${HOME}/.ccache diff --git a/tools/rocm-build/build_amdmigraphx.sh b/tools/rocm-build/build_amdmigraphx.sh index 9ddad2151..05a7528f5 100755 --- a/tools/rocm-build/build_amdmigraphx.sh +++ b/tools/rocm-build/build_amdmigraphx.sh @@ -22,12 +22,13 @@ build_amdmigraphx() { else GPU_TARGETS="gfx908;gfx90a;gfx940;gfx941;gfx942;gfx1030;gfx1100;gfx1101" fi + init_rocm_common_cmake_params mkdir -p ${BUILD_DIR} && rm -rf ${BUILD_DIR}/* && mkdir -p ${HOME}/amdmigraphx && rm -rf ${HOME}/amdmigraphx/* rbuild package -d "${HOME}/amdmigraphx" -B "${BUILD_DIR}" \ --cxx="${ROCM_PATH}/llvm/bin/clang++" \ --cc="${ROCM_PATH}/llvm/bin/clang" \ - $(rocm_common_cmake_params) \ + "${rocm_math_common_cmake_params[@]}" \ -DCMAKE_MODULE_LINKER_FLAGS="-Wl,--enable-new-dtags -Wl,--rpath,$ROCM_LIB_RPATH" \ -DGPU_TARGETS="${GPU_TARGETS}" \ -DCMAKE_INSTALL_RPATH="" diff --git a/tools/rocm-build/build_composable_kernel.sh b/tools/rocm-build/build_composable_kernel.sh index 577c2c6b2..7d1b38abc 100755 --- a/tools/rocm-build/build_composable_kernel.sh +++ b/tools/rocm-build/build_composable_kernel.sh @@ -17,9 +17,7 @@ build_miopen_ck() { mkdir "$BUILD_DIR" && cd "$BUILD_DIR" if [ -n "$GPU_ARCHS" ]; then - GPU_TARGETS="$GPU_ARCHS" - else - GPU_TARGETS="gfx908;gfx90a;gfx940;gfx941;gfx942;gfx1030;gfx1100;gfx1101" + GPU_TARGETS="-DAMDGPU_TARGETS=${GPU_ARCHS}" fi if [ "${ASAN_CMAKE_PARAMS}" == "true" ] ; then @@ -43,7 +41,7 @@ build_miopen_ck() { ${LAUNCHER_FLAGS} \ -DINSTANCES_ONLY=ON \ -DENABLE_ASAN_PACKAGING=true \ - -DAMDGPU_TARGETS=${GPU_TARGETS} \ + "${GPU_TARGETS}" \ "$COMPONENT_SRC" else cmake -DBUILD_DEV=OFF \ @@ -63,9 +61,11 @@ build_miopen_ck() { -DROCM_DISABLE_LDCONFIG=ON \ -DROCM_PATH=${ROCM_PATH} \ -DCPACK_GENERATOR="${PKGTYPE^^}" \ + -DCMAKE_CXX_COMPILER="${ROCM_PATH}/llvm/bin/clang++" \ + -DCMAKE_C_COMPILER="${ROCM_PATH}/llvm/bin/clang" \ ${LAUNCHER_FLAGS} \ -DINSTANCES_ONLY=ON \ - -DAMDGPU_TARGETS=${GPU_TARGETS} \ + "${GPU_TARGETS}" \ "$COMPONENT_SRC" fi @@ -106,8 +106,6 @@ build_miopen_ckProf() { architectures='gfx10 gfx11 gfx90 gfx94' if [ -n "$GPU_ARCHS" ]; then architectures=$(echo ${GPU_ARCHS} | awk -F';' '{for(i=1;i<=NF;i++) a[substr($i,1,5)]} END{for(i in a) printf i" "}') - else - architectures='gfx10 gfx11 gfx90 gfx94' fi for arch in ${architectures} diff --git a/tools/rocm-build/build_hipblas.sh b/tools/rocm-build/build_hipblas.sh index 8a2b1d8bf..e09f61eb6 100755 --- a/tools/rocm-build/build_hipblas.sh +++ b/tools/rocm-build/build_hipblas.sh @@ -28,9 +28,10 @@ build_hipblas() { rebuild_lapack fi + init_rocm_common_cmake_params cmake \ ${LAUNCHER_FLAGS} \ - $(rocm_common_cmake_params) \ + "${rocm_math_common_cmake_params[@]}" \ -DUSE_CUDA=OFF \ -DBUILD_CLIENTS_TESTS=ON \ -DBUILD_CLIENTS_BENCHMARKS=ON \ diff --git a/tools/rocm-build/build_hipblaslt.sh b/tools/rocm-build/build_hipblaslt.sh index 4895adde2..f99eb7772 100755 --- a/tools/rocm-build/build_hipblaslt.sh +++ b/tools/rocm-build/build_hipblaslt.sh @@ -27,11 +27,12 @@ build_hipblaslt() { GPU_TARGETS=all fi + init_rocm_common_cmake_params CXX=$(set_build_variables CXX)\ cmake \ -DAMDGPU_TARGETS=${GPU_TARGETS} \ ${LAUNCHER_FLAGS} \ - $(rocm_common_cmake_params) \ + "${rocm_math_common_cmake_params[@]}" \ -DTensile_LOGIC= \ -DTensile_CODE_OBJECT_VERSION=default \ -DTensile_CPU_THREADS= \ diff --git a/tools/rocm-build/build_hipcub.sh b/tools/rocm-build/build_hipcub.sh index c559fe102..592c81364 100755 --- a/tools/rocm-build/build_hipcub.sh +++ b/tools/rocm-build/build_hipcub.sh @@ -17,6 +17,7 @@ build_hipcub() { fi mkdir -p "$BUILD_DIR" && cd "$BUILD_DIR" + init_rocm_common_cmake_params if [ -n "$GPU_ARCHS" ]; then GPU_TARGETS="$GPU_ARCHS" @@ -27,7 +28,7 @@ build_hipcub() { CXX=$(set_build_variables CXX)\ cmake \ ${LAUNCHER_FLAGS} \ - $(rocm_common_cmake_params) \ + "${rocm_math_common_cmake_params[@]}" \ -DCMAKE_MODULE_PATH="${ROCM_PATH}/lib/cmake/hip;${ROCM_PATH}/hip/cmake" \ -Drocprim_DIR="${ROCM_PATH}/rocprim" \ -DBUILD_TEST=ON \ diff --git a/tools/rocm-build/build_hipfft.sh b/tools/rocm-build/build_hipfft.sh index d8d077f1f..17e8c6c9e 100755 --- a/tools/rocm-build/build_hipfft.sh +++ b/tools/rocm-build/build_hipfft.sh @@ -16,6 +16,7 @@ build_hipfft() { cd $COMPONENT_SRC mkdir -p "$BUILD_DIR" && cd "$BUILD_DIR" + init_rocm_common_cmake_params if [ -n "$GPU_ARCHS" ]; then GPU_TARGETS="$GPU_ARCHS" @@ -26,7 +27,7 @@ build_hipfft() { cmake \ -DCMAKE_CXX_COMPILER=$(set_build_variables CXX) \ ${LAUNCHER_FLAGS} \ - $(rocm_common_cmake_params) \ + "${rocm_math_common_cmake_params[@]}" \ -DAMDGPU_TARGETS=${GPU_TARGETS} \ -DCMAKE_MODULE_PATH="${ROCM_PATH}/lib/cmake/hip" \ -DCMAKE_SKIP_BUILD_RPATH=TRUE \ diff --git a/tools/rocm-build/build_hiprand.sh b/tools/rocm-build/build_hiprand.sh index 293b05b6c..a9cdcbb53 100755 --- a/tools/rocm-build/build_hiprand.sh +++ b/tools/rocm-build/build_hiprand.sh @@ -61,7 +61,6 @@ build_hiprand() { rm -rf _CPack_Packages/ && find -name '*.o' -delete mkdir -p $PACKAGE_DIR && cp ${BUILD_DIR}/*.${PKGTYPE} $PACKAGE_DIR - $SCCACHE_BIN -s || echo "Unable to display sccache stats" } clean_hiprand() { diff --git a/tools/rocm-build/build_hipsolver.sh b/tools/rocm-build/build_hipsolver.sh index ded0279df..22c778832 100755 --- a/tools/rocm-build/build_hipsolver.sh +++ b/tools/rocm-build/build_hipsolver.sh @@ -27,10 +27,11 @@ build_hipsolver() { rebuild_lapack fi + init_rocm_common_cmake_params cmake \ -DUSE_CUDA=OFF \ ${LAUNCHER_FLAGS} \ - $(rocm_common_cmake_params) \ + "${rocm_math_common_cmake_params[@]}" \ -DBUILD_CLIENTS_TESTS=ON \ -DBUILD_CLIENTS_BENCHMARKS=ON \ -DBUILD_CLIENTS_SAMPLES=ON \ diff --git a/tools/rocm-build/build_hipsparse.sh b/tools/rocm-build/build_hipsparse.sh index 727421635..10171905c 100755 --- a/tools/rocm-build/build_hipsparse.sh +++ b/tools/rocm-build/build_hipsparse.sh @@ -22,11 +22,12 @@ build_hipsparse() { echo "CXX compiler: $CXX" mkdir -p "$BUILD_DIR" && cd "$BUILD_DIR" + init_rocm_common_cmake_params cmake \ -DCPACK_SET_DESTDIR=OFF \ ${LAUNCHER_FLAGS} \ - $(rocm_common_cmake_params) \ + "${rocm_math_common_cmake_params[@]}" \ -DUSE_CUDA=OFF \ -DBUILD_CLIENTS_SAMPLES=ON \ -DBUILD_CLIENTS_TESTS=ON \ diff --git a/tools/rocm-build/build_hipsparselt.sh b/tools/rocm-build/build_hipsparselt.sh index 99b70edd0..dddff1437 100755 --- a/tools/rocm-build/build_hipsparselt.sh +++ b/tools/rocm-build/build_hipsparselt.sh @@ -28,6 +28,7 @@ build_hipsparselt() { cd $COMPONENT_SRC mkdir -p "$BUILD_DIR" && cd "$BUILD_DIR" + init_rocm_common_cmake_params if [ -n "$GPU_ARCHS" ]; then GPU_TARGETS="$GPU_ARCHS" @@ -41,7 +42,7 @@ build_hipsparselt() { cmake \ -DAMDGPU_TARGETS=${GPU_TARGETS} \ ${LAUNCHER_FLAGS} \ - $(rocm_common_cmake_params) \ + "${rocm_math_common_cmake_params[@]}" \ -DTensile_LOGIC= \ -DTensile_CODE_OBJECT_VERSION=default \ -DTensile_CPU_THREADS= \ diff --git a/tools/rocm-build/build_hiptensor.sh b/tools/rocm-build/build_hiptensor.sh index c239caab9..04346797b 100755 --- a/tools/rocm-build/build_hiptensor.sh +++ b/tools/rocm-build/build_hiptensor.sh @@ -16,6 +16,8 @@ build_hiptensor() { cd "$COMPONENT_SRC" mkdir -p "$BUILD_DIR" && cd "$BUILD_DIR" + init_rocm_common_cmake_params + if [ -n "$GPU_ARCHS" ]; then GPU_TARGETS="$GPU_ARCHS" @@ -25,7 +27,7 @@ build_hiptensor() { cmake \ -B "${BUILD_DIR}" \ - $(rocm_common_cmake_params) \ + "${rocm_math_common_cmake_params[@]}" \ $(set_build_variables CMAKE_C_CXX) \ -DAMDGPU_TARGETS=${GPU_TARGETS} \ ${LAUNCHER_FLAGS} \ diff --git a/tools/rocm-build/build_lightning.sh b/tools/rocm-build/build_lightning.sh index dbf9fae22..ed4ba6bc2 100755 --- a/tools/rocm-build/build_lightning.sh +++ b/tools/rocm-build/build_lightning.sh @@ -17,7 +17,8 @@ printUsage() { echo " -r, --release Build a release version of the package" echo " -a, --address_sanitizer Enable address sanitizer (enabled by default)" echo " -A --no_address_sanitizer Disable address sanitizer" - echo " -s, --static Supports static CI by accepting this param & not bailing out. No effect of the param though" + echo " -s, --static Build static lib (.a). build instead of dynamic/shared(.so) " + echo " -w, --wheel Creates python wheel package of rocm-llvm. It needs to be used along with -r option" echo " -l, --build_llvm_static Build LLVM libraries statically linked. Default is to build dynamic linked libs" echo " -o, --outdir Print path of output directory containing packages of type referred to by pkg_type" @@ -42,6 +43,7 @@ DEB_PATH="$(getDebPath lightning)" RPM_PATH="$(getRpmPath lightning)" INSTALL_PATH="${ROCM_INSTALL_PATH}/lib/llvm" LLVM_ROOT_LCL="${LLVM_ROOT}" +ROCM_WHEEL_DIR="${BUILD_PATH}/_wheel" TARGET="all" MAKEOPTS="$DASH_JAY" @@ -69,14 +71,29 @@ ASSERT_LLVM_VERSION_MINOR="" SKIP_LIT_TESTS=0 BUILD_MANPAGES="ON" +STATIC_FLAG= SANITIZER_AMDGPU=1 HSA_INC_PATH="$WORK_ROOT/ROCR-Runtime/src/inc" COMGR_INC_PATH="$WORK_ROOT/llvm-project/amd/comgr/include" -VALID_STR=`getopt -o htcV:v:draAslo:BPNM --long help,alt,clean,assert_llvm_ver_major:,assert_llvm_ver_minor:,debug,release,address_sanitizer,no_address_sanitizer,static,build_llvm_static,build,package,skip_lit_tests,skip_man_pages,outdir: -- "$@"` +VALID_STR=`getopt -o htcV:v:draAswlo:BPNM --long help,alt,clean,assert_llvm_ver_major:,assert_llvm_ver_minor:,debug,release,address_sanitizer,no_address_sanitizer,static,build_llvm_static,wheel,build,package,skip_lit_tests,skip_man_pages,outdir: -- "$@"` eval set -- "$VALID_STR" +set_dwarf_version(){ + case "$DISTRO_ID" in + (sles*|rhel*) + SET_DWARF_VERSION_4="-gdwarf-4" + ;; + (*) + SET_DWARF_VERSION_4="" + ;; + esac + export CFLAGS="$CFLAGS $SET_DWARF_VERSION_4 " + export CXXFLAGS="$CXXFLAGS $SET_DWARF_VERSION_4 " + export ASMFLAGS="$ASMFLAGS $SET_DWARF_VERSION_4 " +} + while true ; do case "$1" in @@ -95,6 +112,7 @@ do (-r | --release) BUILD_TYPE="Release" ; shift ;; (-a | --address_sanitizer) + set_dwarf_version SANITIZER_AMDGPU=1 ; HSA_INC_PATH="$WORK_ROOT/hsa/runtime/opensrc/hsa-runtime/inc" ; COMGR_INC_PATH="$WORK_ROOT/external/llvm-project/amd/comgr/include" ; shift ;; @@ -103,9 +121,12 @@ do unset HSA_INC_PATH ; unset COMGR_INC_PATH ; shift ;; (-s | --static) - SHARED_LIBS="OFF" ; shift ;; + SHARED_LIBS="OFF" ; + STATIC_FLAG="-DBUILD_SHARED_LIBS=$SHARED_LIBS" ; shift ;; (-l | --build_llvm_static) BUILD_LLVM_DYLIB="OFF"; shift ;; + (-w | --wheel) + WHEEL_PACKAGE=true ; shift ;; (-o | --outdir) TARGET="outdir"; PKGTYPE=$2 ; OUT_DIR_SPECIFIED=1 ; ((CLEAN_OR_OUT|=2)) ; shift 2 ;; (-B | --build) @@ -151,6 +172,7 @@ else fi clean_lightning() { + rm -rf "$ROCM_WHEEL_DIR" rm -rf "$BUILD_PATH" rm -rf "$DEB_PATH" rm -rf "$RPM_PATH" @@ -196,7 +218,10 @@ LLVM_VERSION_MINOR="" LLVM_VERSION_PATCH="" LLVM_VERSION_SUFFIX="" get_llvm_version() { - local LLVM_VERSIONS=($(awk '/set\(LLVM_VERSION/ {print substr($2,1,length($2)-1)}' ${LLVM_ROOT_LCL}/CMakeLists.txt)) + local LLVM_VERSIONS=($(awk '/set\(LLVM_VERSION/ {print substr($2,1,length($2)-1)}' ${LLVM_ROOT_LCL}/../cmake/Modules/LLVMVersion.cmake)) + if [ ${#LLVM_VERSIONS[@]} -eq 0 ]; then + LLVM_VERSIONS=($(awk '/set\(LLVM_VERSION/ {print substr($2,1,length($2)-1)}' ${LLVM_ROOT_LCL}/CMakeLists.txt)) + fi LLVM_VERSION_MAJOR=${LLVM_VERSIONS[0]} LLVM_VERSION_MINOR=${LLVM_VERSIONS[1]} LLVM_VERSION_PATCH=${LLVM_VERSIONS[2]} @@ -260,15 +285,22 @@ build_lightning() { if [ ! -e Makefile ]; then echo "Building LLVM CMake environment" - if [ -e "$LLVM_ROOT_LCL/../flang/docs/AssumedRank.md" ]; then - FLANG_NEW=1 - LLVM_PROJECTS="$LLVM_PROJECTS;flang;mlir" - else - echo "NOT building project flang" - fi + if [ -e "$LLVM_ROOT_LCL/../flang/AFARrelease" ]; then + FLANG_NEW=1 + LLVM_PROJECTS="$LLVM_PROJECTS;flang;mlir" + ENABLE_RUNTIMES="$ENABLE_RUNTIMES;openmp"; + else + if [[ "${JOB_NAME}" != *afar* ]] && [ -e "$LLVM_ROOT_LCL/../flang/DoROCmRelease" ]; then + FLANG_NEW=1 + LLVM_PROJECTS="$LLVM_PROJECTS;flang;mlir" + else + echo "NOT building project flang" + fi + fi set -x cmake $(rocm_cmake_params) ${GEN_NINJA} \ + ${STATIC_FLAG} \ -DCMAKE_INSTALL_PREFIX="$INSTALL_PATH" \ -DLLVM_TARGETS_TO_BUILD="AMDGPU;X86" \ -DLLVM_ENABLE_PROJECTS="$LLVM_PROJECTS" \ @@ -307,9 +339,9 @@ build_lightning() { -DCMAKE_SHARED_LINKER_FLAGS=-Wl,--enable-new-dtags,--build-id=sha1,--rpath,$ROCM_LLVM_LIB_RPATH \ -DROCM_LLVM_BACKWARD_COMPAT_LINK="$ROCM_INSTALL_PATH/llvm" \ -DROCM_LLVM_BACKWARD_COMPAT_LINK_TARGET="./lib/llvm" \ - -DCLANG_LINK_FLANG_LEGACY=ON \ - -DCMAKE_CXX_STANDARD=17 \ - -DFLANG_INCLUDE_DOCS=OFF \ + -DCLANG_LINK_FLANG_LEGACY=ON \ + -DCMAKE_CXX_STANDARD=17 \ + -DFLANG_INCLUDE_DOCS=OFF \ "$LLVM_ROOT_LCL" set +x echo "CMake complete" @@ -326,8 +358,23 @@ build_lightning() { echo "End Workaround for race condition" cmake --build . -- $MAKEOPTS + case "$DISTRO_ID" in + (rhel*|centos*) + RHEL_BUILD=1 + ;; + (*) + RHEL_BUILD=0 + ;; + esac + if [ $SKIP_LIT_TESTS -eq 0 ]; then - if [ "$DISTRO_NAME" != "sles" ] && [ $BUILD_ALT != 1 ]; then + if [ $RHEL_BUILD -eq 1 ] && [ $BUILD_ALT != 1 ]; then + if [ $FLANG_NEW -eq 1 ]; then + cmake --build . -- $MAKEOPTS check-lld check-mlir + else + cmake --build . -- $MAKEOPTS check-lld + fi + elif [ "$DISTRO_NAME" != "sles" ] && [ $BUILD_ALT != 1 ]; then if [ $FLANG_NEW -eq 1 ]; then cmake --build . -- $MAKEOPTS check-llvm check-clang check-lld check-mlir else @@ -733,7 +780,7 @@ package_lightning_static() { local amd_compiler_commands=("amdclang" "amdclang++" "amdclang-cl" "amdclang-cpp" "amdflang" "amdlld" "offload-arch") local amd_man_pages=("amdclang.1.gz" "flang.1.gz" "amdflang.1.gz") local core_bin=("amdgpu-arch" "amdgpu-offload-arch" "amdlld" "amdllvm" "clang" "clang++" "clang-${LLVM_VERSION_MAJOR}" "clang-cl" - "clang-cpp" "clang-build-select-link" "clang-offload-bundler" "clang-offload-packager" "clang-offload-wrapper" "flang" "flang-new" + "clang-cpp" "clang-build-select-link" "clang-offload-bundler" "clang-offload-packager" "clang-offload-wrapper" "clang-linker-wrapper" "clang-nvlink-wrapper" "flang" "flang-new" "ld64.lld" "ld.lld" "llc" "lld" "lld-link" "llvm-ar" "llvm-bitcode-strip" "llvm-dwarfdump" "llvm-install-name-tool" "llvm-link" "llvm-mc" "llvm-objcopy" "llvm-objdump" "llvm-otool" "llvm-ranlib" "llvm-readelf" "llvm-readobj" "llvm-strip" "nvidia-arch" "nvptx-arch" "offload-arch" "opt" "wasm-ld" "amdclang" "amdclang++" "amdclang-${LLVM_VERSION_MAJOR}" "amdclang-cl" @@ -934,7 +981,7 @@ package_lightning_static() { if [ $BUILD_ALT -eq 0 ]; then echo "cp -R $LLVM_ROOT_LCL/LICENSE.TXT \$RPM_BUILD_ROOT/$licenseDir" >> $specFile - echo "cp -P $backwardsCompatibleSymlink \$RPM_BUILD_ROOT/$ROCM_INSTALL_PATH" >> $specFile + echo "cp -P $backwardsCompatibleSymlink \$RPM_BUILD_ROOT/$ROCM_INSTALL_PATH" >> $specFile else echo "cp -R $LLVM_PROJECT_ALT_ROOT/EULA \$RPM_BUILD_ROOT/$licenseDir" >> $specFile echo "cp -R $LLVM_PROJECT_ALT_ROOT/DISCLAIMER.txt \$RPM_BUILD_ROOT/$licenseDir" >> $specFile @@ -948,7 +995,6 @@ package_lightning_static() { echo "cp -d \"$distBin/flang\" \$RPM_BUILD_ROOT/$installPath/bin/" >> $specFile - # Copy the config files if [ $BUILD_ALT -eq 0 ]; then echo "cp -d \"$distBin\"/*.cfg \$RPM_BUILD_ROOT/$installPath/bin/" >> $specFile fi @@ -970,14 +1016,12 @@ package_lightning_static() { if [ "$BUILD_MANPAGES" == "ON" ]; then if [ $BUILD_ALT -eq 0 ]; then echo "mkdir -p \$RPM_BUILD_ROOT/$installPath/share/man/man1" >> $specFile - for i in "${core_man_pages[@]}"; do if [ -f "$distMan/man1/$i" ]; then echo "gzip -f $distMan/man1/$i" >> $specFile echo "cp -d $distMan/man1/${i}.gz \$RPM_BUILD_ROOT/$installPath/share/man/man1/" >> $specFile fi done - if [ -f "$distMan/man1/clang.1.gz" ]; then for i in "${amd_man_pages[@]}"; do echo "ln -sf clang.1.gz \"$distMan/man1/$i\"" >> $specFile @@ -1064,7 +1108,6 @@ package_lightning_static() { contains "$bin" "${core_bin[@]}" "${amd_compiler_commands[@]}" && continue echo "cp -d \"$i\" \$RPM_BUILD_ROOT/$installPath/bin/" >> $specFileExtra done - for i in "$distLib"/*; do lib=$(basename "$i") contains "$lib" "${core_lib[@]}" && continue @@ -1072,18 +1115,15 @@ package_lightning_static() { done echo "cp -R $distInc \$RPM_BUILD_ROOT/$installPath" >> $specFileExtra - echo "rm -rf \$RPM_BUILD_ROOT/$installPath/lib/clang" >> $specFileExtra if [ $FLANG_NEW -eq 1 ]; then - echo "rm -rf \$RPM_BUILD_ROOT/$installPath/include/flang" >> $specFileExtra fi if [ "$BUILD_MANPAGES" == "ON" ]; then if [ $BUILD_ALT -eq 0 ]; then echo "mkdir -p \$RPM_BUILD_ROOT/$installPath/share/man/man1" >> $specFileExtra - for i in "${extra_man_pages[@]}"; do if [ -f "$distMan/man1/$i" ]; then echo "gzip -f $distMan/man1/$i" >> $specFileExtra @@ -1125,34 +1165,34 @@ package_docs() { local packageName="rocm-llvm-docs" local packageSummary="ROCm LLVM compiler documentation" local packageSummaryLong="Documenation for LLVM $llvmParsedVersion" - local installPath="$ROCM_INSTALL_PATH/lib/llvm/share" local packageArch="amd64" local packageVersion="${llvmParsedVersion}.${LLVM_COMMIT_GITDATE}" local packageMaintainer="ROCm Compiler Support " - local distDoc="$INSTALL_PATH/share/doc" + local distDoc="$INSTALL_PATH/share/doc/LLVM" local licenseDir="$ROCM_INSTALL_PATH/share/doc/$packageName" local packageDir="$BUILD_PATH/package" local packageDeb="$packageDir/deb" local controlFile="$packageDeb/DEBIAN/control" + local debDependencies="rocm-core" local packageRpm="$packageDir/rpm" local specFile="$packageDir/$packageName.spec" + local rpmRequires="rocm-core" rm -rf "$packageDir" echo "rm -rf $packageDir" if [ "$PACKAGEEXT" = "deb" ]; then - mkdir -p "$packageDeb/$installPath" - mkdir "${controlFile%/*}" mkdir -p "$packageDeb/$licenseDir" + mkdir "${controlFile%/*}" cp -r "$LLVM_ROOT_LCL/LICENSE.TXT" "$packageDeb/$licenseDir" - cp -r "$distDoc" "$packageDeb/$installPath/doc" + cp -r "$distDoc" "$packageDeb/$licenseDir" { echo "Package: $packageName" @@ -1162,6 +1202,7 @@ package_docs() { echo "Maintainer: $packageMaintainer" echo "Version: ${packageVersion}.${ROCM_LIBPATCH_VERSION}-${JOB_DESIGNATOR}${BUILD_ID}~${DISTRO_RELEASE}" echo "Release: ${JOB_DESIGNATOR}${BUILD_ID}~${DISTRO_RELEASE}" + echo "Depends: $debDependencies" echo "Recommends: $debRecommends" echo "Description: $packageSummary" echo " $packageSummaryLong" @@ -1182,6 +1223,7 @@ package_docs() { echo "Summary: $packageSummary" >> $specFile echo "Group: System Environment/Libraries" >> $specFile echo "License: ASL 2.0 with exceptions" >> $specFile + echo "Requires: $rpmRequires" >> $specFile echo "%description" >> $specFile echo "$packageSummaryLong" >> $specFile @@ -1190,16 +1232,13 @@ package_docs() { echo "%setup -T -D -c -n $packageName" >> $specFile echo "%install" >> $specFile - echo "rm -rf \$RPM_BUILD_ROOT/$installPath" >> $specFile - echo "mkdir -p \$RPM_BUILD_ROOT/$installPath/doc" >> $specFile echo "mkdir -p \$RPM_BUILD_ROOT/$licenseDir" >> $specFile echo "cp -R $LLVM_ROOT_LCL/LICENSE.TXT \$RPM_BUILD_ROOT/$licenseDir" >> $specFile - echo "cp -R \"$distDoc\" \$RPM_BUILD_ROOT/$installPath" >> $specFile + echo "cp -R \"$distDoc\" \$RPM_BUILD_ROOT/$licenseDir" >> $specFile echo "%clean" >> $specFile - echo "rm -rf \$RPM_BUILD_ROOT/$installPath" >> $specFile echo "%files " >> $specFile echo "%defattr(-,root,root,-)" >> $specFile @@ -1232,6 +1271,18 @@ build() { fi } +create_wheel_package() { + echo "Creating rocm-llvm wheel package" + mkdir -p "$ROCM_WHEEL_DIR" + cp -f $SCRIPT_ROOT/generate_setup_py.py $ROCM_WHEEL_DIR + cp -f $SCRIPT_ROOT/repackage_wheel.sh $ROCM_WHEEL_DIR + cd $ROCM_WHEEL_DIR + # Currently only supports python3.6 + ./repackage_wheel.sh $RPM_PATH/rocm-llvm*.rpm python3.6 + # Copy the wheel created to RPM folder which will be uploaded to artifactory + mv "$ROCM_WHEEL_DIR"/dist/*.whl "$RPM_PATH" +} + case $TARGET in (clean) clean_lightning ;; (all) @@ -1250,4 +1301,9 @@ case $TARGET in (*) die "Invalid target $TARGET" ;; esac +if [[ $WHEEL_PACKAGE == true ]]; then + echo "Wheel Package build started !!!!" + create_wheel_package +fi + echo "Operation complete" diff --git a/tools/rocm-build/build_miopen-deps.sh b/tools/rocm-build/build_miopen-deps.sh index 48910fac0..51bd23f1a 100755 --- a/tools/rocm-build/build_miopen-deps.sh +++ b/tools/rocm-build/build_miopen-deps.sh @@ -44,7 +44,7 @@ build_miopen_deps() { cd "$COMPONENT_SRC" # Commenting the rocMLIR & composable_kernel from requirements.txt - sed -i '/ROCmSoftwarePlatform\/rocMLIR@\|ROCmSoftwarePlatform\/composable_kernel@/s/^/#/' requirements.txt + sed -i '/ROCm\/rocMLIR@\|ROCm\/composable_kernel@/s/^/#/' requirements.txt # Extract MLIR commit from requirements.txt MLIR_COMMIT="$(awk '/rocMLIR/ {split($1, s, "@"); print s[2]}' requirements.txt)" diff --git a/tools/rocm-build/build_miopen-hip.sh b/tools/rocm-build/build_miopen-hip.sh index e4267b96d..b07c0f484 100755 --- a/tools/rocm-build/build_miopen-hip.sh +++ b/tools/rocm-build/build_miopen-hip.sh @@ -13,7 +13,7 @@ build_miopen_hip() { echo "Start build" cd $COMPONENT_SRC - + git config --global --add safe.directory "$COMPONENT_SRC" checkout_lfs if [ "${ENABLE_ADDRESS_SANITIZER}" == "true" ]; then @@ -22,8 +22,9 @@ build_miopen_hip() { fi mkdir "$BUILD_DIR" && cd "$BUILD_DIR" + init_rocm_common_cmake_params cmake \ - $(rocm_common_cmake_params) \ + "${rocm_math_common_cmake_params[@]}" \ -DMIOPEN_BACKEND=HIP \ -DCMAKE_CXX_COMPILER="${ROCM_PATH}/llvm/bin/clang++" \ -DCMAKE_C_COMPILER="${ROCM_PATH}/llvm/bin/clang" \ diff --git a/tools/rocm-build/build_mivisionx.sh b/tools/rocm-build/build_mivisionx.sh index 7bfe40dc3..ae37444b5 100755 --- a/tools/rocm-build/build_mivisionx.sh +++ b/tools/rocm-build/build_mivisionx.sh @@ -16,6 +16,8 @@ build_mivisionx() { BUILD_DEV=OFF fi + init_rocm_common_cmake_params + if [ -n "$GPU_ARCHS" ]; then GPU_TARGETS="$GPU_ARCHS" else @@ -23,7 +25,7 @@ build_mivisionx() { fi cmake \ - $(rocm_common_cmake_params) \ + "${rocm_math_common_cmake_params[@]}" \ -DROCM_PATH="$ROCM_PATH" \ -DBUILD_DEV=$BUILD_DEV \ -DCMAKE_INSTALL_LIBDIR=$(getInstallLibDir) \ @@ -34,6 +36,7 @@ build_mivisionx() { "$COMPONENT_SRC" cmake --build "$BUILD_DIR" -- -j${PROC} + cmake --build "$BUILD_DIR" -- install cpack -G ${PKGTYPE^^} rm -rf _CPack_Packages/ && find -name '*.o' -delete diff --git a/tools/rocm-build/build_omniperf.sh b/tools/rocm-build/build_omniperf.sh new file mode 100755 index 000000000..78ac7ab9a --- /dev/null +++ b/tools/rocm-build/build_omniperf.sh @@ -0,0 +1,171 @@ +#!/bin/bash + +source "$(dirname "${BASH_SOURCE}")/compute_utils.sh" + +printUsage() { + echo + echo "Usage: ${BASH_SOURCE##*/} [options ...]" + echo + echo "Options:" + echo " -c, --clean Clean output and delete all intermediate work" + echo " -s, --static Build static lib (.a). build instead of dynamic/shared(.so) " + echo " -p, --package Specify packaging format" + echo " -r, --release Make a release build instead of a debug build" + echo " -a, --address_sanitizer Enable address sanitizer" + echo " -o, --outdir Print path of output directory containing packages of + type referred to by pkg_type" + echo " -w, --wheel Creates python wheel package of omniperf. + It needs to be used along with -r option" + echo " -h, --help Prints this help" + echo + echo "Possible values for :" + echo " deb -> Debian format (default)" + echo " rpm -> RPM format" + echo + + return 0 +} + +API_NAME="omniperf" +PROJ_NAME="$API_NAME" +LIB_NAME="lib${API_NAME}" +TARGET="build" +MAKETARGET="deb" +PACKAGE_ROOT="$(getPackageRoot)" +PACKAGE_LIB="$(getLibPath)" +BUILD_DIR="$(getBuildPath $API_NAME)" +PACKAGE_DEB="$(getPackageRoot)/deb/$API_NAME" +PACKAGE_RPM="$(getPackageRoot)/rpm/$API_NAME" +ROCM_WHEEL_DIR="${BUILD_DIR}/_wheel" +BUILD_TYPE="Debug" +MAKE_OPTS="$DASH_JAY -C $BUILD_DIR" +SHARED_LIBS="ON" +CLEAN_OR_OUT=0; +MAKETARGET="deb" +PKGTYPE="deb" +WHEEL_PACKAGE=false + + +#parse the arguments +VALID_STR=$(getopt -o hcraso:p:w --long help,clean,release,static,address_sanitizer,outdir:,package:,wheel -- "$@") +eval set -- "$VALID_STR" + +while true ; +do + case "$1" in + -h | --help) + printUsage ; exit 0;; + -c | --clean) + TARGET="clean" ; ((CLEAN_OR_OUT|=1)) ; shift ;; + -r | --release) + BUILD_TYPE="Release" ; shift ;; + -a | --address_sanitizer) + set_asan_env_vars + set_address_sanitizer_on ; shift ;; + -s | --static) + SHARED_LIBS="OFF" ; shift ;; + -o | --outdir) + TARGET="outdir"; PKGTYPE=$2 ; OUT_DIR_SPECIFIED=1 ; ((CLEAN_OR_OUT|=2)) ; shift 2 ;; + -p | --package) + MAKETARGET="$2" ; shift 2 ;; + -w | --wheel) + WHEEL_PACKAGE=true ; shift ;; + --) shift; break;; # end delimiter + *) + echo " This should never come but just incase : UNEXPECTED ERROR Parm : [$1] ">&2 ; exit 20;; + esac + +done + +RET_CONFLICT=1 +check_conflicting_options "$CLEAN_OR_OUT" "$PKGTYPE" "$MAKETARGET" +if [ $RET_CONFLICT -ge 30 ]; then + print_vars "$API_NAME" "$TARGET" "$BUILD_TYPE" "$SHARED_LIBS" "$CLEAN_OR_OUT" "$PKGTYPE" "$MAKETARGET" + exit $RET_CONFLICT +fi + +clean() { + echo "Cleaning $PROJ_NAME" + rm -rf "$ROCM_WHEEL_DIR" + rm -rf "$BUILD_DIR" + rm -rf "$PACKAGE_DEB" + rm -rf "$PACKAGE_RPM" + rm -rf "$PACKAGE_ROOT/${PROJ_NAME:?}" + rm -rf "$PACKAGE_LIB/${LIB_NAME:?}"* +} + +build() { + echo "Building $PROJ_NAME" + if [ "$DISTRO_ID" = centos-7 ]; then + echo "Skip make and uploading packages for Omniperf on Centos7 distro, due to python dependency" + exit 0 + fi + + if [ ! -d "$BUILD_DIR" ]; then + mkdir -p "$BUILD_DIR" + pushd "$BUILD_DIR" || exit + + echo "ROCm CMake Params: $(rocm_cmake_params)" + echo "ROCm Common CMake Params: $(rocm_common_cmake_params)" + + print_lib_type $SHARED_LIBS + cmake \ + $(rocm_cmake_params) \ + $(rocm_common_cmake_params) \ + -DCHECK_PYTHON_DEPS=NO \ + -DPYTHON_DEPS=${BUILD_DIR}/python-libs \ + -DMOD_INSTALL_PATH=${BUILD_DIR}/modulefiles \ + "$OMNIPERF_ROOT" + fi + + make $MAKE_OPTS + make $MAKE_OPTS install + make $MAKE_OPTS package + + copy_if DEB "${CPACKGEN:-"DEB;RPM"}" "$PACKAGE_DEB" "$BUILD_DIR/${API_NAME}"*.deb + copy_if RPM "${CPACKGEN:-"DEB;RPM"}" "$PACKAGE_RPM" "$BUILD_DIR/${API_NAME}"*.rpm +} + +create_wheel_package() { + echo "Creating Omniperf wheel package" + + # Copy the setup.py generator to build folder + mkdir -p "$ROCM_WHEEL_DIR" + cp -f "$SCRIPT_ROOT"/generate_setup_py.py "$ROCM_WHEEL_DIR" + cp -f "$SCRIPT_ROOT"/repackage_wheel.sh "$ROCM_WHEEL_DIR" + cd "$ROCM_WHEEL_DIR" || exit + + # Currently only supports python3.6 + ./repackage_wheel.sh "$BUILD_DIR"/*.rpm python3.6 + + # Copy the wheel created to RPM folder which will be uploaded to artifactory + copy_if WHL "WHL" "$PACKAGE_RPM" "$ROCM_WHEEL_DIR"/dist/*.whl +} + +print_output_directory() { + case ${PKGTYPE} in + ("deb") + echo "${PACKAGE_DEB}";; + ("rpm") + echo "${PACKAGE_RPM}";; + (*) + echo "Invalid package type \"${PKGTYPE}\" provided for -o" >&2; exit 1;; + esac + exit +} + +verifyEnvSetup + +case "$TARGET" in + (clean) clean ;; + (build) build ;; + (outdir) print_output_directory ;; + (*) die "Invalid target $TARGET" ;; +esac + +if [[ $WHEEL_PACKAGE == true ]]; then + echo "Wheel Package build started !!!!" + create_wheel_package +fi + +echo "Operation complete" \ No newline at end of file diff --git a/tools/rocm-build/build_omnitrace.sh b/tools/rocm-build/build_omnitrace.sh new file mode 100755 index 000000000..c604351de --- /dev/null +++ b/tools/rocm-build/build_omnitrace.sh @@ -0,0 +1,191 @@ +#!/bin/bash + +source "$(dirname "${BASH_SOURCE}")/compute_utils.sh" + +printUsage() { + echo + echo "Usage: ${BASH_SOURCE##*/} [options ...]" + echo + echo "Options:" + echo " -c, --clean Clean output and delete all intermediate work" + echo " -s, --static Build static lib (.a). build instead of dynamic/shared(.so) " + echo " -p, --package Specify packaging format" + echo " -r, --release Make a release build instead of a debug build" + echo " -a, --address_sanitizer Enable address sanitizer" + echo " -o, --outdir Print path of output directory containing packages of + type referred to by pkg_type" + echo " -w, --wheel Creates python wheel package of omnitrace. + It needs to be used along with -r option" + echo " -h, --help Prints this help" + echo + echo "Possible values for :" + echo " deb -> Debian format (default)" + echo " rpm -> RPM format" + echo + + return 0 +} + +API_NAME="omnitrace" +PROJ_NAME="$API_NAME" +LIB_NAME="lib${API_NAME}" +TARGET="build" +MAKETARGET="deb" +PACKAGE_ROOT="$(getPackageRoot)" +PACKAGE_LIB="$(getLibPath)" +BUILD_DIR="$(getBuildPath $API_NAME)" +PACKAGE_DEB="$(getPackageRoot)/deb/$API_NAME" +PACKAGE_RPM="$(getPackageRoot)/rpm/$API_NAME" +BUILD_TYPE="Debug" +MAKE_OPTS="-j 8" +SHARED_LIBS="ON" +CLEAN_OR_OUT=0 +MAKETARGET="deb" +PKGTYPE="deb" +ASAN=0 + +#parse the arguments +VALID_STR=$(getopt -o hcraso:p:w --long help,clean,release,address_sanitizer,static,outdir:,package:,wheel -- "$@") +eval set -- "$VALID_STR" + +while true; do + case "$1" in + -h | --help) + printUsage + exit 0 + ;; + -c | --clean) + TARGET="clean" + ((CLEAN_OR_OUT |= 1)) + shift + ;; + -r | --release) + BUILD_TYPE="RelWithDebInfo" + shift + ;; + -a | --address_sanitizer) + ack_and_ignore_asan + + ASAN=1 + shift + ;; + -s | --static) + SHARED_LIBS="OFF" + shift + ;; + -o | --outdir) + TARGET="outdir" + PKGTYPE=$2 + ((CLEAN_OR_OUT |= 2)) + shift 2 + ;; + -p | --package) + MAKETARGET="$2" + shift 2 + ;; + -w | --wheel) + echo "omnitrace: wheel build option accepted and ignored" + shift + ;; + --) + shift + break + ;; + *) + echo " This should never come but just incase : UNEXPECTED ERROR Parm : [$1] " >&2 + exit 20 + ;; + esac + +done + +RET_CONFLICT=1 +check_conflicting_options $CLEAN_OR_OUT $PKGTYPE $MAKETARGET +if [ $RET_CONFLICT -ge 30 ]; then + print_vars $API_NAME $TARGET $BUILD_TYPE $SHARED_LIBS $CLEAN_OR_OUT $PKGTYPE $MAKETARGET + exit $RET_CONFLICT +fi + +clean() { + echo "Cleaning $PROJ_NAME" + rm -rf "$BUILD_DIR" + rm -rf "$PACKAGE_DEB" + rm -rf "$PACKAGE_RPM" + rm -rf "$PACKAGE_ROOT/${PROJ_NAME:?}" + rm -rf "$PACKAGE_LIB/${LIB_NAME:?}"* +} + +build_omnitrace() { + echo "Building $PROJ_NAME" + if [ "$DISTRO_ID" = "mariner-2.0" ] || [ "$DISTRO_ID" = "ubuntu-24.04" ] || [ "$DISTRO_ID" = "azurelinux-3.0" ]; then + echo "Skip make and uploading packages for Omnitrace on \"${DISTRO_ID}\" distro" + exit 0 + fi + + if [ $ASAN == 1 ]; then + echo "Skip make and uploading packages for Omnitrace on ASAN build" + exit 0 + fi + if [ ! -d "$BUILD_DIR" ]; then + mkdir -p "$BUILD_DIR" + echo "Created build directory: $BUILD_DIR" + fi + + echo "Build directory: $BUILD_DIR" + pushd "$BUILD_DIR" || exit + print_lib_type $SHARED_LIBS + + echo "ROCm CMake Params: $(rocm_cmake_params)" + echo "ROCm Common CMake Params: $(rocm_common_cmake_params)" + + + if [ $ASAN == 1 ]; then + echo "Address Sanitizer path" + + else + cmake \ + $(rocm_cmake_params) \ + $(rocm_common_cmake_params) \ + -DOMNITRACE_BUILD_{LIBUNWIND,DYNINST}=ON \ + -DDYNINST_BUILD_{TBB,BOOST,ELFUTILS,LIBIBERTY}=ON \ + "$OMNITRACE_ROOT" + fi + + + popd || exit + + echo "Make Options: $MAKE_OPTS" + cmake --build "$BUILD_DIR" --target all -- $MAKE_OPTS + cmake --build "$BUILD_DIR" --target install -- $MAKE_OPTS + cmake --build "$BUILD_DIR" --target package -- $MAKE_OPTS + + copy_if DEB "${CPACKGEN:-"DEB;RPM"}" "$PACKAGE_DEB" "$BUILD_DIR/${API_NAME}"*.deb + copy_if RPM "${CPACKGEN:-"DEB;RPM"}" "$PACKAGE_RPM" "$BUILD_DIR/${API_NAME}"*.rpm +} + +print_output_directory() { + case ${PKGTYPE} in + "deb") + echo "${PACKAGE_DEB}" + ;; + "rpm") + echo "${PACKAGE_RPM}" + ;; + *) + echo "Invalid package type \"${PKGTYPE}\" provided for -o" >&2 + exit 1 + ;; + esac + exit +} + +verifyEnvSetup + +case "$TARGET" in +clean) clean ;; +build) build_omnitrace ;; +outdir) print_output_directory ;; +*) die "Invalid target $TARGET" ;; +esac + +echo "Operation complete" diff --git a/tools/rocm-build/build_opencl_icd_loader.sh b/tools/rocm-build/build_opencl_icd_loader.sh new file mode 100755 index 000000000..1e74d1cb9 --- /dev/null +++ b/tools/rocm-build/build_opencl_icd_loader.sh @@ -0,0 +1,141 @@ +#!/bin/bash + +source "$(dirname "${BASH_SOURCE}")/compute_utils.sh" +PROJ_NAME=OpenCL-ICD-Loader +TARGET="build" +MAKEOPTS="$DASH_JAY" +BUILD_TYPE="Debug" +PACKAGE_ROOT="$(getPackageRoot)" +PACKAGE_DEB="$PACKAGE_ROOT/deb/${PROJ_NAME,,}" +PACKAGE_RPM="$PACKAGE_ROOT/rpm/${PROJ_NAME,,}" +CLEAN_OR_OUT=0; +PKGTYPE="deb" +MAKETARGET="deb" +API_NAME="rocm-opencl-icd-loader" + +printUsage() { + echo + echo "Usage: $(basename "${BASH_SOURCE}") [options ...]" + echo + echo "Options:" + echo " -c, --clean Clean output and delete all intermediate work" + echo " -p, --package Specify packaging format" + echo " -r, --release Make a release build instead of a debug build" + echo " -h, --help Prints this help" + echo " -o, --outdir Print path of output directory containing packages" + echo " -s, --static Component/Build does not support static builds just accepting this param & ignore. No effect of the param on this build" + echo + echo "Possible values for :" + echo " deb -> Debian format (default)" + echo " rpm -> RPM format" + echo + return 0 +} + +RET_CONFLICT=1 +check_conflicting_options $CLEAN_OR_OUT $PKGTYPE $MAKETARGET +if [ $RET_CONFLICT -ge 30 ]; then + print_vars $TARGET $BUILD_TYPE $CLEAN_OR_OUT $PKGTYPE $MAKETARGET + exit $RET_CONFLICT +fi + +clean_opencl_icd_loader() { + echo "Cleaning $PROJ_NAME" + rm -rf "$PACKAGE_DEB" + rm -rf "$PACKAGE_RPM" + rm -rf "$PACKAGE_ROOT/${PROJ_NAME,,}" +} + +copy_pkg_files_to_rocm() { + local comp_folder=$1 + local comp_pkg_name=$2 + + cd "${OUT_DIR}/${PKGTYPE}/${comp_folder}"|| exit 2 + if [ "${PKGTYPE}" = 'deb' ]; then + dpkg-deb -x ${comp_pkg_name}_*.deb pkg/ + else + mkdir pkg && pushd pkg/ || exit 2 + if [[ "${comp_pkg_name}" != *-dev* ]]; then + rpm2cpio ../${comp_pkg_name}-*.rpm | cpio -idmv + else + rpm2cpio ../${comp_pkg_name}el-*.rpm | cpio -idmv + fi + popd || exit 2 + fi + ls ./pkg -alt + cp -r ./pkg/*/rocm*/* "${ROCM_PATH}" || exit 2 + rm -rf pkg/ +} + +build_opencl_icd_loader() { + echo "Downloading $PROJ_NAME" package + if [ "$DISTRO_NAME" = ubuntu ]; then + mkdir -p "$PACKAGE_DEB" + local rocm_ver=${ROCM_VERSION} + if [ ${ROCM_VERSION##*.} = 0 ]; then + rocm_ver=${ROCM_VERSION%.*} + fi + local url="https://repo.radeon.com/rocm/apt/${rocm_ver}/pool/main/r/${API_NAME}/" + local package + package=$(curl -s "$url" | grep -Po 'href="\K[^"]*' | grep "${DISTRO_RELEASE}" | head -n 1) + + if [ -z "$package" ]; then + echo "No package found for Ubuntu version $DISTRO_RELEASE" + exit 1 + fi + + wget -t3 -P "$PACKAGE_DEB" "${url}${package}" + copy_pkg_files_to_rocm ${PROJ_NAME,,} ${API_NAME} + else + echo "$DISTRO_ID is not supported..." + exit 2 + fi + + echo "Installing $PROJ_NAME" package +} + +print_output_directory() { + case ${PKGTYPE} in + ("deb") + echo ${PACKAGE_DEB};; + ("rpm") + echo ${PACKAGE_RPM};; + (*) + echo "Invalid package type \"${PKGTYPE}\" provided for -o" >&2; exit 1;; + esac + exit +} + +VALID_STR=`getopt -o hcraswlo:p: --long help,clean,release,outdir:,package: -- "$@"` +eval set -- "$VALID_STR" +while true ; +do + case "$1" in + (-c | --clean ) + TARGET="clean" ; ((CLEAN_OR_OUT|=1)) ; shift ;; + (-r | --release ) + BUILD_TYPE="RelWithDebInfo" ; shift ;; + (-h | --help ) + printUsage ; exit 0 ;; + (-a | --address_sanitizer) + ack_and_ignore_asan ; shift ;; + (-o | --outdir) + TARGET="outdir"; PKGTYPE=$2 ; OUT_DIR_SPECIFIED=1 ; ((CLEAN_OR_OUT|=2)) ; shift 2 ;; + (-p | --package) + MAKETARGET="$2" ; shift 2;; + (-s | --static) + echo "-s parameter accepted but ignored" ; shift ;; + --) shift; break;; + (*) + echo " This should never come but just incase : UNEXPECTED ERROR Parm : [$1] ">&2 ; exit 20;; + esac +done + +case $TARGET in + (clean) clean_opencl_icd_loader ;; + (build) build_opencl_icd_loader ;; + (outdir) print_output_directory ;; + (*) die "Invalid target $TARGET" ;; +esac + +echo "Operation complete" diff --git a/tools/rocm-build/build_rccl.sh b/tools/rocm-build/build_rccl.sh index f6c420474..3dd3d3bd5 100755 --- a/tools/rocm-build/build_rccl.sh +++ b/tools/rocm-build/build_rccl.sh @@ -26,14 +26,16 @@ build_rccl() { GPU_TARGETS="gfx908:xnack-;gfx90a:xnack-;gfx90a:xnack+;gfx940;gfx941;gfx942;gfx1030;gfx1100;gfx1101" fi + init_rocm_common_cmake_params CC=${ROCM_PATH}/bin/amdclang \ CXX=$(set_build_variables CXX) \ cmake \ - $(rocm_common_cmake_params) \ + "${rocm_math_common_cmake_params[@]}" \ -DAMDGPU_TARGETS=${GPU_TARGETS} \ -DHIP_COMPILER=clang \ -DCMAKE_PREFIX_PATH="${ROCM_PATH};${ROCM_PATH}/share/rocm/cmake/" \ + ${LAUNCHER_FLAGS} \ -DCPACK_GENERATOR="${PKGTYPE^^}" \ -DROCM_PATCH_VERSION=$ROCM_LIBPATCH_VERSION \ -DBUILD_ADDRESS_SANITIZER="${ADDRESS_SANITIZER}" \ diff --git a/tools/rocm-build/build_rocal.sh b/tools/rocm-build/build_rocal.sh new file mode 100755 index 000000000..8bf5e3a97 --- /dev/null +++ b/tools/rocm-build/build_rocal.sh @@ -0,0 +1,71 @@ +#!/bin/bash + +set -ex +source "$(dirname "${BASH_SOURCE[0]}")/compute_helper.sh" + +set_component_src rocAL + +build_rocal() { + + if [ "$DISTRO_ID" = "mariner-2.0" ] ; then + echo "Not building rocal for ${DISTRO_ID}. Exiting..." + return 0 + fi + + echo "Start build" + + # Enable ASAN + if [ "${ENABLE_ADDRESS_SANITIZER}" == "true" ]; then + set_asan_env_vars + set_address_sanitizer_on + fi + +# python3 ${COMPONENT_SRC}/rocAL-setup.py + pushd /tmp + # PyBind11 + git clone -b v2.11.1 https://github.com/pybind/pybind11 + cd pybind11 && mkdir build && cd build + cmake -DDOWNLOAD_CATCH=ON -DDOWNLOAD_EIGEN=ON ../ + make -j$(nproc) && sudo make install + cd ../.. + # Turbo JPEG + git clone -b 3.0.2 https://github.com/libjpeg-turbo/libjpeg-turbo.git + cd libjpeg-turbo && mkdir build && cd build + cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=RELEASE -DENABLE_STATIC=FALSE -DCMAKE_INSTALL_DEFAULT_LIBDIR=lib -DWITH_JPEG8=TRUE .. + make -j$(nproc) && sudo make install + cd ../.. + # RapidJSON + git clone https://github.com/Tencent/rapidjson.git + cd rapidjson && mkdir build && cd build + cmake .. && make -j$(nproc) && sudo make install + popd + + mkdir -p $BUILD_DIR && cd $BUILD_DIR + + cmake -DAMDRPP_PATH=$ROCM_PATH ${COMPONENT_SRC} + make -j${PROC} + cmake --build . --target PyPackageInstall + sudo make install + sudo make package + sudo chown -R $(id -u):$(id -g) ${BUILD_DIR} + + rm -rf _CPack_Packages/ && find -name '*.o' -delete + mkdir -p $PACKAGE_DIR + cp ${BUILD_DIR}/*.${PKGTYPE} $PACKAGE_DIR + show_build_cache_stats +} + +clean_rocal() { + echo "Cleaning rocAL build directory: ${BUILD_DIR} ${PACKAGE_DIR}" + rm -rf "$BUILD_DIR" "$PACKAGE_DIR" + echo "Done!" +} + +stage2_command_args "$@" + +case $TARGET in + build) build_rocal ;; + outdir) print_output_directory ;; + clean) clean_rocal ;; + *) die "Invalid target $TARGET" ;; +esac diff --git a/tools/rocm-build/build_rocalution.sh b/tools/rocm-build/build_rocalution.sh index d60b6c055..ba4215c07 100755 --- a/tools/rocm-build/build_rocalution.sh +++ b/tools/rocm-build/build_rocalution.sh @@ -22,6 +22,7 @@ build_rocalution() { echo "CXX compiler: $CXX" mkdir -p "$BUILD_DIR" && cd "$BUILD_DIR" + init_rocm_common_cmake_params if [ -n "$GPU_ARCHS" ]; then GPU_TARGETS="$GPU_ARCHS" @@ -32,7 +33,7 @@ build_rocalution() { cmake \ -DSUPPORT_HIP=ON \ ${LAUNCHER_FLAGS} \ - $(rocm_common_cmake_params) \ + "${rocm_math_common_cmake_params[@]}" \ -DAMDGPU_TARGETS=${GPU_TARGETS} \ -DCPACK_SET_DESTDIR=OFF \ -DBUILD_CLIENTS_SAMPLES=ON \ diff --git a/tools/rocm-build/build_rocblas.sh b/tools/rocm-build/build_rocblas.sh index 28593c648..980d199cc 100755 --- a/tools/rocm-build/build_rocblas.sh +++ b/tools/rocm-build/build_rocblas.sh @@ -28,11 +28,12 @@ build_rocblas() { else GPU_TARGETS="gfx908:xnack-;gfx90a:xnack+;gfx90a:xnack-;gfx940;gfx941;gfx942;gfx1030;gfx1100;gfx1101" fi + init_rocm_common_cmake_params cmake \ -DCMAKE_TOOLCHAIN_FILE=toolchain-linux.cmake \ -DBUILD_DIR="${BUILD_DIR}" \ - $(rocm_common_cmake_params) \ + "${rocm_math_common_cmake_params[@]}" \ -DROCM_DIR="${ROCM_PATH}" \ ${LAUNCHER_FLAGS} \ -DCMAKE_PREFIX_PATH="${DEPS_DIR};${ROCM_PATH}" \ diff --git a/tools/rocm-build/build_rocdecode.sh b/tools/rocm-build/build_rocdecode.sh index bc768c8ee..35bb9b5ed 100755 --- a/tools/rocm-build/build_rocdecode.sh +++ b/tools/rocm-build/build_rocdecode.sh @@ -4,15 +4,16 @@ source "$(dirname "${BASH_SOURCE[0]}")/compute_helper.sh" set_component_src rocDecode BUILD_DEV=ON build_rocdecode() { - if [ "$DISTRO_ID" = "centos-7" ] ; then + if [ "$DISTRO_ID" = "centos-7" ] || [ "$DISTRO_ID" = "sles-15.4" ] ; then echo "Not building rocDecode for ${DISTRO_ID}. Exiting..." return 0 fi echo "Start build" mkdir -p $BUILD_DIR && cd $BUILD_DIR + python3 ${COMPONENT_SRC}/rocDecode-setup.py --developer OFF - cmake ${COMPONENT_SRC} + cmake -DROCM_DEP_ROCMCORE=ON ${COMPONENT_SRC} make -j8 make install make package diff --git a/tools/rocm-build/build_rocfft.sh b/tools/rocm-build/build_rocfft.sh index 180406fa1..27d6009c3 100755 --- a/tools/rocm-build/build_rocfft.sh +++ b/tools/rocm-build/build_rocfft.sh @@ -16,6 +16,7 @@ build_rocfft() { set_address_sanitizer_on fi mkdir -p "$BUILD_DIR" && cd "$BUILD_DIR" + init_rocm_common_cmake_params if [ -n "$GPU_ARCHS" ]; then GPU_TARGETS="$GPU_ARCHS" @@ -26,7 +27,7 @@ build_rocfft() { CXX="${ROCM_PATH}/bin/hipcc" \ cmake \ ${LAUNCHER_FLAGS} \ - $(rocm_common_cmake_params) \ + "${rocm_math_common_cmake_params[@]}" \ -DAMDGPU_TARGETS=${GPU_TARGETS} \ -DUSE_HIP_CLANG=ON \ -DHIP_COMPILER=clang \ diff --git a/tools/rocm-build/build_rocm-cmake.sh b/tools/rocm-build/build_rocm-cmake.sh index 267313c13..f700f7be7 100755 --- a/tools/rocm-build/build_rocm-cmake.sh +++ b/tools/rocm-build/build_rocm-cmake.sh @@ -10,11 +10,13 @@ printUsage() { echo " -c, --clean Clean output and delete all intermediate work" echo " -r, --release Build a release version of the package" echo " -a, --address_sanitizer Enable address sanitizer" - echo " -s, --static Supports static CI by accepting this param & not bailing out. No effect of the param though" + echo " -s, --static Build static lib (.a). build instead of dynamic/shared(.so) " + echo " -w, --wheel Creates python wheel package of rocm-cmake. + It needs to be used along with -r option" echo " -o, --outdir Print path of output directory containing packages of type referred to by pkg_type" echo " -p, --package Specify packaging format" - echo " -h, --help Prints this help" + echo " -h, --help Prints this help" echo echo @@ -30,6 +32,7 @@ ROCM_CMAKE_BUILD_DIR="$(getBuildPath rocm-cmake)" ROCM_CMAKE_BUILD_DIR="$(getBuildPath rocm-cmake)" ROCM_CMAKE_PACKAGE_DEB="$(getPackageRoot)/deb/rocm-cmake" ROCM_CMAKE_PACKAGE_RPM="$(getPackageRoot)/rpm/rocm-cmake" +ROCM_WHEEL_DIR="${ROCM_CMAKE_BUILD_DIR}/_wheel" ROCM_CMAKE_BUILD_TYPE="debug" BUILD_TYPE="Debug" SHARED_LIBS="ON" @@ -37,7 +40,7 @@ CLEAN_OR_OUT=0; PKGTYPE="deb" MAKETARGET="deb" -VALID_STR=`getopt -o hcraso:p: --long help,clean,release,static,address_sanitizer,outdir:,package: -- "$@"` +VALID_STR=`getopt -o hcraswo:p: --long help,clean,release,static,wheel,address_sanitizer,outdir:,package: -- "$@"` eval set -- "$VALID_STR" while true ; @@ -53,6 +56,8 @@ do ack_and_ignore_asan ; shift ;; (-s | --static) SHARED_LIBS="OFF" ; shift ;; + (-w | --wheel) + WHEEL_PACKAGE=true ; shift ;; (-o | --outdir) TARGET="outdir"; PKGTYPE=$2 ; OUT_DIR_SPECIFIED=1 ; ((CLEAN_OR_OUT|=2)) ; shift 2 ;; (-p | --package) @@ -73,6 +78,7 @@ fi clean_rocm_cmake() { + rm -rf "$ROCM_WHEEL_DIR" rm -rf $ROCM_CMAKE_BUILD_DIR rm -rf $ROCM_CMAKE_PACKAGE_DEB rm -rf $ROCM_CMAKE_PACKAGE_RPM @@ -87,6 +93,7 @@ build_rocm_cmake() { cmake \ $(rocm_cmake_params) \ + -DBUILD_SHARED_LIBS=$SHARED_LIBS \ -DCPACK_SET_DESTDIR="OFF" \ -DROCM_DISABLE_LDCONFIG=ON \ $ROCM_CMAKE_ROOT @@ -99,6 +106,19 @@ build_rocm_cmake() { copy_if RPM "${CPACKGEN:-"DEB;RPM"}" "$ROCM_CMAKE_PACKAGE_RPM" $ROCM_CMAKE_BUILD_DIR/rocm-cmake*.rpm } +create_wheel_package() { + echo "Creating rocm-cmake wheel package" + # Copy the setup.py generator to build folder + mkdir -p $ROCM_WHEEL_DIR + cp -f $SCRIPT_ROOT/generate_setup_py.py $ROCM_WHEEL_DIR + cp -f $SCRIPT_ROOT/repackage_wheel.sh $ROCM_WHEEL_DIR + cd $ROCM_WHEEL_DIR + # Currently only supports python3.6 + ./repackage_wheel.sh $ROCM_CMAKE_BUILD_DIR/rocm-cmake*.rpm python3.6 + # Copy the wheel created to RPM folder which will be uploaded to artifactory + copy_if WHL "WHL" "$ROCM_CMAKE_PACKAGE_RPM" "$ROCM_WHEEL_DIR"/dist/*.whl +} + print_output_directory() { case ${PKGTYPE} in ("deb") @@ -118,4 +138,9 @@ case $TARGET in (*) die "Invalid target $TARGET" ;; esac +if [[ $WHEEL_PACKAGE == true ]]; then + echo "Wheel Package build started !!!!" + create_wheel_package +fi + echo "Operation complete" diff --git a/tools/rocm-build/build_rocprim.sh b/tools/rocm-build/build_rocprim.sh index e00cd8038..b0cb796f4 100755 --- a/tools/rocm-build/build_rocprim.sh +++ b/tools/rocm-build/build_rocprim.sh @@ -24,13 +24,14 @@ build_rocprim() { GPU_TARGETS="gfx908:xnack-;gfx90a:xnack-;gfx90a:xnack+;gfx940;gfx941;gfx942;gfx1030;gfx1100;gfx1101" fi + init_rocm_common_cmake_params CXX="${ROCM_PATH}/bin/hipcc" \ cmake \ ${LAUNCHER_FLAGS} \ - $(rocm_common_cmake_params) \ + "${rocm_math_common_cmake_params[@]}" \ -DAMDGPU_TARGETS=${GPU_TARGETS} \ -DBUILD_BENCHMARK=OFF \ - -DBUILD_BENCHMARK=OFF \ + -DBUILD_SHARED_LIBS=ON \ -DBUILD_TEST=ON \ -DCMAKE_MODULE_PATH="${ROCM_PATH}/lib/cmake/hip;${ROCM_PATH}/hip/cmake" \ "$COMPONENT_SRC" diff --git a/tools/rocm-build/build_rocprofiler-sdk.sh b/tools/rocm-build/build_rocprofiler-sdk.sh new file mode 100755 index 000000000..abfba538b --- /dev/null +++ b/tools/rocm-build/build_rocprofiler-sdk.sh @@ -0,0 +1,222 @@ +#!/bin/bash + +source "$(dirname "${BASH_SOURCE}")/compute_utils.sh" + +printUsage() { + echo + echo "Usage: ${BASH_SOURCE##*/} [options ...]" + echo + echo "Options:" + echo " -c, --clean Clean output and delete all intermediate work" + echo " -s, --static Build static lib (.a). build instead of dynamic/shared(.so) " + echo " -w, --wheel Creates python wheel package of rocprofiler-sdk. + It needs to be used along with -r option" + echo " -p, --package Specify packaging format" + echo " -r, --release Make a release build instead of a debug build" + echo " -a, --address_sanitizer Enable address sanitizer" + echo " -o, --outdir Print path of output directory containing packages of + type referred to by pkg_type" + echo " -h, --help Prints this help" + echo + echo "Possible values for :" + echo " deb -> Debian format (default)" + echo " rpm -> RPM format" + echo + + return 0 +} + +API_NAME="rocprofiler-sdk" +PROJ_NAME="$API_NAME" +LIB_NAME="lib${API_NAME}" +TARGET="build" +MAKETARGET="deb" +PACKAGE_ROOT="$(getPackageRoot)" +PACKAGE_LIB="$(getLibPath)" +PACKAGE_INCLUDE="$(getIncludePath)" +BUILD_DIR="$(getBuildPath $API_NAME)" +PACKAGE_DEB="$(getPackageRoot)/deb/$API_NAME" +PACKAGE_RPM="$(getPackageRoot)/rpm/$API_NAME" +ROCM_WHEEL_DIR="${BUILD_DIR}/_wheel" +PACKAGE_PREFIX="$ROCM_INSTALL_PATH" +BUILD_TYPE="Debug" +MAKE_OPTS="$DASH_JAY" +SHARED_LIBS="ON" +CLEAN_OR_OUT=0 +MAKETARGET="deb" +PKGTYPE="deb" + +GPU_LIST="gfx900;gfx906;gfx908;gfx90a;gfx940;gfx941;gfx942;gfx1030;gfx1031;gfx1100;gfx1101;gfx1102" +ASAN=0 + +VALID_STR=$(getopt -o hcrawso:p: --long help,clean,release,static,address_sanitizer,wheel,outdir:,package: -- "$@") +eval set -- "$VALID_STR" + +while true; do + case "$1" in + -h | --help) + printUsage + exit 0 + ;; + -c | --clean) + TARGET="clean" + ((CLEAN_OR_OUT |= 1)) + shift + ;; + -r | --release) + BUILD_TYPE="RelWithDebInfo" + shift + ;; + -a | --address_sanitizer) + set_address_sanitizer_on + set_asan_env_vars + ASAN=1 + shift + ;; + -s | --static) + SHARED_LIBS="OFF" + shift + ;; + -w | --wheel) + WHEEL_PACKAGE=true + shift + ;; + -o | --outdir) + TARGET="outdir" + PKGTYPE=$2 + OUT_DIR_SPECIFIED=1 + ((CLEAN_OR_OUT |= 2)) + shift 2 + ;; + -p | --package) + MAKETARGET="$2" + shift 2 + ;; + --) + shift + break + ;; # end delimiter + *) + echo " This should never come but just incase : UNEXPECTED ERROR Parm : [$1] " >&2 + exit 20 + ;; + esac + +done + +RET_CONFLICT=1 +check_conflicting_options $CLEAN_OR_OUT $PKGTYPE $MAKETARGET +if [ $RET_CONFLICT -ge 30 ]; then + print_vars $API_NAME $TARGET $BUILD_TYPE $SHARED_LIBS $CLEAN_OR_OUT $PKGTYPE $MAKETARGET + exit $RET_CONFLICT +fi + +clean() { + echo "Cleaning $PROJ_NAME" + rm -rf "$ROCM_WHEEL_DIR" + rm -rf "$BUILD_DIR" + rm -rf "$PACKAGE_DEB" + rm -rf "$PACKAGE_RPM" + rm -rf "$PACKAGE_ROOT/${PROJ_NAME}" + rm -rf "$PACKAGE_ROOT/libexec/${PROJ_NAME}" + rm -rf "$PACKAGE_INCLUDE/${PROJ_NAME}" + rm -rf "$PACKAGE_LIB/${LIB_NAME}"* + rm -rf "$PACKAGE_LIB/${PROJ_NAME}" +} + +build_rocprofiler-sdk() { + if [ ! -f "${ROCPROFILER_SDK_ROOT}/CMakeLists.txt" ]; then + echo "Warning: $ROCPROFILER_SDK_ROOT not found" + else + echo "Building $PROJ_NAME" + PACKAGE_CMAKE="$(getCmakePath)" + if [ ! -d "$BUILD_DIR" ]; then + mkdir -p "$BUILD_DIR" + pushd "$BUILD_DIR" + print_lib_type $SHARED_LIBS + + if [ $ASAN == 1 ]; then + cmake \ + $(rocm_cmake_params) \ + $(rocm_common_cmake_params) \ + -DAMDDeviceLibs_DIR="${ROCM_INSTALL_PATH}/lib/asan/cmake/AMDDeviceLibs" \ + -Dhip_DIR="${ROCM_INSTALL_PATH}/lib/asan/cmake/hip" \ + -Dhip-lang_DIR="${ROCM_INSTALL_PATH}/lib/asan/cmake/hip-lang" \ + -Damd_comgr_DIR="${ROCM_INSTALL_PATH}/lib/asan/cmake/amd_comgr" \ + -Dhsa-runtime64_DIR="${ROCM_INSTALL_PATH}/lib/asan/cmake/hsa-runtime64" \ + -Dhsakmt_DIR="${ROCM_INSTALL_PATH}/lib/asan/cmake/hsakmt" \ + -DCMAKE_HIP_COMPILER_ROCM_ROOT="${ROCM_INSTALL_PATH}" \ + -DCMAKE_PREFIX_PATH="${ROCM_INSTALL_PATH};${ROCM_INSTALL_PATH}/lib/asan" \ + -DBUILD_SHARED_LIBS=$SHARED_LIBS \ + -DGPU_TARGETS="$GPU_LIST" \ + -DCPACK_DEBIAN_PACKAGE_SHLIBDEPS=OFF \ + -DPython3_EXECUTABLE=$(which python3) \ + "$ROCPROFILER_SDK_ROOT" + else + cmake \ + $(rocm_cmake_params) \ + $(rocm_common_cmake_params) \ + -DCMAKE_PREFIX_PATH="${ROCM_INSTALL_PATH}" \ + -DBUILD_SHARED_LIBS=$SHARED_LIBS \ + -DGPU_TARGETS="$GPU_LIST" \ + -DROCPROFILER_BUILD_SAMPLES=ON \ + -DROCPROFILER_BUILD_TESTS=ON \ + -DCPACK_DEBIAN_PACKAGE_SHLIBDEPS=OFF \ + -DPython3_EXECUTABLE=$(which python3) \ + "$ROCPROFILER_SDK_ROOT" + fi + + popd + fi + cmake --build "$BUILD_DIR" --target all -- $MAKE_OPTS + cmake --build "$BUILD_DIR" --target install -- $MAKE_OPTS + cmake --build "$BUILD_DIR" --target package -- $MAKE_OPTS + + copy_if DEB "${CPACKGEN:-"DEB;RPM"}" "$PACKAGE_DEB" "$BUILD_DIR/${API_NAME}"*.deb + copy_if RPM "${CPACKGEN:-"DEB;RPM"}" "$PACKAGE_RPM" "$BUILD_DIR/${API_NAME}"*.rpm + fi +} + +create_wheel_package() { + echo "Creating rocprofiler sdk wheel package" + mkdir -p "$ROCM_WHEEL_DIR" + cp -f "$SCRIPT_ROOT"/generate_setup_py.py "$ROCM_WHEEL_DIR" + cp -f "$SCRIPT_ROOT"/repackage_wheel.sh "$ROCM_WHEEL_DIR" + cd "$ROCM_WHEEL_DIR" + # Currently only supports python3.6 + ./repackage_wheel.sh "$BUILD_DIR"/*.rpm python3.6 + # Copy the wheel created to RPM folder which will be uploaded to artifactory + copy_if WHL "WHL" "$PACKAGE_RPM" "$ROCM_WHEEL_DIR"/dist/*.whl +} + +print_output_directory() { + case ${PKGTYPE} in + "deb") + echo ${PACKAGE_DEB} + ;; + "rpm") + echo ${PACKAGE_RPM} + ;; + *) + echo "Invalid package type \"${PKGTYPE}\" provided for -o" >&2 + exit 1 + ;; + esac + exit +} + +verifyEnvSetup + +case "$TARGET" in + clean) clean ;; + build) build_rocprofiler-sdk ;; + outdir) print_output_directory ;; + *) die "Invalid target $TARGET" ;; +esac + +if [[ $WHEEL_PACKAGE == true ]]; then + echo "Wheel Package build started !!!!" + create_wheel_package +fi + +echo "Operation complete" diff --git a/tools/rocm-build/build_rocrand.sh b/tools/rocm-build/build_rocrand.sh index 8e7aa13af..691e64a63 100755 --- a/tools/rocm-build/build_rocrand.sh +++ b/tools/rocm-build/build_rocrand.sh @@ -25,10 +25,12 @@ build_rocrand() { GPU_TARGETS="gfx908:xnack-;gfx90a:xnack-;gfx90a:xnack+;gfx940;gfx941;gfx942;gfx1030;gfx1100;gfx1101" fi + init_rocm_common_cmake_params + CXX=$(set_build_variables CXX)\ cmake \ ${LAUNCHER_FLAGS} \ - $(rocm_common_cmake_params) \ + "${rocm_math_common_cmake_params[@]}" \ -DAMDGPU_TARGETS=${GPU_TARGETS} \ -DBUILD_TEST=ON \ -DBUILD_BENCHMARK=ON \ diff --git a/tools/rocm-build/build_rocsolver.sh b/tools/rocm-build/build_rocsolver.sh index fbffc5dfd..e310671eb 100755 --- a/tools/rocm-build/build_rocsolver.sh +++ b/tools/rocm-build/build_rocsolver.sh @@ -28,11 +28,13 @@ build_rocsolver() { GPU_TARGETS="gfx908:xnack-;gfx90a:xnack-;gfx90a:xnack+;gfx940;gfx941;gfx942;gfx1030;gfx1100;gfx1101" fi + init_rocm_common_cmake_params + CXX="${ROCM_PATH}/bin/hipcc" \ cmake \ -DCPACK_SET_DESTDIR=OFF \ ${LAUNCHER_FLAGS} \ - $(rocm_common_cmake_params) \ + "${rocm_math_common_cmake_params[@]}" \ -Drocblas_DIR="${ROCM_PATH}/rocblas/lib/cmake/rocblas" \ -DAMDGPU_TARGETS=${GPU_TARGETS} \ -DBUILD_CLIENTS_TESTS=ON \ diff --git a/tools/rocm-build/build_rocsparse.sh b/tools/rocm-build/build_rocsparse.sh index 2426b98c9..8cda3d59f 100755 --- a/tools/rocm-build/build_rocsparse.sh +++ b/tools/rocm-build/build_rocsparse.sh @@ -27,12 +27,14 @@ build_rocsparse() { fi ROCSPARSE_TEST_MIRROR=$MIRROR \ - CXX=$(set_build_variables CXX)\ - CC=$(set_build_variables CC)\ + export CXX=$(set_build_variables CXX)\ + export CC=$(set_build_variables CC)\ + + init_rocm_common_cmake_params cmake \ -DAMDGPU_TARGETS=${GPU_TARGETS} \ ${LAUNCHER_FLAGS} \ - $(rocm_common_cmake_params) \ + "${rocm_math_common_cmake_params[@]}"\ -DBUILD_CLIENTS_SAMPLES=ON \ -DBUILD_CLIENTS_TESTS=ON \ -DBUILD_CLIENTS_BENCHMARKS=ON \ diff --git a/tools/rocm-build/build_rocthrust.sh b/tools/rocm-build/build_rocthrust.sh index cd7cc16e4..84e058b4d 100755 --- a/tools/rocm-build/build_rocthrust.sh +++ b/tools/rocm-build/build_rocthrust.sh @@ -27,10 +27,12 @@ build_rocthrust() { GPU_TARGETS="gfx908:xnack-;gfx90a:xnack-;gfx90a:xnack+;gfx940;gfx941;gfx942;gfx1030;gfx1100;gfx1101" fi + init_rocm_common_cmake_params + CXX=$(set_build_variables CXX)\ cmake \ ${LAUNCHER_FLAGS} \ - $(rocm_common_cmake_params) \ + "${rocm_math_common_cmake_params[@]}" \ -DAMDGPU_TARGETS=${GPU_TARGETS} \ -DCMAKE_MODULE_PATH="${ROCM_PATH}/lib/cmake/hip;${ROCM_PATH}/hip/cmake" \ -DROCPRIM_ROOT="${ROCM_PATH}/rocprim" \ diff --git a/tools/rocm-build/build_rocwmma.sh b/tools/rocm-build/build_rocwmma.sh index 54eca1a11..694723c07 100755 --- a/tools/rocm-build/build_rocwmma.sh +++ b/tools/rocm-build/build_rocwmma.sh @@ -27,9 +27,11 @@ build_rocwmma() { GPU_TARGETS="gfx908:xnack-;gfx90a:xnack-;gfx90a:xnack+;gfx940;gfx941;gfx942;gfx1100;gfx1101" fi + init_rocm_common_cmake_params + CXX=$(set_build_variables CXX)\ cmake \ - $(rocm_common_cmake_params) \ + "${rocm_math_common_cmake_params[@]}" \ ${LAUNCHER_FLAGS} \ -DAMDGPU_TARGETS=${GPU_TARGETS} \ -DROCWMMA_BUILD_VALIDATION_TESTS=ON \ diff --git a/tools/rocm-build/build_rpp.sh b/tools/rocm-build/build_rpp.sh index b1051a9d8..d20a62ab7 100755 --- a/tools/rocm-build/build_rpp.sh +++ b/tools/rocm-build/build_rpp.sh @@ -12,7 +12,7 @@ ROCM_LLVM_LIB_RPATH="\$ORIGIN/llvm/lib" rpp_specific_cmake_params() { local rpp_cmake_params if [ "${ASAN_CMAKE_PARAMS}" == "true" ] ; then - rpp_cmake_params="-DCMAKE_EXE_LINKER_FLAGS_INIT=-Wl,--enable-new-dtags,--rpath,$ROCM_ASAN_EXE_RPATH:$LLVM_LIBDIR" + rpp_cmake_params="-DCMAKE_EXE_LINKER_FLAGS_INIT=-Wl,--enable-new-dtags,--build-id=sha1,--rpath,$ROCM_ASAN_EXE_RPATH:$LLVM_LIBDIR" else rpp_cmake_params="" fi @@ -41,14 +41,16 @@ build_rpp() { GPU_TARGETS="gfx908;gfx90a;gfx940;gfx941;gfx942;gfx1030;gfx1100" fi + init_rocm_common_cmake_params + cmake \ - $(rocm_common_cmake_params) \ + "${rocm_math_common_cmake_params[@]}" \ ${LAUNCHER_FLAGS} \ -DBACKEND=HIP \ -DCMAKE_INSTALL_LIBDIR=$(getInstallLibDir) \ $(rpp_specific_cmake_params) \ -DAMDGPU_TARGETS=${GPU_TARGETS} \ - -DCMAKE_SHARED_LINKER_FLAGS_INIT="-fno-openmp-implicit-rpath -Wl,--enable-new-dtags,--rpath,${ROCM_LIB_RPATH}:${DEPS_DIR}/lib:${ROCM_LLVM_LIB_RPATH}" \ + -DCMAKE_SHARED_LINKER_FLAGS_INIT="-fno-openmp-implicit-rpath -Wl,--enable-new-dtags,--build-id=sha1,--rpath,${ROCM_LIB_RPATH}:${DEPS_DIR}/lib:${ROCM_LLVM_LIB_RPATH}" \ -DCMAKE_PREFIX_PATH="${DEPS_DIR};${ROCM_PATH}" \ "$COMPONENT_SRC" diff --git a/tools/rocm-build/compute_helper.sh b/tools/rocm-build/compute_helper.sh index 08412ad4c..5fbf1b916 100755 --- a/tools/rocm-build/compute_helper.sh +++ b/tools/rocm-build/compute_helper.sh @@ -189,6 +189,65 @@ echo " PKGTYPE= $6 " echo " MAKETARGET = $7 " } +rocm_math_common_cmake_params=() +init_rocm_common_cmake_params(){ + local retCmakeParams=${1:-rocm_math_common_cmake_params} + local SET_BUILD_TYPE=${BUILD_TYPE:-'RelWithDebInfo'} + local ASAN_LIBDIR="lib/asan" + local CMAKE_PATH=$(getCmakePath) +# Common cmake parameters can be set +# component build scripts can use this function + local cmake_params + if [ "${ASAN_CMAKE_PARAMS}" == "true" ] ; then + cmake_params=( + "-DCMAKE_PREFIX_PATH=$CMAKE_PATH;${ROCM_PATH}/$ASAN_LIBDIR;$ROCM_PATH/llvm;$ROCM_PATH" + "-DCMAKE_SHARED_LINKER_FLAGS_INIT=-Wl,--enable-new-dtags,--build-id=sha1,--rpath,$ROCM_ASAN_LIB_RPATH" + "-DCMAKE_EXE_LINKER_FLAGS_INIT=-Wl,--enable-new-dtags,--build-id=sha1,--rpath,$ROCM_ASAN_EXE_RPATH" + "-DENABLE_ASAN_PACKAGING=true" + ) + else + cmake_params=( + "-DCMAKE_PREFIX_PATH=${ROCM_PATH}/llvm;${ROCM_PATH}" + "-DCMAKE_SHARED_LINKER_FLAGS_INIT=-Wl,--enable-new-dtags,--build-id=sha1,--rpath,$ROCM_LIB_RPATH" + "-DCMAKE_EXE_LINKER_FLAGS_INIT=-Wl,--enable-new-dtags,--build-id=sha1,--rpath,$ROCM_EXE_RPATH" + ) + fi + + cmake_params+=( + "-DCMAKE_VERBOSE_MAKEFILE=1" + "-DCMAKE_BUILD_TYPE=${SET_BUILD_TYPE}" + "-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=FALSE" + "-DCMAKE_INSTALL_PREFIX=${ROCM_PATH}" + "-DCMAKE_PACKAGING_INSTALL_PREFIX=${ROCM_PATH}" + "-DBUILD_FILE_REORG_BACKWARD_COMPATIBILITY=OFF" + "-DROCM_SYMLINK_LIBS=OFF" + "-DCPACK_PACKAGING_INSTALL_PREFIX=${ROCM_PATH}" + "-DROCM_DISABLE_LDCONFIG=ON" + "-DROCM_PATH=${ROCM_PATH}" + ) + + #TODO :remove if clause once debug related issues are fixed + if [ "${DISABLE_DEBUG_PACKAGE}" == "true" ] ; then + SET_BUILD_TYPE=${BUILD_TYPE:-'Release'} + cmake_params+=( + "-DCPACK_DEBIAN_DEBUGINFO_PACKAGE=FALSE" + "-DCPACK_RPM_DEBUGINFO_PACKAGE=FALSE" + "-DCPACK_RPM_INSTALL_WITH_EXEC=FALSE" + "-DCMAKE_BUILD_TYPE=${SET_BUILD_TYPE}" + ) + elif [ "$SET_BUILD_TYPE" == "RelWithDebInfo" ] || [ "$SET_BUILD_TYPE" == "Debug" ]; then + # RelWithDebinfo optimization level -O2 is having performance impact + # So overriding the same to -O3 + cmake_params+=( + "-DCPACK_DEBIAN_DEBUGINFO_PACKAGE=TRUE" + "-DCPACK_RPM_DEBUGINFO_PACKAGE=TRUE" + "-DCPACK_RPM_INSTALL_WITH_EXEC=TRUE" + "-DCMAKE_CXX_FLAGS_RELWITHDEBINFO=-O3 -g -DNDEBUG" + ) + fi + eval "${retCmakeParams}=( \"\${cmake_params[@]}\" ) " +} + # Common cmake parameters can be set # component build scripts can use this function rocm_common_cmake_params() { diff --git a/tools/rocm-build/docker/ubuntu20/install-prerequisites.sh b/tools/rocm-build/docker/ubuntu20/install-prerequisites.sh index 0c73e06b1..7828292de 100755 --- a/tools/rocm-build/docker/ubuntu20/install-prerequisites.sh +++ b/tools/rocm-build/docker/ubuntu20/install-prerequisites.sh @@ -2,7 +2,6 @@ set -ex - apt-get update DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true apt-get install --no-install-recommends -y $(grep -v '^#' /tmp/packages) apt-get clean @@ -105,7 +104,7 @@ git clone --recurse-submodules -b v1.61.0 https://github.com/grpc/grpc cd grpc mkdir -p cmake/build cd cmake/build -cmake -DgRPC_INSTALL=ON -DBUILD_SHARED_LIBS=ON -DgRPC_BUILD_TESTS=OFF -DCMAKE_INSTALL_PREFIX=/usr/grpc -DCMAKE_CXX_STANDARD=14 ../.. +cmake -DgRPC_INSTALL=ON -DBUILD_SHARED_LIBS=ON -DgRPC_BUILD_TESTS=OFF -DCMAKE_INSTALL_PREFIX=/usr/grpc -DCMAKE_CXX_STANDARD=14 -DCMAKE_SHARED_LINKER_FLAGS_INIT=-Wl,--enable-new-dtags,--build-id=sha1,--rpath,'$ORIGIN' ../.. make -j$(nproc) make install cd / @@ -120,11 +119,11 @@ mv amd-blis-mt /usr/blis cd / rm -rf /tmp/blis -## Download aocl-linux-aocc-4.0_1_amd64.deb +## Download aocl-linux-gcc-4.2.0_1_amd64.deb mkdir -p /tmp/aocl cd /tmp/aocl -wget -nv https://download.amd.com/developer/eula/aocl/aocl-4-0/aocl-linux-aocc-4.0_1_amd64.deb -apt install ./aocl-linux-aocc-4.0_1_amd64.deb +wget -nv https://download.amd.com/developer/eula/aocl/aocl-4-2/aocl-linux-gcc-4.2.0_1_amd64.deb +apt install ./aocl-linux-gcc-4.2.0_1_amd64.deb rm -rf /tmp/aocl ## lapack(3.9.1v) @@ -180,8 +179,7 @@ cd ninja-1.11.1.g95dee.kitware.jobserver-1 cp ninja /usr/local/bin/ rm -rf /tmp/ninja -# Install pre-built FFmpeg and dependencies -# See docker/build-deps for instructions on how to build these packages +# Install FFmpeg from source wget -qO- https://www.ffmpeg.org/releases/ffmpeg-4.4.2.tar.gz | tar -xzv -C /usr/local command -v lbzip2 diff --git a/tools/rocm-build/docker/ubuntu20/packages b/tools/rocm-build/docker/ubuntu20/packages index bdcc0d3e3..dc42f2d90 100644 --- a/tools/rocm-build/docker/ubuntu20/packages +++ b/tools/rocm-build/docker/ubuntu20/packages @@ -8,6 +8,7 @@ bison bridge-utils build-essential bzip2 +ccache check chrpath cifs-utils @@ -97,6 +98,7 @@ libva-dev libvirt-clients libvirt-daemon-system libyaml-cpp-dev +libzstd-dev llvm llvm-6.0-dev llvm-dev @@ -119,9 +121,11 @@ python3-yaml python3.8-dev re2c redis-tools +# Eventually we should be able to remove rpm for debian builds. rpm rsync ssh +# This makes life more pleasent inside the container strace sudo systemtap-sdt-dev diff --git a/tools/rocm-build/docker/ubuntu22/install-prerequisities.sh b/tools/rocm-build/docker/ubuntu22/install-prerequisities.sh index 3ea039bc4..16127d846 100644 --- a/tools/rocm-build/docker/ubuntu22/install-prerequisities.sh +++ b/tools/rocm-build/docker/ubuntu22/install-prerequisities.sh @@ -1,6 +1,6 @@ #! /usr/bin/bash -set -ex +set -x apt-get -y update DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true apt-get install --no-install-recommends -y $(sed 's/#.*//' /tmp/packages) @@ -60,7 +60,6 @@ apt install -y sharp apt clean rm -rf /var/cache/apt/ /var/lib/apt/lists/* mlnx /etc/apt/sources.list.d/sharp.list - apt update apt -y install libunwind-dev apt -y install libgoogle-glog-dev @@ -118,12 +117,12 @@ git clone --recurse-submodules -b v1.61.0 https://github.com/grpc/grpc cd grpc mkdir -p build cd build -cmake -DgRPC_INSTALL=ON -DBUILD_SHARED_LIBS=ON -DgRPC_BUILD_TESTS=OFF -DCMAKE_INSTALL_PREFIX=/usr/grpc -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_STANDARD=14 .. +cmake -DgRPC_INSTALL=ON -DBUILD_SHARED_LIBS=ON -DgRPC_BUILD_TESTS=OFF -DCMAKE_INSTALL_PREFIX=/usr/grpc -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_STANDARD=14 -DCMAKE_SHARED_LINKER_FLAGS_INIT=-Wl,--enable-new-dtags,--build-id=sha1,--rpath,'$ORIGIN' .. make -j $(nproc) install rm -rf /tmp/grpc ## rocBLAS Pre-requisites -## Download prebuilt AMD multithreaded (2.0) +## Download prebuilt AMD multithreaded blis (2.0) ## Reference : https://github.com/ROCmSoftwarePlatform/rocBLAS/blob/develop/install.sh#L403 mkdir -p /tmp/blis cd /tmp/blis @@ -131,12 +130,13 @@ wget -O - https://github.com/amd/blis/releases/download/2.0/aocl-blis-mt-ubuntu- mv amd-blis-mt /usr/blis cd / rm -rf /tmp/blis + ## rocBLAS Pre-requisites(SWDEV-404612) -## Download aocl-linux-aocc-4.0_1_amd64 +## Download aocl-linux-gcc-4.2.0_1_amd64.deb mkdir -p /tmp/aocl cd /tmp/aocl -wget -nv https://download.amd.com/developer/eula/aocl/aocl-4-0/aocl-linux-aocc-4.0_1_amd64.deb -apt install ./aocl-linux-aocc-4.0_1_amd64.deb +wget -nv https://download.amd.com/developer/eula/aocl/aocl-4-2/aocl-linux-gcc-4.2.0_1_amd64.deb +apt install ./aocl-linux-gcc-4.2.0_1_amd64.deb rm -rf /tmp/aocl ## hipBLAS Pre-requisites @@ -194,9 +194,62 @@ cd ninja-1.11.1.g95dee.kitware.jobserver-1 cp ninja /usr/local/bin/ rm -rf /tmp/ninja -# Install pre-built FFmpeg and dependencies -# See docker/build-deps for instructions on how to build these packages -wget -qO- https://www.ffmpeg.org/releases/ffmpeg-4.4.2.tar.gz | tar -xzv -C /usr/local +# Install FFmpeg and dependencies +# Build NASM +mkdir -p /tmp/nasm-2.15.05 +cd /tmp +wget -qO- "https://distfiles.macports.org/nasm/nasm-2.15.05.tar.bz2" | tar -xvj +cd nasm-2.15.05 +./autogen.sh +./configure --prefix="/usr/local" +make -j$(nproc) install +rm -rf /tmp/nasm-2.15.05 + +# Build YASM +mkdir -p /tmp/yasm-1.3.0 +cd /tmp +wget -qO- "http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz" | tar -xvz +cd yasm-1.3.0 +./configure --prefix="/usr/local" +make -j$(nproc) install +rm -rf /tmp/yasm-1.3.0 + +# Build x264 +mkdir -p /tmp/x264-snapshot-20191217-2245-stable +cd /tmp +wget -qO- "https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-20191217-2245-stable.tar.bz2" | tar -xvj +cd /tmp/x264-snapshot-20191217-2245-stable +PKG_CONFIG_PATH="/usr/local/lib/pkgconfig" ./configure --prefix="/usr/local" --enable-shared +make -j$(nproc) install +rm -rf /tmp/x264-snapshot-20191217-2245-stable + +# Build x265 +mkdir -p /tmp/x265_2.7 +cd /tmp +wget -qO- "https://get.videolan.org/x265/x265_2.7.tar.gz" | tar -xvz +cd /tmp/x265_2.7/build/linux +cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="/usr/local" -DENABLE_SHARED:bool=on ../../source +make -j$(nproc) install +rm -rf /tmp/x265_2.7 + +# Build fdk-aac +mkdir -p /tmp/fdk-aac-2.0.2 +cd /tmp +wget -qO- "https://sourceforge.net/projects/opencore-amr/files/fdk-aac/fdk-aac-2.0.2.tar.gz" | tar -xvz +cd /tmp/fdk-aac-2.0.2 +autoreconf -fiv +./configure --prefix="/usr/local" --enable-shared --disable-static +make -j$(nproc) install +rm -rf /tmp/fdk-aac-2.0.2 + +# Build FFmpeg +cd /tmp +git clone -b release/4.4 https://git.ffmpeg.org/ffmpeg.git ffmpeg +cd ffmpeg +PKG_CONFIG_PATH="/usr/local/lib/pkgconfig" +./configure --prefix="/usr/local" --extra-cflags="-I/usr/local/include" --extra-ldflags="-L/usr/local/lib" --extra-libs=-lpthread --extra-libs=-lm --enable-shared --disable-static --enable-libx264 --enable-libx265 --enable-libfdk-aac --enable-gpl --enable-nonfree +make -j$(nproc) install +rm -rf /tmp/ffmpeg cp /tmp/local-pin-600 /etc/apt/preferences.d @@ -212,21 +265,21 @@ make -j -C build cd /tmp/Gbenchmark/build make install -# Build boost-1.82.0 from source for RPP +# Build boost-1.85.0 from source for RPP # Installing in a non-standard location since the test packages of hipFFT and rocFFT pick up the version of # the installed Boost library and declare a package dependency on that specific version of Boost. -# For example, if this was installed in the standard location it would declare a dependency on libboost-dev(el)1.82.0 +# For example, if this was installed in the standard location it would declare a dependency on libboost-dev(el)1.85.0 # which is not available as a package in any distro. # Once this is fixed, we can remove the Boost package from the requirements list and install this # in the standard location -mkdir -p /tmp/boost-1.82.0 -cd /tmp/boost-1.82.0 -wget -nv https://sourceforge.net/projects/boost/files/boost/1.82.0/boost_1_82_0.tar.bz2 -O ./boost_1_82_0.tar.bz2 -tar -xf boost_1_82_0.tar.bz2 --use-compress-program="/usr/local/bin/compressor" -cd boost_1_82_0 +mkdir -p /tmp/boost-1.85.0 +cd /tmp/boost-1.85.0 +wget -nv https://sourceforge.net/projects/boost/files/boost/1.85.0/boost_1_85_0.tar.bz2 -O ./boost_1_85_0.tar.bz2 +tar -xf boost_1_85_0.tar.bz2 --use-compress-program="/usr/local/bin/compressor" +cd boost_1_85_0 ./bootstrap.sh --prefix=${RPP_DEPS_LOCATION} --with-python=python3 ./b2 stage -j$(nproc) threading=multi link=shared cxxflags="-std=c++11" ./b2 install threading=multi link=shared --with-system --with-filesystem ./b2 stage -j$(nproc) threading=multi link=static cxxflags="-std=c++11 -fpic" cflags="-fpic" ./b2 install threading=multi link=static --with-system --with-filesystem -rm -rf /tmp/boost-1.82.0 +rm -rf /tmp/boost-1.85.0 diff --git a/tools/rocm-build/docker/ubuntu22/packages b/tools/rocm-build/docker/ubuntu22/packages index 56a22631a..72483d363 100644 --- a/tools/rocm-build/docker/ubuntu22/packages +++ b/tools/rocm-build/docker/ubuntu22/packages @@ -8,6 +8,7 @@ bison bridge-utils build-essential bzip2 +ccache check chrpath cifs-utils @@ -99,6 +100,7 @@ libva-dev libvirt-clients libvirt-daemon-system libyaml-cpp-dev +libzstd-dev llvm llvm-dev llvm-runtime @@ -137,3 +139,4 @@ unzip vim wget xsltproc +zlib1g-dev diff --git a/tools/rocm-build/docker/ubuntu24/Dockerfile b/tools/rocm-build/docker/ubuntu24/Dockerfile new file mode 100644 index 000000000..d23d420a1 --- /dev/null +++ b/tools/rocm-build/docker/ubuntu24/Dockerfile @@ -0,0 +1,11 @@ +FROM ubuntu:noble as builder +COPY packages /tmp/packages +COPY local-pin-600 /tmp/local-pin-600 +COPY install-prerequisities.sh /tmp/install-prerequisities.sh +RUN chmod +x /tmp/install-prerequisities.sh +ENV KBUILD_PKG_ROOTCMD= +ENV RPP_DEPS_LOCATION=/usr/local/rpp-deps +ENV PATH="/opt/venv/bin:$PATH" +ENV PATH=$PATH:"/usr/local/bin" +RUN /tmp/install-prerequisities.sh +WORKDIR /src diff --git a/tools/rocm-build/docker/ubuntu24/README.md b/tools/rocm-build/docker/ubuntu24/README.md new file mode 100644 index 000000000..c7a709f8b --- /dev/null +++ b/tools/rocm-build/docker/ubuntu24/README.md @@ -0,0 +1,27 @@ +## Steps to build the Docker Image + +1. Clone this repositry + + ```bash + git clone https://github.com/ROCm/rocm-build.git + ``` + +2. Go into the OS specific docker directory in build-infra + + ```bash + cd rocm-build/build/docker/ubuntu24 + ``` + +3. Build the docker image + + ```bash + docker build -t . + ``` + + replace the `` with the new Docker image Name of your choice, + +4. After successful build, verify your \ in the list all available docker images. + + ```bash + docker images + ``` diff --git a/tools/rocm-build/docker/ubuntu24/install-prerequisites.sh b/tools/rocm-build/docker/ubuntu24/install-prerequisites.sh new file mode 100644 index 000000000..4898a7792 --- /dev/null +++ b/tools/rocm-build/docker/ubuntu24/install-prerequisites.sh @@ -0,0 +1,237 @@ + +#! /usr/bin/bash +set -ex + +# The following assumes that you have a cache, e.g. +# https://docs.docker.com/engine/examples/apt-cacher-ng/ +# Comment out if it breaks things +echo 'Acquire::http { Proxy "http://rocm-ci-services.amd.com:3142"; };' > /etc/apt/apt.conf.d/01proxy + +apt-get update +DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true apt-get install --no-install-recommends -y $(sed 's/#.*//' /tmp/packages) +update-ccache-symlinks +apt-get upgrade +apt-get clean +rm -rf /var/cache/apt/ /var/lib/apt/lists/* /etc/apt/apt.conf.d/01proxy + +#Install 2.17.1 version of git as we are seeing issues with 2.25 , where it was not allowing to add git submodules if the user is different for parent git directory +curl -o git.tar.gz https://cdn.kernel.org/pub/software/scm/git/git-2.17.1.tar.gz +tar -zxf git.tar.gz +cd git-* +make prefix=/usr/local all +make prefix=/usr/local install +git --version + +# venv for python to be able to run pip3 without --break-system-packages +python3 -m venv /opt/venv + +pip3 install --no-cache-dir setuptools wheel tox +pip3 install --no-cache-dir --pre CppHeaderParser argparse requests lxml barectf recommonmark jinja2==3.0.0 websockets matplotlib numpy scipy minimal msgpack pytest sphinx joblib PyYAML==5.3.1 rocm-docs-core cmake==3.25.2 pandas myst-parser + +# Allow sudo for everyone user +echo 'ALL ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/everyone + +# Install OCaml packages to build LLVM's OCaml bindings to be used in lightning compiler test pipeline +wget -nv https://sourceforge.net/projects/opam.mirror/files/2.1.4/opam-2.1.4-x86_64-linux -O /usr/local/bin/opam +chmod +x /usr/local/bin/opam +opam init --yes --disable-sandboxing +opam install ctypes --yes + +# Install and modify git-repo (#!/usr/bin/env python -> #!/usr/bin/env python3) +curl https://storage.googleapis.com/git-repo-downloads/repo > /usr/bin/repo +chmod a+x /usr/bin/repo + +# Build ccache from the source +cd /tmp +git clone https://github.com/ccache/ccache -b v4.7.5 +cd ccache +mkdir build +cd build +cmake -DCMAKE_BUILD_TYPE=Release .. +make +make install +cd /tmp +rm -rf ccache + +#Install older version of hwloc-devel package for rocrtst +curl -lO https://download.open-mpi.org/release/hwloc/v1.11/hwloc-1.11.13.tar.bz2 +tar -xvf hwloc-1.11.13.tar.bz2 +cd hwloc-1.11.13 +./configure +make +make install +cp /usr/local/lib/libhwloc.so.5 /usr/lib +hwloc-info --version + +# Install gtest +mkdir -p /tmp/gtest +cd /tmp/gtest +wget https://github.com/google/googletest/archive/refs/tags/v1.14.0.zip -O googletest.zip +unzip googletest.zip +cd googletest-1.14.0/ +mkdir build +cd build +cmake .. +make -j$(nproc) +make install +rm -rf /tmp/gtest + +## Install gRPC from source +## RDC Pre-requisites +GRPC_ARCHIVE=grpc-1.61.0.tar.gz +mkdir /tmp/grpc +mkdir /usr/grpc +cd /tmp +git clone --recurse-submodules -b v1.61.0 https://github.com/grpc/grpc +cd grpc +mkdir -p build +cd build +cmake -DgRPC_INSTALL=ON -DBUILD_SHARED_LIBS=ON -DgRPC_BUILD_TESTS=OFF -DCMAKE_INSTALL_PREFIX=/usr/grpc -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_STANDARD=14 -DCMAKE_SHARED_LINKER_FLAGS_INIT=-Wl,--enable-new-dtags,--build-id=sha1,--rpath,'$ORIGIN' .. +make -j $(nproc) install +rm -rf /tmp/grpc + +## rocBLAS Pre-requisites(ROCMOPS-3856) +## Download prebuilt AMD multithreaded blis (2.0) +## Reference : https://github.com/ROCmSoftwarePlatform/rocBLAS/blob/develop/install.sh#L403 +mkdir -p /tmp/blis +cd /tmp/blis +wget -O - https://github.com/amd/blis/releases/download/2.0/aocl-blis-mt-ubuntu-2.0.tar.gz | tar xfz - +mv amd-blis-mt /usr/blis +cd / +rm -rf /tmp/blis + +## rocBLAS Pre-requisites(SWDEV-404612) +## Download aocl-linux-gcc-4.2.0_1_amd64.deb +mkdir -p /tmp/aocl +cd /tmp/aocl +wget -nv https://download.amd.com/developer/eula/aocl/aocl-4-2/aocl-linux-gcc-4.2.0_1_amd64.deb +apt install ./aocl-linux-gcc-4.2.0_1_amd64.deb +rm -rf /tmp/aocl + +## hipBLAS Pre-requisites +## lapack(3.9.1v) +## Reference https://github.com/ROCmSoftwarePlatform/rocSOLVER/blob/develop/install.sh#L174 +lapack_version=3.9.1 +lapack_srcdir=lapack-$lapack_version +lapack_blddir=lapack-$lapack_version-bld +mkdir -p /tmp/lapack +cd /tmp/lapack +rm -rf "$lapack_srcdir" "$lapack_blddir" +wget -O - https://github.com/Reference-LAPACK/lapack/archive/refs/tags/v3.9.1.tar.gz | tar xzf - +cmake -H$lapack_srcdir -B$lapack_blddir -DCMAKE_BUILD_TYPE=Release -DCMAKE_Fortran_FLAGS=-fno-optimize-sibling-calls -DBUILD_TESTING=OFF -DCBLAS=ON -DLAPACKE=OFF +make -j$(nproc) -C "$lapack_blddir" +make -C "$lapack_blddir" install +cd $lapack_blddir +cp -r ./include/* /usr/local/include/ +cp -r ./lib/* /usr/local/lib +cd / +rm -rf /tmp/lapack + +## rocSOLVER Pre-requisites +## FMT(7.1.3v) +## Reference https://github.com/ROCmSoftwarePlatform/rocSOLVER/blob/develop/install.sh#L152 +fmt_version=7.1.3 +fmt_srcdir=fmt-$fmt_version +fmt_blddir=fmt-$fmt_version-bld +mkdir -p /tmp/fmt +cd /tmp/fmt +rm -rf "$fmt_srcdir" "$fmt_blddir" +wget -O - https://github.com/fmtlib/fmt/archive/refs/tags/7.1.3.tar.gz | tar xzf - +cmake -H$fmt_srcdir -B$fmt_blddir -DCMAKE_BUILD_TYPE=Release -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_CXX_STANDARD=17 -DCMAKE_CXX_EXTENSIONS=OFF -DCMAKE_CXX_STANDARD_REQUIRED=ON -DFMT_DOC=OFF -DFMT_TEST=OFF +make -j$(nproc) -C "$fmt_blddir" +make -C "$fmt_blddir" install + +# Build and install libjpeg-turbo +mkdir -p /tmp/libjpeg-turbo +cd /tmp/libjpeg-turbo +wget -nv https://github.com/rrawther/libjpeg-turbo/archive/refs/heads/2.0.6.2.zip -O libjpeg-turbo-2.0.6.2.zip +unzip libjpeg-turbo-2.0.6.2.zip +cd libjpeg-turbo-2.0.6.2 +mkdir build +cd build +cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=RELEASE -DENABLE_STATIC=FALSE -DCMAKE_INSTALL_DEFAULT_LIBDIR=lib .. +make -j$(nproc) install +rm -rf /tmp/libjpeg-turbo + +# Get released ninja from source +mkdir -p /tmp/ninja +cd /tmp/ninja +wget -nv https://codeload.github.com/Kitware/ninja/zip/refs/tags/v1.11.1.g95dee.kitware.jobserver-1 -O ninja.zip +unzip ninja.zip +cd ninja-1.11.1.g95dee.kitware.jobserver-1 +./configure.py --bootstrap +cp ninja /usr/local/bin/ +rm -rf /tmp/ninja + +# Install FFmpeg and dependencies +# Build NASM +mkdir -p /tmp/nasm-2.15.05 +cd /tmp +wget -qO- "https://distfiles.macports.org/nasm/nasm-2.15.05.tar.bz2" | tar -xvj +cd nasm-2.15.05 +./autogen.sh +./configure --prefix="/usr/local" +make -j$(nproc) install +rm -rf /tmp/nasm-2.15.05 + +# Build YASM +mkdir -p /tmp/yasm-1.3.0 +cd /tmp +wget -qO- "http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz" | tar -xvz +cd yasm-1.3.0 +./configure --prefix="/usr/local" +make -j$(nproc) install +rm -rf /tmp/yasm-1.3.0 + +# Build x264 +mkdir -p /tmp/x264-snapshot-20191217-2245-stable +cd /tmp +wget -qO- "https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-20191217-2245-stable.tar.bz2" | tar -xvj +cd /tmp/x264-snapshot-20191217-2245-stable +PKG_CONFIG_PATH="/usr/local/lib/pkgconfig" ./configure --prefix="/usr/local" --enable-shared +make -j$(nproc) install +rm -rf /tmp/x264-snapshot-20191217-2245-stable + +# Build x265 +mkdir -p /tmp/x265_2.7 +cd /tmp +wget -qO- "https://get.videolan.org/x265/x265_2.7.tar.gz" | tar -xvz +cd /tmp/x265_2.7/build/linux +cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="/usr/local" -DENABLE_SHARED:bool=on ../../source +make -j$(nproc) install +rm -rf /tmp/x265_2.7 + + +# Build fdk-aac +mkdir -p /tmp/fdk-aac-2.0.2 +cd /tmp +wget -qO- "https://sourceforge.net/projects/opencore-amr/files/fdk-aac/fdk-aac-2.0.2.tar.gz" | tar -xvz +cd /tmp/fdk-aac-2.0.2 +autoreconf -fiv +./configure --prefix="/usr/local" --enable-shared --disable-static +make -j$(nproc) install +rm -rf /tmp/fdk-aac-2.0.2 + +# Build FFmpeg +cd /tmp +rm -rf ffmpeg +git clone -b release/4.4 https://git.ffmpeg.org/ffmpeg.git ffmpeg +cd ffmpeg +PKG_CONFIG_PATH="/usr/local/lib/pkgconfig" +./configure --prefix="/usr/local" --extra-cflags="-I/usr/local/include" --extra-ldflags="-L/usr/local/lib" --extra-libs=-lpthread --extra-libs=-lm --enable-shared --disable-static --enable-libx264 --enable-libx265 --enable-libfdk-aac --enable-gpl --enable-nonfree +make -j$(nproc) install +rm -rf /tmp/ffmpeg + +cp /tmp/local-pin-600 /etc/apt/preferences.d + +command -v lbzip2 +ln -sf $(command -v lbzip2) /usr/local/bin/compressor || ln -sf $(command -v bzip2) /usr/local/bin/compressor + +# Install Google Benchmark (ROCMOPS-5283) +mkdir -p /tmp/Gbenchmark +cd /tmp/Gbenchmark +wget -qO- https://github.com/google/benchmark/archive/refs/tags/v1.6.1.tar.gz | tar xz +cmake -Sbenchmark-1.6.1 -Bbuild -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DBENCHMARK_ENABLE_TESTING=OFF -DCMAKE_CXX_STANDARD=14 +make -j -C build +cd /tmp/Gbenchmark/build +make install diff --git a/tools/rocm-build/docker/ubuntu24/local-pin-60 b/tools/rocm-build/docker/ubuntu24/local-pin-60 new file mode 100644 index 000000000..8cfa54d34 --- /dev/null +++ b/tools/rocm-build/docker/ubuntu24/local-pin-60 @@ -0,0 +1,3 @@ +Package: * +Pin: origin "" +Pin-Priority: 600 diff --git a/tools/rocm-build/docker/ubuntu24/packages b/tools/rocm-build/docker/ubuntu24/packages new file mode 100644 index 000000000..346335a15 --- /dev/null +++ b/tools/rocm-build/docker/ubuntu24/packages @@ -0,0 +1,140 @@ +# List of packages needed for stage1 build +apt-utils +aria2 +autoconf +automake +bc +bison +bridge-utils +build-essential +bzip2 +ccache +check +chrpath +cifs-utils +cmake +cpio +curl +devscripts +dos2unix +doxygen +fakeroot +flex +freeglut3-dev +g++ +g++-multilib +# gawk is needed for aomp +gawk +gcc +gcc-multilib +gfortran +git-lfs +gnupg +googletest +graphviz +kernel-wedge +# kmod for kernel build +kmod +lbzip2 +# less is needed by repo +less +libass-dev +libatlas-base-dev +libbabeltrace-dev +libboost-all-dev +libboost-dev +libboost-filesystem-dev +libboost-program-options-dev +libboost-system-dev +libbz2-dev +libc++-dev +libc++1 +libc++abi-dev +libc++abi1 +libc6-dev-i386 +libcap-dev +libcurl4-openssl-dev +libdrm-dev +libdw-dev +libdw1 +libdwarf-dev +libelf-dev +libelf1 +libexpat1-dev +libfftw3-dev +libfile-find-rule-perl +libgflags-dev +libglew-dev +libgmp-dev +libgoogle-glog-dev +libgtk2.0-dev +libhdf5-dev +libjpeg-dev +libleveldb-dev +liblmdb-dev +liblzma-dev +libmpfr-dev +libmpich-dev +libmsgpack-dev +libncurses-dev +libnuma-dev +libomp-dev +libopenblas-dev +libpci-dev +libpci3 +libpciaccess-dev +libpciaccess0 +libprotobuf-dev +libpython3-dev +libreadline-dev +libsnappy-dev +libssl-dev +libsuitesparse-dev +libsystemd-dev +libtool +liburi-encode-perl +libva-dev +libvirt-clients +libvirt-daemon-system +libyaml-cpp-dev +llvm +llvm-dev +llvm-runtime +mesa-common-dev +mpich +ocaml +ocaml-findlib +patchelf +pigz +pkg-config +protobuf-compiler +python-is-python3 +python3-barectf +python3-dev +python3-pip +python3-pip-whl +python3-requests +python3-venv +python3-yaml +python3-yaml +re2c +redis-tools +# hipclang needs rpm +rpm +rsync +ssh +# This makes life more pleasent inside the container +strace +sudo +systemtap-sdt-dev +texinfo +texlive +texlive-extra-utils +texlive-plain-generic +texlive-xetex +unzip +vim +wget +xsltproc +xxd +zlib1g-dev diff --git a/tools/rocm-build/envsetup.sh b/tools/rocm-build/envsetup.sh index 9cf30190d..2d1d27e4b 100755 --- a/tools/rocm-build/envsetup.sh +++ b/tools/rocm-build/envsetup.sh @@ -123,9 +123,12 @@ if [ -d "$HSA_OPENSOURCE_ROOT/ROCT-Thunk-Interface" ]; then export THUNK_ROOT=$HSA_OPENSOURCE_ROOT/ROCT-Thunk-Interface fi export AQLPROFILE_ROOT=$WORK_ROOT/hsa/aqlprofile +export OMNIPERF_ROOT=$WORK_ROOT/omniperf export ROCPROFILER_ROOT=$WORK_ROOT/rocprofiler export ROCTRACER_ROOT=$WORK_ROOT/roctracer export ROCPROFILER_REGISTER_ROOT=$WORK_ROOT/rocprofiler-register +export ROCPROFILER_SDK_ROOT=$WORK_ROOT/rocprofiler-sdk +export OMNITRACE_ROOT=$WORK_ROOT/omnitrace export RDC_ROOT=$WORK_ROOT/rdc export RDCTST_ROOT=$RDC_ROOT/tests/rdc_tests export UTILS_ROOT=$WORK_ROOT/rocm-utils @@ -147,7 +150,6 @@ export ROCM_CORE_ROOT=$WORK_ROOT/rocm-core export ROCM_CMAKE_ROOT=$WORK_ROOT/rocm-cmake export ROCM_BANDWIDTH_TEST_ROOT=$WORK_ROOT/rocm_bandwidth_test export ROCMINFO_ROOT=$WORK_ROOT/rocminfo -export CLANG_OCL_ROOT=$WORK_ROOT/clang-ocl export ROCR_DEBUG_AGENT_ROOT=$WORK_ROOT/rocr_debug_agent export COMGR_ROOT=$LLVM_PROJECT_ROOT/amd/comgr export COMGR_LIB_PATH=$OUT_DIR/build/amd_comgr @@ -179,7 +181,7 @@ export BUILD_ARTIFACTS=$OUT_DIR/$PACKAGEEXT export HIPCC_COMPILE_FLAGS_APPEND="-O3 -Wno-format-nonliteral -parallel-jobs=4" export HIPCC_LINK_FLAGS_APPEND="-O3 -parallel-jobs=4" -export PATH="${ROCM_PATH}/lib/llvm/bin:${PATH}" +export PATH="${ROCM_PATH}/bin:${ROCM_PATH}/lib/llvm/bin:${PATH}" export LC_ALL=C.UTF-8 export LANG=C.UTF-8 diff --git a/tools/rocm-build/rocm-6.1.2.xml b/tools/rocm-build/rocm-6.1.2.xml deleted file mode 100644 index 94dedfa3c..000000000 --- a/tools/rocm-build/rocm-6.1.2.xml +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/rocm-build/rocm-6.2.0.xml b/tools/rocm-build/rocm-6.2.0.xml index 981598b67..d9bdc9629 100644 --- a/tools/rocm-build/rocm-6.2.0.xml +++ b/tools/rocm-build/rocm-6.2.0.xml @@ -6,30 +6,29 @@ sync-c="true" sync-j="4" /> + + + + - + - - - - - - - - - + + + + - - - + + + @@ -72,5 +71,4 @@ - - + \ No newline at end of file diff --git a/tools/rocm-build/rocm-6.1.1.xml b/tools/rocm-build/rocm-6.2.1.xml similarity index 89% rename from tools/rocm-build/rocm-6.1.1.xml rename to tools/rocm-build/rocm-6.2.1.xml index 868fabfd9..e70601529 100644 --- a/tools/rocm-build/rocm-6.1.1.xml +++ b/tools/rocm-build/rocm-6.2.1.xml @@ -1,71 +1,74 @@ - - + - + + + + + - - + - - + - - + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - + + + + + + + + - + \ No newline at end of file diff --git a/tools/rocm-build/rocm-6.1.0.xml b/tools/rocm-build/rocm-6.2.2.xml similarity index 90% rename from tools/rocm-build/rocm-6.1.0.xml rename to tools/rocm-build/rocm-6.2.2.xml index 83f1b0e41..b63a304aa 100644 --- a/tools/rocm-build/rocm-6.1.0.xml +++ b/tools/rocm-build/rocm-6.2.2.xml @@ -1,68 +1,71 @@ - - + - + + + + + - - + - - + - - + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - + + + + + + + +