Created
October 12, 2023 12:15
-
-
Save antoine-morvan/bf6168f51f7d3b0058f69a664a9d7217 to your computer and use it in GitHub Desktop.
OpenBLAS build steps reproducer
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
############################################################################### | |
#### Header | |
############################################################################### | |
set -e -u -o pipefail | |
TEST_SCRIPT_DIR=$(dirname $(readlink -f $BASH_SOURCE)) | |
############################################################################### | |
#### Fetch & extract openblas | |
############################################################################### | |
OPENBLAS_VERSION=0.3.24 | |
OPENBLAS_DIR=OpenBLAS-${OPENBLAS_VERSION} | |
OPENBLAS_ARCHIVE=${OPENBLAS_DIR}.tar.gz | |
OPENBLAS_URL=https://github.com/xianyi/OpenBLAS/releases/download/v${OPENBLAS_VERSION}/${OPENBLAS_ARCHIVE} | |
echo Fetch Archive | |
[ ! -f ~/Downloads/$OPENBLAS_ARCHIVE ] && wget ${OPENBLAS_URL} -o ~/Downloads/$OPENBLAS_ARCHIVE | |
[ ! -f $TEST_SCRIPT_DIR/$OPENBLAS_ARCHIVE ] && cp ~/Downloads/$OPENBLAS_ARCHIVE $TEST_SCRIPT_DIR/$OPENBLAS_ARCHIVE | |
echo Extract Archive | |
[ ! -d $TEST_SCRIPT_DIR/$OPENBLAS_DIR ] && (cd $TEST_SCRIPT_DIR/ && tar xf $TEST_SCRIPT_DIR/$OPENBLAS_ARCHIVE) | |
############################################################################### | |
#### Source / prepare compiler | |
############################################################################### | |
module load gcc-13.2.0 | |
export CC=gcc | |
export CXX=g++ | |
export FC=gfortran | |
CFLAGS="-O3 -mcpu=native" | |
FCFLAGS="$CFLAGS" | |
CXXFLAGS="$CFLAGS" | |
############################################################################### | |
#### Make build | |
############################################################################### | |
echo Build Make | |
BUILD_DIR=$TEST_SCRIPT_DIR/$OPENBLAS_DIR | |
set +e | |
(cd ${BUILD_DIR} && make USE_THREAD=1 USE_OPENMP=1 -j $(nproc)) | |
RES=$? | |
set -e | |
[ $RES != 0 ] && (cd ${BUILD_DIR} && make make USE_THREAD=1 USE_OPENMP=1) | |
exit 0 | |
############################################################################### | |
#### CMake build | |
############################################################################### | |
echo Build CMake | |
BUILD_DIR=$TEST_SCRIPT_DIR/build | |
echo "Prepare build dir $BUILD_DIR" | |
mkdir -p $BUILD_DIR | |
(cd $BUILD_DIR && cmake \ | |
-Wno-dev \ | |
-G "Unix Makefiles" \ | |
-DCMAKE_BUILD_TYPE=Release \ | |
-DBUILD_SHARED_LIBS=ON \ | |
-DBUILD_STATIC_LIBS=ON \ | |
-DUSE_THREAD=ON \ | |
-DUSE_OPENMP=ON \ | |
$TEST_SCRIPT_DIR/$OPENBLAS_DIR) | |
set +e | |
(cd ${BUILD_DIR} && make -j $(nproc)) | |
RES=$? | |
set -e | |
[ $RES != 0 ] && (cd ${BUILD_DIR} && make VERBOSE=1) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment