Skip to content

Commit 548a9f3

Browse files
committed
Merge remote-tracking branch 'origin/develop' into HEAD
2 parents a69adbb + bc69f86 commit 548a9f3

3,019 files changed

Lines changed: 172598 additions & 79503 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.cirrus.yml

Lines changed: 53 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,47 @@
11
macos_instance:
22
image: ghcr.io/cirruslabs/macos-monterey-xcode:latest
33

4-
task:
5-
name: AppleM1/LLVM
6-
compile_script:
7-
- brew install llvm
8-
- export PATH=/opt/homebrew/opt/llvm/bin:$PATH
9-
- export LDFLAGS="-L/opt/homebrew/opt/llvm/lib"
10-
- export CPPFLAGS="-I/opt/homebrew/opt/llvm/include"
11-
- make TARGET=VORTEX USE_OPENMP=1 CC=clang
4+
#task:
5+
# name: AppleM1/LLVM
6+
# compile_script:
7+
# - brew install llvm
8+
# - export PATH=/opt/homebrew/opt/llvm/bin:$PATH
9+
# - export LDFLAGS="-L/opt/homebrew/opt/llvm/lib"
10+
# - export CPPFLAGS="-I/opt/homebrew/opt/llvm/include"
11+
# - make TARGET=VORTEX USE_OPENMP=1 CC=clang
1212

13-
task:
14-
name: AppleM1/LLVM/ILP64
15-
compile_script:
16-
- brew install llvm
17-
- export PATH=/opt/homebrew/opt/llvm/bin:$PATH
18-
- export LDFLAGS="-L/opt/homebrew/opt/llvm/lib"
19-
- export CPPFLAGS="-I/opt/homebrew/opt/llvm/include"
20-
- make TARGET=VORTEX USE_OPENMP=1 CC=clang INTERFACE64=1
13+
#task:
14+
# name: AppleM1/LLVM/ILP64
15+
# compile_script:
16+
# - brew install llvm
17+
# - export PATH=/opt/homebrew/opt/llvm/bin:$PATH
18+
# - export LDFLAGS="-L/opt/homebrew/opt/llvm/lib"
19+
# - export CPPFLAGS="-I/opt/homebrew/opt/llvm/include"
20+
# - make TARGET=VORTEX USE_OPENMP=1 CC=clang INTERFACE64=1
2121

22-
task:
23-
name: AppleM1/LLVM/CMAKE
24-
compile_script:
25-
- brew install llvm
26-
- export PATH=/opt/homebrew/opt/llvm/bin:$PATH
27-
- export LDFLAGS="-L/opt/homebrew/opt/llvm/lib"
28-
- export CPPFLAGS="-I/opt/homebrew/opt/llvm/include"
29-
- mkdir build
30-
- cd build
31-
- cmake -DTARGET=VORTEX -DCMAKE_C_COMPILER=clang -DBUILD_SHARED_LIBS=ON ..
32-
- make -j 4
22+
#task:
23+
# name: AppleM1/LLVM/CMAKE
24+
# compile_script:
25+
# - brew install llvm
26+
# - export PATH=/opt/homebrew/opt/llvm/bin:$PATH
27+
# - export LDFLAGS="-L/opt/homebrew/opt/llvm/lib"
28+
# - export CPPFLAGS="-I/opt/homebrew/opt/llvm/include"
29+
# - mkdir build
30+
# - cd build
31+
# - cmake -DTARGET=VORTEX -DCMAKE_C_COMPILER=clang -DBUILD_SHARED_LIBS=ON ..
32+
# - make -j 4
3333

34-
task:
35-
name: AppleM1/GCC/MAKE/OPENMP
36-
compile_script:
37-
- brew install gcc@11
38-
- export PATH=/opt/homebrew/bin:$PATH
39-
- export LDFLAGS="-L/opt/homebrew/lib"
40-
- export CPPFLAGS="-I/opt/homebrew/include"
41-
- make CC=gcc-11 FC=gfortran-11 USE_OPENMP=1
34+
#task:
35+
# name: AppleM1/GCC/MAKE/OPENMP
36+
# compile_script:
37+
# - brew install gcc@11
38+
# - export PATH=/opt/homebrew/bin:$PATH
39+
# - export LDFLAGS="-L/opt/homebrew/lib"
40+
# - export CPPFLAGS="-I/opt/homebrew/include"
41+
# - make CC=gcc-11 FC=gfortran-11 USE_OPENMP=1
4242

