168 lines
6.6 KiB
YAML
168 lines
6.6 KiB
YAML
trigger:
|
|
# start a new build for every push
|
|
batch: False
|
|
branches:
|
|
include:
|
|
- develop
|
|
resources:
|
|
containers:
|
|
- container: oneapi-hpckit
|
|
image: intel/oneapi-hpckit:latest
|
|
options: '-v /usr/bin/sudo:/usr/bin/sudo -v /usr/lib/sudo/libsudo_util.so.0:/usr/lib/sudo/libsudo_util.so.0 -v /usr/lib/sudo/sudoers.so:/usr/lib/sudo/sudoers.so'
|
|
- container: oneapi-basekit
|
|
image: intel/oneapi-basekit:latest
|
|
options: '-v /usr/bin/sudo:/usr/bin/sudo -v /usr/lib/sudo/libsudo_util.so.0:/usr/lib/sudo/libsudo_util.so.0 -v /usr/lib/sudo/sudoers.so:/usr/lib/sudo/sudoers.so'
|
|
|
|
jobs:
|
|
# manylinux1 is useful to test because the
|
|
# standard Docker container uses an old version
|
|
# of gcc / glibc
|
|
- job: manylinux1_gcc
|
|
pool:
|
|
vmImage: 'ubuntu-16.04'
|
|
steps:
|
|
- script: |
|
|
echo "FROM quay.io/pypa/manylinux1_x86_64
|
|
COPY . /tmp/openblas
|
|
RUN cd /tmp/openblas && \
|
|
COMMON_FLAGS='DYNAMIC_ARCH=1 TARGET=NEHALEM NUM_THREADS=32' && \
|
|
BTYPE='BINARY=64' CC=gcc && \
|
|
make QUIET_MAKE=1 $COMMON_FLAGS $BTYPE && \
|
|
make -C test $COMMON_FLAGS $BTYPE && \
|
|
make -C ctest $COMMON_FLAGS $BTYPE && \
|
|
make -C utest $COMMON_FLAGS $BTYPE" > Dockerfile
|
|
docker build .
|
|
displayName: Run manylinux1 docker build
|
|
- job: Intel_SDE_skx
|
|
pool:
|
|
vmImage: 'ubuntu-16.04'
|
|
steps:
|
|
- script: |
|
|
# at the time of writing the available Azure Ubuntu vm image
|
|
# does not support AVX512VL, so use more recent LTS version
|
|
echo "FROM ubuntu:bionic
|
|
COPY . /tmp/openblas
|
|
RUN apt-get -y update && apt-get -y install \\
|
|
cmake \\
|
|
gfortran \\
|
|
make \\
|
|
wget
|
|
RUN mkdir /tmp/SDE && cd /tmp/SDE && \\
|
|
mkdir sde-external-8.35.0-2019-03-11-lin && \\
|
|
wget --quiet -O sde-external-8.35.0-2019-03-11-lin.tar.bz2 https://www.dropbox.com/s/fopsnzj67572sj5/sde-external-8.35.0-2019-03-11-lin.tar.bz2?dl=0 && \\
|
|
tar -xjvf sde-external-8.35.0-2019-03-11-lin.tar.bz2 -C /tmp/SDE/sde-external-8.35.0-2019-03-11-lin --strip-components=1
|
|
RUN cd /tmp/openblas && CC=gcc make QUIET_MAKE=1 DYNAMIC_ARCH=1 NUM_THREADS=32 BINARY=64
|
|
CMD cd /tmp/openblas && echo 0 > /proc/sys/kernel/yama/ptrace_scope && CC=gcc OPENBLAS_VERBOSE=2 /tmp/SDE/sde-external-8.35.0-2019-03-11-lin/sde64 -cpuid_in /tmp/SDE/sde-external-8.35.0-2019-03-11-lin/misc/cpuid/skx/cpuid.def -- make -C utest DYNAMIC_ARCH=1 NUM_THREADS=32 BINARY=64" > Dockerfile
|
|
docker build -t intel_sde .
|
|
# we need a privileged docker run for sde process attachment
|
|
docker run --privileged intel_sde
|
|
displayName: 'Run AVX512 SkylakeX docker build / test'
|
|
|
|
- job: Windows_cl
|
|
pool:
|
|
vmImage: 'windows-latest'
|
|
steps:
|
|
- task: CMake@1
|
|
inputs:
|
|
workingDirectory: 'build' # Optional
|
|
cmakeArgs: '-G "Visual Studio 16 2019" ..'
|
|
- task: CMake@1
|
|
inputs:
|
|
cmakeArgs: '--build . --config Release'
|
|
workingDirectory: 'build'
|
|
- script: |
|
|
cd build
|
|
cd utest
|
|
dir
|
|
openblas_utest.exe
|
|
|
|
- job: OSX_OpenMP
|
|
pool:
|
|
vmImage: 'macOS-10.15'
|
|
steps:
|
|
- script: |
|
|
brew update
|
|
make TARGET=CORE2 DYNAMIC_ARCH=1 USE_OPENMP=1 INTERFACE64=1 CC=gcc-10 FC=gfortran-10
|
|
|
|
- job: OSX_GCC_Nothreads
|
|
pool:
|
|
vmImage: 'macOS-10.15'
|
|
steps:
|
|
- script: |
|
|
brew update
|
|
make USE_THREADS=0 CC=gcc-10 FC=gfortran-10
|
|
|
|
- job: OSX_OpenMP_Clang
|
|
pool:
|
|
vmImage: 'macOS-10.15'
|
|
variables:
|
|
LD_LIBRARY_PATH: /usr/local/opt/llvm/lib
|
|
LIBRARY_PATH: /usr/local/opt/llvm/lib
|
|
steps:
|
|
- script: |
|
|
brew update
|
|
brew install llvm libomp
|
|
make TARGET=CORE2 USE_OPENMP=1 INTERFACE64=1 DYNAMIC_ARCH=1 CC=/usr/local/opt/llvm/bin/clang FC=gfortran-10
|
|
|
|
- job: OSX_Ifort_Clang
|
|
pool:
|
|
vmImage: 'macOS-10.15'
|
|
variables:
|
|
LD_LIBRARY_PATH: /usr/local/opt/llvm/lib
|
|
MACOS_HPCKIT_URL: https://registrationcenter-download.intel.com/akdlm/irc_nas/17643/m_HPCKit_p_2021.2.0.2903_offline.dmg
|
|
LIBRARY_PATH: /usr/local/opt/llvm/lib
|
|
MACOS_FORTRAN_COMPONENTS: intel.oneapi.mac.ifort-compiler
|
|
steps:
|
|
- script: |
|
|
brew update
|
|
brew install llvm libomp
|
|
sudo mkdir -p /opt/intel
|
|
sudo chown $USER /opt/intel
|
|
displayName: prepare for cache restore
|
|
- task: Cache@2
|
|
inputs:
|
|
path: /opt/intel/oneapi
|
|
key: '"install" | "$(MACOS_HPCKIT_URL)" | "$(MACOS_FORTRAN_COMPONENTS)"'
|
|
cacheHitVar: CACHE_RESTORED
|
|
- script: |
|
|
curl --output webimage.dmg --url $(MACOS_HPCKIT_URL) --retry 5 --retry-delay 5
|
|
hdiutil attach webimage.dmg
|
|
sudo /Volumes/"$(basename "$(MACOS_HPCKIT_URL)" .dmg)"/bootstrapper.app/Contents/MacOS/bootstrapper -s --action install --components="$(MACOS_FORTRAN_COMPONENTS)" --eula=accept --continue-with-optional-error=yes --log-dir=.
|
|
installer_exit_code=$?
|
|
hdiutil detach /Volumes/"$(basename "$URL" .dmg)" -quiet
|
|
exit $installer_exit_code
|
|
displayName: install
|
|
condition: ne(variables.CACHE_RESTORED, 'true')
|
|
- script: |
|
|
source /opt/intel/oneapi/setvars.sh
|
|
make CC=/usr/local/opt/llvm/bin/clang FC=ifort
|
|
|
|
- job: OSX_NDK_ARMV7
|
|
pool:
|
|
vmImage: 'macOS-10.15'
|
|
steps:
|
|
- script: |
|
|
brew update
|
|
brew install --cask android-ndk
|
|
export ANDROID_NDK_HOME=/usr/local/share/android-ndk
|
|
make TARGET=ARMV7 ONLY_CBLAS=1 CC=$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/darwin-x86_64/bin/armv7a-linux-androideabi21-clang AR=$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-ar HOSTCC=gcc ARM_SOFTFP_ABI=1 -j4
|
|
|
|
- job: ALPINE_MUSL
|
|
pool:
|
|
vmImage: 'ubuntu-latest'
|
|
steps:
|
|
- script: |
|
|
wget 'https://raw.githubusercontent.com/alpinelinux/alpine-chroot-install/v0.9.0/alpine-chroot-install' \
|
|
&& echo 'e5dfbbdc0c4b3363b99334510976c86bfa6cb251 alpine-chroot-install' | sha1sum -c || exit 1
|
|
alpine() { /alpine/enter-chroot -u "$USER" "$@"; }
|
|
sudo sh alpine-chroot-install -p 'build-base gfortran perl linux-headers sudo'
|
|
alpine make DYNAMIC_ARCH=1 BINARY=64
|
|
alpine make DYNAMIC_ARCH=1 BINARY=64 PREFIX=mytestdir install
|
|
alpine ls -l mytestdir/include
|
|
alpine echo "// tests that inclusion of openblas_config.h works with musl" >test_install.c
|
|
alpine echo "#include <openblas_config.h>" >>test_install.c
|
|
alpine echo "int main(){" >> test_install.c
|
|
alpine echo "cpu_set_t* cpu_set = NULL;}" >>test_install.c
|
|
alpine gcc -Imytestdir/include test_install.c -Lmytestdir/lib -lopenblas -lpthread -lgfortran -o test_install
|
|
|