Add 'projects/rocshmem/' from commit '0496586829058af5cfd7f23acda2a6d0040da584'
git-subtree-dir: projects/rocshmem git-subtree-mainline:5fd976da70git-subtree-split:0496586829
This commit is contained in:
+99
@@ -0,0 +1,99 @@
|
||||
###############################################################################
|
||||
# Copyright (c) Advanced Micro Devices, Inc. All rights reserved.
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to
|
||||
# deal in the Software without restriction, including without limitation the
|
||||
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
# sell copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included in
|
||||
# all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
# IN THE SOFTWARE.
|
||||
###############################################################################
|
||||
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
set -o pipefail
|
||||
|
||||
if [[ -z "${_ROCM_DIR}" ]]; then
|
||||
export _ROCM_DIR=/opt/rocm
|
||||
fi
|
||||
|
||||
# Location of dependencies source code
|
||||
_BUILD_DIR=${BUILD_DIR:-$PWD}
|
||||
export _INSTALL_DIR=${INSTALL_DIR:-$_BUILD_DIR/install}
|
||||
echo "rocSHMEM dependencies UCX and Open MPI will install in $_INSTALL_DIR"
|
||||
|
||||
export _DEPS_SRC_DIR=$_BUILD_DIR/deps-src
|
||||
mkdir -p $_DEPS_SRC_DIR
|
||||
|
||||
#Adjust branches and installation location as necessary
|
||||
export _UCX_INSTALL_DIR=${INSTALL_DIR:-$_INSTALL_DIR/ucx}
|
||||
export _UCX_REPO=https://github.com/ROCm/ucx.git
|
||||
export _UCX_COMMIT_HASH=18770fdc1c3b5de202d14a088a14b734d2c4bbf3
|
||||
|
||||
export _OMPI_INSTALL_DIR=${INSTALL_DIR:-$_INSTALL_DIR/ompi}
|
||||
export _OMPI_REPO=https://github.com/ROCm/ompi.git
|
||||
export _OMPI_COMMIT_HASH=697a596dde68815fe50db3c2a75a42ddb41b5ef4
|
||||
|
||||
# Step 1: Build UCX with ROCm support
|
||||
cd $_DEPS_SRC_DIR
|
||||
rm -rf ucx
|
||||
git clone $_UCX_REPO
|
||||
cd ucx
|
||||
git checkout $_UCX_COMMIT_HASH
|
||||
./autogen.sh
|
||||
./contrib/configure-release --prefix=$_UCX_INSTALL_DIR \
|
||||
--with-rocm=$_ROCM_DIR \
|
||||
--enable-mt \
|
||||
--without-go \
|
||||
--without-java \
|
||||
--without-cuda \
|
||||
--without-knem
|
||||
make -j
|
||||
make install
|
||||
|
||||
# Step 2: Install OpenMPI with UCX support
|
||||
cd $_DEPS_SRC_DIR
|
||||
rm -rf ompi
|
||||
git clone --recursive $_OMPI_REPO
|
||||
cd ompi
|
||||
git checkout $_OMPI_COMMIT_HASH
|
||||
git submodule update --init --recursive
|
||||
python3 -m ensurepip && python3 -m venv venv || python3 -m venv --system-site-packages --without-pip venv
|
||||
. venv/bin/activate
|
||||
python3 -m pip install -r docs/requirements.txt
|
||||
./autogen.pl
|
||||
./configure --prefix=$_OMPI_INSTALL_DIR \
|
||||
--with-rocm=$_ROCM_DIR \
|
||||
--with-ucx=$_UCX_INSTALL_DIR \
|
||||
--disable-oshmem \
|
||||
--with-prrte=internal \
|
||||
--with-hwloc=internal \
|
||||
--with-libevent=internal \
|
||||
--without-cuda \
|
||||
--disable-mpi-fortran \
|
||||
--without-ofi
|
||||
make -j
|
||||
make install
|
||||
|
||||
rm -rf $_DEPS_SRC_DIR
|
||||
|
||||
echo "Dependencies for rocSHMEM are now installed"
|
||||
echo ""
|
||||
echo "UCX ($_UCX_COMMIT_HASH) Installed to $_UCX_INSTALL_DIR"
|
||||
echo "OpenMPI ($_OMPI_COMMIT_HASH) Installed to $_OMPI_INSTALL_DIR"
|
||||
echo ""
|
||||
echo "Please update your PATH and LD_LIBRARY_PATH"
|
||||
Reference in New Issue
Block a user