4343
macos_instance:
44-
image: ghcr.io/cirruslabs/macos-monterey-xcode:latest
44+
image: ghcr.io/cirruslabs/macos-sonoma-xcode:latest
4545
task:
4646
name: AppleM1/LLVM x86_64 xbuild
4747
compile_script:
@@ -58,8 +58,8 @@ task:
5858
- export VALID_ARCHS="i386 x86_64"
5959
- xcrun --sdk macosx --show-sdk-path
6060
- xcodebuild -version
61-
- export CC=/Applications/Xcode-14.0.0.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang
62-
- export CFLAGS="-O2 -unwindlib=none -Wno-macro-redefined -isysroot /Applications/Xcode-14.0.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.3.sdk -arch x86_64"
61+
- export CC=/Applications/Xcode_26.0.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang
62+
- export CFLAGS="-O2 -unwindlib=none -Wno-macro-redefined -isysroot /Applications/Xcode_26.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.0.sdk -arch x86_64"
6363
- make TARGET=CORE2 DYNAMIC_ARCH=1 NUM_THREADS=32 HOSTCC=clang NOFORTRAN=1 RANLIB="ls -l"
6464
always:
6565
config_artifacts:
@@ -70,35 +70,32 @@ task:
7070
# type: application/octet-streamm
7171

7272
macos_instance:
73-
image: ghcr.io/cirruslabs/macos-monterey-xcode:latest
73+
image: ghcr.io/cirruslabs/macos-sonoma-xcode:latest
7474
task:
7575
name: AppleM1/LLVM armv8-ios xbuild
7676
compile_script:
7777
- #brew install llvm
7878
- export #PATH=/opt/homebrew/opt/llvm/bin:$PATH
7979
- export #LDFLAGS="-L/opt/homebrew/opt/llvm/lib"
8080
- export #CPPFLAGS="-I/opt/homebrew/opt/llvm/include"
81-
- export CC=/Applications/Xcode-14.0.0.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang
82-
- export CFLAGS="-O2 -unwindlib=none -Wno-macro-redefined -isysroot /Applications/Xcode-14.0.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS16.0.sdk -arch arm64 -miphoneos-version-min=10.0"
81+
- export CC=/Applications/Xcode_26.0.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang
82+
- export CFLAGS="-O2 -unwindlib=none -Wno-macro-redefined -isysroot /Applications/Xcode_26.0.1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS26.0.sdk -arch arm64 -miphoneos-version-min=10.0"
83+
- xcrun --sdk iphoneos --show-sdk-path
84+
- ls -l /Applications
8385
- make TARGET=ARMV8 NUM_THREADS=32 HOSTCC=clang NOFORTRAN=1 CROSS=1
8486
always:
8587
config_artifacts:
8688
path: "*conf*"
8789
type: text/plain
8890

8991
macos_instance:
90-
image: ghcr.io/cirruslabs/macos-monterey-xcode:latest
92+
image: ghcr.io/cirruslabs/macos-sonoma-xcode:latest
9193
task:
9294
name: AppleM1/LLVM armv7-androidndk xbuild
9395
compile_script:
94-
- #brew install android-ndk
95-
- export #PATH=/opt/homebrew/opt/llvm/bin:$PATH
96-
- export #LDFLAGS="-L/opt/homebrew/opt/llvm/lib"
97-
- export #CPPFLAGS="-I/opt/homebrew/opt/llvm/include"
98-
- find /System/Volumes/Data/opt/homebrew/Caskroom/android-ndk/25b -name "armv7a-linux-androideabi*-ranlib"
99-
- #export CC=/Applications/Xcode-13.4.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang
100-
- #export CFLAGS="-O2 -unwindlib=none -Wno-macro-redefined -isysroot /Applications/Xcode-13.4.1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS16.0.sdk -arch arm64 -miphoneos-version-min=10.0"
101-
- export CC=/System/Volumes/Data/opt/homebrew/Caskroom/android-ndk/25b/AndroidNDK8937393.app/Contents/NDK/toolchains/llvm/prebuilt/darwin-x86_64/bin/armv7a-linux-androideabi23-clang
96+
- brew install --cask android-ndk
97+
- export ANDROID_NDK_HOME="/opt/homebrew/share/android-ndk"
98+
- export CC=/opt/homebrew/share/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/armv7a-linux-androideabi23-clang
10299
- make TARGET=ARMV7 ARM_SOFTFP_ABI=1 NUM_THREADS=32 HOSTCC=clang NOFORTRAN=1 RANLIB="ls -l"
103100
always:
104101
config_artifacts:
@@ -128,9 +125,9 @@ task:
128125
- make USE_OPENMP=1
129126

130127
FreeBSD_task:
131-
name: FreeBSD-gcc12
128+
name: FreeBSD-gcc
132129
freebsd_instance:
133-
image_family: freebsd-13-2
130+
image_family: freebsd-14-3
134131
install_script:
135132
- pkg update -f && pkg upgrade -y && pkg install -y gmake gcc
136133
compile_script:
@@ -139,9 +136,9 @@ FreeBSD_task:
139136

