-
Notifications
You must be signed in to change notification settings - Fork 109
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Squashed 'lib/mmseqs/' changes from 17cd5c09..35537c46
35537c46 Make sure cuda binaries do not depend on dynamic libatomic 7e2732cd Readd tweaked hack to remove GLIBC_PRIVATE symbols 8bf7c5e6 Debug glibc check for GPU builds 6e46b5e2 Terminate unpadded sequences with \n\0 e6f0328b Fully revert cmake version string change 64f03d46 Next try with build system cleanup e840263e Forgot wget 5140ceb0 Fix build system breakage 9927445c Sync build system changes with foldseek changes relicensed as MIT for MMseqs2 b0e91c12 Fix soedinglab/MMseqs2#912 git-subtree-dir: lib/mmseqs git-subtree-split: 35537c46a00c33db96409ce6aea42a42224f7917
- Loading branch information
1 parent
c621f8b
commit 2fa7419
Showing
8 changed files
with
195 additions
and
116 deletions.
There are no files selected for viewing
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
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -68,22 +68,22 @@ jobs: | |
SIMD: 'AVX2' | ||
STATIC: 1 | ||
MPI: 0 | ||
BUILD_TYPE: RelWithDebInfo | ||
BUILD_TYPE: Release | ||
sse41: | ||
SIMD: 'SSE4_1' | ||
STATIC: 1 | ||
MPI: 0 | ||
BUILD_TYPE: RelWithDebInfo | ||
BUILD_TYPE: Release | ||
sse2: | ||
SIMD: 'SSE2' | ||
STATIC: 1 | ||
MPI: 0 | ||
BUILD_TYPE: RelWithDebInfo | ||
BUILD_TYPE: Release | ||
avx2_mpi: | ||
SIMD: 'AVX2' | ||
STATIC: 0 | ||
MPI: 1 | ||
BUILD_TYPE: RelWithDebInfo | ||
BUILD_TYPE: Release | ||
asan: | ||
SIMD: 'AVX2' | ||
STATIC: 0 | ||
|
@@ -94,10 +94,9 @@ jobs: | |
- checkout: self | ||
submodules: true | ||
- script: | | ||
#sudo add-apt-repository ppa:ubuntu-toolchain-r/test | ||
#sudo apt-get update | ||
sudo apt-get install -y g++-10 | ||
condition: eq(variables['BUILD_TYPE'], 'ASanOpt') | ||
sudo add-apt-repository ppa:ubuntu-toolchain-r/test | ||
sudo apt-get update | ||
sudo apt-get install -y gcc-11 g++-11 libgcc-11-dev build-essential | ||
displayName: Install newer G++ | ||
- script: | | ||
sudo apt-get update | ||
|
@@ -106,28 +105,21 @@ jobs: | |
condition: eq(variables['MPI'], 1) | ||
- script: | | ||
mkdir build && cd build | ||
if [ "${BUILD_TYPE}" = "ASanOpt" ]; then | ||
export CC=gcc-10 ; export CXX=g++-10 | ||
fi | ||
export CC=gcc-11 ; export CXX=g++-11 | ||
if [ "${STATIC}" -eq "1" ]; then | ||
cmake -DHAVE_SANITIZER=1 -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DHAVE_TESTS=1 \ | ||
-DBUILD_SHARED_LIBS=OFF \ | ||
-DCMAKE_EXE_LINKER_FLAGS="-static -static-libgcc \ | ||
-static-libstdc++" -DCMAKE_FIND_LIBRARY_SUFFIXES=".a" \ | ||
-DENABLE_WERROR=1 -DHAVE_${SIMD}=1 -DHAVE_MPI=${MPI} .. | ||
LIBGOMP=/usr/lib/gcc/x86_64-linux-gnu/11 | ||
cmake -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DFORCE_STATIC_DEPS=1 -DHAVE_TESTS=1 \ | ||
-DOpenMP_C_FLAGS="-fopenmp -I${LIBGOMP}" -DOpenMP_C_LIB_NAMES=gomp -DOpenMP_CXX_FLAGS="-fopenmp -I${LIBGOMP}" -DOpenMP_CXX_LIB_NAMES=gomp -DOpenMP_gomp_LIBRARY=${LIBGOMP}/libgomp.a \ | ||
-DENABLE_WERROR=1 -DHAVE_${SIMD}=1 -DHAVE_MPI=${MPI} .. | ||
else | ||
cmake -DHAVE_SANITIZER=1 -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DHAVE_TESTS=1 \ | ||
-DENABLE_WERROR=1 -DHAVE_${SIMD}=1 -DHAVE_MPI=${MPI} .. | ||
cmake -DHAVE_SANITIZER=1 -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DHAVE_TESTS=1 \ | ||
-DENABLE_WERROR=1 -DHAVE_${SIMD}=1 -DHAVE_MPI=${MPI} .. | ||
fi | ||
make -j $(nproc --all) | ||
make -j $(nproc --all) VERBOSE=1 | ||
displayName: Build MMseqs2 | ||
- script: | | ||
export TTY=0 | ||
if [ "${BUILD_TYPE}" = "ASan" ]; then | ||
echo "leak:libgomp1" > ${BUILD_SOURCESDIRECTORY}/ASan.supp | ||
export ASAN_OPTIONS=suppressions=${BUILD_SOURCESDIRECTORY}/ASan.supp | ||
fi | ||
${BUILD_SOURCESDIRECTORY}/util/regression/run_regression.sh ${BUILD_SOURCESDIRECTORY}/build/src/mmseqs ${BUILD_SOURCESDIRECTORY}/regression | ||
displayName: Run Regression Suite | ||
condition: eq(variables['regression'], 1) | ||
|
@@ -149,7 +141,7 @@ jobs: | |
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-keyring_1.1-1_all.deb | ||
sudo dpkg -i cuda-keyring_1.1-1_all.deb | ||
sudo apt-get update | ||
sudo apt-get install -y gcc-10 g++-10 cuda-nvcc-12-6 build-essential libgcc-10-dev ninja-build | ||
sudo apt-get install -y gcc-10 g++-10 cuda-nvcc-12-6 cuda-cudart-dev-12-6 build-essential libgcc-10-dev ninja-build | ||
sudo apt-get purge -y cmake | ||
wget https://github.com/Kitware/CMake/releases/download/v3.31.0/cmake-3.31.0-linux-x86_64.sh | ||
chmod +x cmake-3.31.0-linux-x86_64.sh | ||
|
@@ -158,18 +150,25 @@ jobs: | |
- script: | | ||
mkdir build && cd build | ||
export CC=gcc-10 ; export CXX=g++-10; export CUDAHOSTCXX=$CXX; export CUDACXX=/usr/local/cuda/bin/nvcc; | ||
LIBGCC=/usr/lib/gcc/x86_64-linux-gnu/10; | ||
/usr/local/bin/cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DHAVE_TESTS=1 -DENABLE_WERROR=1 -DHAVE_AVX2=1 \ | ||
-DPREFER_STATIC=1 -DCMAKE_LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/10 -DBUILD_SHARED_LIBS=OFF \ | ||
-DCMAKE_EXE_LINKER_FLAGS="-static-libgcc -static-libstdc++" \ | ||
-DENABLE_CUDA=1 -DCMAKE_CUDA_ARCHITECTURES="75-real;80-real;86-real;89-real;90" .. | ||
cmake --build . -j$(nproc --all) | ||
-DOpenMP_C_FLAGS="-fopenmp -I${LIBGCC}" -DOpenMP_C_LIB_NAMES=gomp -DOpenMP_CXX_FLAGS="-fopenmp -I${LIBGCC}" -DOpenMP_CXX_LIB_NAMES=gomp -DOpenMP_gomp_LIBRARY=${LIBGCC}/libgomp.a \ | ||
-DATOMIC_LIB_OVERRIDE=${LIBGCC}/libatomic.a \ | ||
-DFORCE_STATIC_DEPS=1 -DENABLE_CUDA=1 -DCMAKE_CUDA_ARCHITECTURES="75-real;80-real;86-real;89-real;90" .. | ||
cmake --build . -j$(nproc --all) -v | ||
# fail if GLIBC_PRIVATE or too new GLIBC is present | ||
if readelf -Ws mmseqs | grep -q GLIBC_PRIVATE; then | ||
if readelf -Ws src/mmseqs | grep -q GLIBC_PRIVATE; then | ||
echo "Error: binary contains private glibc symbols" | ||
exit 1 | ||
fi | ||
LIBC_V=$(readelf -V mmseqs | awk '$3 ~ /^GLIBC_/ { print $3 }' | sort -V | tail -n1) | ||
LIBC_V=$(readelf -V src/mmseqs | awk '$3 ~ /^GLIBC_/ { print $3 }' | sort -V | tail -n1) | ||
if [[ "$LIBC_V" > "GLIBC_2.29" ]]; then | ||
exit 1 | ||
echo "Error: glibc too new" | ||
exit 1 | ||
fi | ||
if readelf -d src/mmseqs | grep -q "libatomic.so"; then | ||
echo "Error: libatomic.so is present as a dependency" | ||
exit 1 | ||
fi | ||
displayName: Build MMseqs2 | ||
- task: PublishPipelineArtifact@0 | ||
|
@@ -184,10 +183,10 @@ jobs: | |
timeoutInMinutes: 120 | ||
strategy: | ||
matrix: | ||
power8: | ||
SIMD: POWER8 | ||
ARCH: ppc64el | ||
CPREF: powerpc64le | ||
# power8: | ||
# SIMD: POWER8 | ||
# ARCH: ppc64el | ||
# CPREF: powerpc64le | ||
power9: | ||
SIMD: POWER9 | ||
ARCH: ppc64el | ||
|
@@ -215,11 +214,10 @@ jobs: | |
displayName: Install Toolchain | ||
- script: | | ||
mkdir build && cd build | ||
LIBGOMP=/usr/lib/gcc-cross/${CPREF}-linux-gnu/9; | ||
CC=${CPREF}-linux-gnu-gcc CXX=${CPREF}-linux-gnu-g++ \ | ||
cmake -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DHAVE_TESTS=1 \ | ||
-DBUILD_SHARED_LIBS=OFF \ | ||
-DCMAKE_EXE_LINKER_FLAGS="-static -static-libgcc \ | ||
-static-libstdc++" -DCMAKE_FIND_LIBRARY_SUFFIXES=".a" \ | ||
cmake -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DHAVE_TESTS=1 -DFORCE_STATIC_DEPS=1 \ | ||
-DOpenMP_C_FLAGS="-fopenmp -I${LIBGOMP}" -DOpenMP_C_LIB_NAMES=gomp -DOpenMP_CXX_FLAGS="-fopenmp -I${LIBGOMP}" -DOpenMP_CXX_LIB_NAMES=gomp -DOpenMP_gomp_LIBRARY=${LIBGOMP}/libgomp.a \ | ||
-DENABLE_WERROR=1 -DHAVE_${SIMD}=1 .. | ||
make -j $(nproc --all) | ||
displayName: Build MMseqs2 | ||
|
@@ -382,18 +380,18 @@ jobs: | |
archiveFile: $(Build.SourcesDirectory)/mmseqs-linux-ppc64le-power9.tar.gz | ||
includeRootFolder: true | ||
archiveType: tar | ||
- task: DownloadPipelineArtifact@1 | ||
inputs: | ||
artifactName: mmseqs-linux-POWER8 | ||
targetPath: $(Build.SourcesDirectory)/mmseqs/bin | ||
- script: | ||
chmod +x "${BUILD_SOURCESDIRECTORY}/mmseqs/bin/mmseqs" | ||
- task: ArchiveFiles@2 | ||
inputs: | ||
rootFolderOrFile: $(Build.SourcesDirectory)/mmseqs | ||
archiveFile: $(Build.SourcesDirectory)/mmseqs-linux-ppc64le-power8.tar.gz | ||
includeRootFolder: true | ||
archiveType: tar | ||
# - task: DownloadPipelineArtifact@1 | ||
# inputs: | ||
# artifactName: mmseqs-linux-POWER8 | ||
# targetPath: $(Build.SourcesDirectory)/mmseqs/bin | ||
# - script: | ||
# chmod +x "${BUILD_SOURCESDIRECTORY}/mmseqs/bin/mmseqs" | ||
# - task: ArchiveFiles@2 | ||
# inputs: | ||
# rootFolderOrFile: $(Build.SourcesDirectory)/mmseqs | ||
# archiveFile: $(Build.SourcesDirectory)/mmseqs-linux-ppc64le-power8.tar.gz | ||
# includeRootFolder: true | ||
# archiveType: tar | ||
- task: DownloadPipelineArtifact@1 | ||
inputs: | ||
artifactName: mmseqs-linux-ARM8 | ||
|
@@ -431,6 +429,8 @@ jobs: | |
ssh-keygen -f ~/.ssh/id_rsa -y > ~/.ssh/id_rsa.pub | ||
cd "${BUILD_SOURCESDIRECTORY}" | ||
cp mmseqs/userguide.pdf userguide.pdf | ||
# disabled: mmseqs-linux-ppc64le-power8.tar.gz | ||
# -F file[][email protected] -F signature[][email protected] | ||
ssh-keygen -Y sign -f ~/.ssh/id_rsa -n file \ | ||
userguide.pdf \ | ||
mmseqs-osx-universal.tar.gz \ | ||
|
@@ -439,7 +439,6 @@ jobs: | |
mmseqs-linux-avx2.tar.gz \ | ||
mmseqs-linux-gpu.tar.gz \ | ||
mmseqs-linux-arm64.tar.gz \ | ||
mmseqs-linux-ppc64le-power8.tar.gz \ | ||
mmseqs-linux-ppc64le-power9.tar.gz \ | ||
mmseqs-win64.zip | ||
curl --retry 5 --retry-all-errors -X POST \ | ||
|
@@ -450,7 +449,6 @@ jobs: | |
-F file[][email protected] -F signature[][email protected] \ | ||
-F file[][email protected] -F signature[][email protected] \ | ||
-F file[][email protected] -F signature[][email protected] \ | ||
-F file[][email protected] -F signature[][email protected] \ | ||
-F file[][email protected] -F signature[][email protected] \ | ||
-F file[][email protected] -F signature[][email protected] \ | ||
-F identifier="mmseqs" -F directory="${BUILD_SOURCEVERSION}" \ | ||
|
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
Oops, something went wrong.