140137

141138
FreeBSD_task:
142-
name: freebsd-gcc12-ilp64
139+
name: freebsd-gcc-ilp64
143140
freebsd_instance:
144-
image_family: freebsd-13-2
141+
image_family: freebsd-14-3
145142
install_script:
146143
- pkg update -f && pkg upgrade -y && pkg install -y gmake gcc
147144
compile_script:
@@ -151,10 +148,10 @@ FreeBSD_task:
151148
FreeBSD_task:
152149
name: FreeBSD-clang-openmp
153150
freebsd_instance:
154-
image_family: freebsd-13-2
151+
image_family: freebsd-14-3
155152
install_script:
156153
- pkg update -f && pkg upgrade -y && pkg install -y gmake gcc
157-
- ln -s /usr/local/lib/gcc12/libgfortran.so.5.0.0 /usr/lib/libgfortran.so
154+
- ln -s /usr/local/lib/gcc14/libgfortran.so.5.0.0 /usr/lib/libgfortran.so
158155
compile_script:
159156
- gmake CC=clang FC=gfortran USE_OPENMP=1 CPP_THREAD_SAFETY_TEST=1
160157

.github/workflows/apple_m.yml

Lines changed: 157 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,157 @@
1+
name: apple m
2+
3+
on: [push, pull_request]
4+
5+
concurrency:
6+
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
7+
cancel-in-progress: true
8+
9+
permissions:
10+
contents: read # to fetch code (actions/checkout)
11+
12+
jobs:
13+
build:
14+
if: "github.repository == 'OpenMathLib/OpenBLAS'"
15+
runs-on: macos-14
16+
17+
strategy:
18+
fail-fast: false
19+
matrix:
20+
build: [cmake, make]
21+
fortran: [gfortran]
22+
openmp: [0, 1]
23+
ilp64: [0, 1]
24+
25+
steps:
26+
- name: Checkout repository
27+
uses: actions/checkout@v3
28+
29+
- name: Print system information
30+
run: |
31+
if [ "$RUNNER_OS" == "Linux" ]; then
32+
cat /proc/cpuinfo
33+
elif [ "$RUNNER_OS" == "macOS" ]; then
34+
sysctl -a | grep machdep.cpu
35+
else
36+
echo "::error::$RUNNER_OS not supported"
37+
exit 1
38+
fi
39+
40+
- name: Install Dependencies
41+
run: |
42+
if [ "$RUNNER_OS" == "Linux" ]; then
43+
sudo apt-get install -y gfortran cmake ccache libtinfo5
44+
elif [ "$RUNNER_OS" == "macOS" ]; then
45+
# It looks like "gfortran" isn't working correctly unless "gcc" is re-installed.
46+
brew reinstall gcc
47+
brew install coreutils ccache
48+
brew install llvm
49+
else
50+
echo "::error::$RUNNER_OS not supported"
51+
exit 1
52+
fi
53+
54+
- name: Compilation cache
55+
uses: actions/cache@v3
56+
with:
57+
path: ~/.ccache
58+
# We include the commit sha in the cache key, as new cache entries are
59+
# only created if there is no existing entry for the key yet.
60+
# GNU make and cmake call the compilers differently. It looks like
61+
# that causes the cache to mismatch. Keep the ccache for both build
62+
# tools separate to avoid polluting each other.
63+
key: ccache-${{ runner.os }}-${{ matrix.build }}-${{ matrix.fortran }}-${{ github.ref }}-${{ github.sha }}
64+
# Restore a matching ccache cache entry. Prefer same branch and same Fortran compiler.
65+
restore-keys: |
66+
ccache-${{ runner.os }}-${{ matrix.build }}-${{matrix.fortran }}-${{ github.ref }}
67+
ccache-${{ runner.os }}-${{ matrix.build }}-${{matrix.fortran }}
68+
ccache-${{ runner.os }}-${{ matrix.build }}
69+
70+
- name: Configure ccache
71+
run: |
72+
if [ "${{ matrix.build }}" = "make" ]; then
73+
# Add ccache to path
74+
if [ "$RUNNER_OS" = "Linux" ]; then
75+
echo "/usr/lib/ccache" >> $GITHUB_PATH
76+
elif [ "$RUNNER_OS" = "macOS" ]; then
77+
echo "$(brew --prefix)/opt/ccache/libexec" >> $GITHUB_PATH
78+
echo "/opt/homebrew/opt/llvm/bin" >>$GITHUB_PATH
79+
echo "" >>$GITHUB_PATH
80+
else
81+
echo "::error::$RUNNER_OS not supported"
82+
exit 1
83+
fi
84+
fi
85+
# Limit the maximum size and switch on compression to avoid exceeding the total disk or cache quota (5 GB).
86+
test -d ~/.ccache || mkdir -p ~/.ccache
87+
echo "max_size = 300M" > ~/.ccache/ccache.conf
88+
echo "compression = true" >> ~/.ccache/ccache.conf
89+
ccache -s
90+
91+
- name: Add gfortran runtime to link path
92+
if: matrix.build == 'make' && runner.os == 'macOS'
93+
run: |
94+
GFORTRAN_LIBDIR=$(gfortran -print-file-name=libgfortran.dylib | xargs dirname)
95+
echo "Using gfortran runtime in $GFORTRAN_LIBDIR"
96+
echo "LDFLAGS=-L/opt/homebrew/opt/llvm/lib -L$GFORTRAN_LIBDIR" >> $GITHUB_ENV
97+
98+
- name: Build OpenBLAS
99+
run: |
100+
export CPPFLAGS="-I/opt/homebrew/opt/llvm/include"
101+
export CC="/opt/homebrew/opt/llvm/bin/clang"
102+
export RANLIB=llvm-ranlib
103+
case "${{ matrix.build }}" in
104+
"make")
105+
make -j$(nproc) DYNAMIC_ARCH=1 USE_OPENMP=${{matrix.openmp}} INTERFACE64=${{matrix.ilp64}} FC="ccache ${{ matrix.fortran }}"
106+
;;
107+
"cmake")
108+
export LDFLAGS="$LDFLAGS -Wl,-ld_classic"
109+
mkdir build && cd build
110+
cmake -DDYNAMIC_ARCH=1 \
111+
-DUSE_OPENMP=${{matrix.openmp}} \
112+
-DOpenMP_Fortran_LIB_NAMES=omp \
113+
-DINTERFACE64=${{matrix.ilp64}} \
114+
-DNOFORTRAN=0 \
115+
-DBUILD_WITHOUT_LAPACK=0 \
116+
-DCMAKE_VERBOSE_MAKEFILE=ON \
117+
-DCMAKE_BUILD_TYPE=Release \
118+
-DCMAKE_Fortran_COMPILER=${{ matrix.fortran }} \
119+
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
120+
-DCMAKE_Fortran_COMPILER_LAUNCHER=ccache \
121+
..
122+
cmake --build .
123+
;;
124+
*)
125+
echo "::error::Configuration not supported"
126+
exit 1
127+
;;
128+
esac
129+
130+
- name: Show ccache status
131+
continue-on-error: true
132+
run: ccache -s
133+
134+
- name: Run tests
135+
timeout-minutes: 60
136+
run: |
137+
case "${{ matrix.build }}" in
138+
"make")
139+
MAKE_FLAGS='DYNAMIC_ARCH=1 USE_OPENMP=0'
140+
echo "::group::Tests in 'test' directory"
141+
make -C test $MAKE_FLAGS FC="ccache ${{ matrix.fortran }}"
142+
echo "::endgroup::"
143+
echo "::group::Tests in 'ctest' directory"
144+
make -C ctest $MAKE_FLAGS FC="ccache ${{ matrix.fortran }}"
145+
echo "::endgroup::"
146+
echo "::group::Tests in 'utest' directory"
147+
make -C utest $MAKE_FLAGS FC="ccache ${{ matrix.fortran }}"
148+
echo "::endgroup::"
149+
;;
150+
"cmake")
151+
cd build && ctest
152+
;;
153+
*)
154+
echo "::error::Configuration not supported"
155+
exit 1
156+
;;
157+
esac

.github/workflows/arm64_graviton.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,13 +88,14 @@ jobs:
8888
run: |
8989
case "${{ matrix.build }}" in
9090
"make")
91-
make -j$(nproc) DYNAMIC_ARCH=1 USE_OPENMP=0 FC="ccache ${{ matrix.fortran }}"
91+
make -j$(nproc) DYNAMIC_ARCH=1 BUILD_BFLOAT16=1 USE_OPENMP=0 FC="ccache ${{ matrix.fortran }}"
9292
;;
9393
"cmake")
9494
mkdir build && cd build
9595
cmake -DDYNAMIC_ARCH=1 \
9696
-DNOFORTRAN=0 \
9797
-DBUILD_WITHOUT_LAPACK=0 \
98+
-DBUILD_BFLOAT16=1 \
9899
-DCMAKE_VERBOSE_MAKEFILE=ON \
99100
-DCMAKE_BUILD_TYPE=Release \
100101
-DCMAKE_Fortran_COMPILER=${{ matrix.fortran }} \

0 commit comments

Comments
 (0)