Skip to content

Commit 2c68822

Browse files
authored
Merge pull request #4210 from xianyi/develop
merge develop into 0.3.0 for 0.3.24
2 parents 394a9fb + 3c51bd0 commit 2c68822

File tree

845 files changed

+48634
-6527
lines changed

Some content is hidden

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

845 files changed

+48634
-6527
lines changed

.cirrus.yml

Lines changed: 167 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,167 @@
1+
macos_instance:
2+
image: ghcr.io/cirruslabs/macos-monterey-xcode:latest
3+
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
12+
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
21+
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
33+
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
42+
43+
macos_instance:
44+
image: ghcr.io/cirruslabs/macos-monterey-xcode:latest
45+
task:
46+
name: AppleM1/LLVM x86_64 xbuild
47+
compile_script:
48+
- #brew install llvm
49+
- export #PATH=/opt/homebrew/opt/llvm/bin:$PATH
50+
- export #LDFLAGS="-L/opt/homebrew/opt/llvm/lib"
51+
- export #CPPFLAGS="-I/opt/homebrew/opt/llvm/include"
52+
- export ARCHS="i386 x86_64"
53+
- export ARCHS_STANDARD="i386 x86_64"
54+
- export ARCHS_STANDARD_32_64_BIT="i386 x86_64"
55+
- export ARCHS_STANDARD_64_BIT=x86_64
56+
- export ARCHS_STANDARD_INCLUDING_64_BIT="i386 x86_64"
57+
- export ARCHS_UNIVERSAL_IPHONE_OS="i386 x86_64"
58+
- export VALID_ARCHS="i386 x86_64"
59+
- xcrun --sdk macosx --show-sdk-path
60+
- 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"
63+
- make TARGET=CORE2 DYNAMIC_ARCH=1 NUM_THREADS=32 HOSTCC=clang NOFORTRAN=1 RANLIB="ls -l"
64+
always:
65+
config_artifacts:
66+
path: "*conf*"
67+
type: text/plain
68+
# lib_artifacts:
69+
# path: "libopenblas*"
70+
# type: application/octet-streamm
71+
72+
macos_instance:
73+
image: ghcr.io/cirruslabs/macos-monterey-xcode:latest
74+
task:
75+
name: AppleM1/LLVM armv8-ios xbuild
76+
compile_script:
77+
- #brew install llvm
78+
- export #PATH=/opt/homebrew/opt/llvm/bin:$PATH
79+
- export #LDFLAGS="-L/opt/homebrew/opt/llvm/lib"
80+
- 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"
83+
- make TARGET=ARMV8 NUM_THREADS=32 HOSTCC=clang NOFORTRAN=1 CROSS=1
84+
always:
85+
config_artifacts:
86+
path: "*conf*"
87+
type: text/plain
88+
89+
macos_instance:
90+
image: ghcr.io/cirruslabs/macos-monterey-xcode:latest
91+
task:
92+
name: AppleM1/LLVM armv7-androidndk xbuild
93+
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
102+
- make TARGET=ARMV7 ARM_SOFTFP_ABI=1 NUM_THREADS=32 HOSTCC=clang NOFORTRAN=1 RANLIB="ls -l"
103+
always:
104+
config_artifacts:
105+
path: "*conf*"
106+
type: text/plain
107+
108+
task:
109+
name: NeoverseN1
110+
arm_container:
111+
image: node:latest
112+
compile_script:
113+
- make
114+
115+
task:
116+
name: NeoverseN1-ILP64
117+
arm_container:
118+
image: node:latest
119+
compile_script:
120+
- make INTERFACE64=1
121+
122+
task:
123+
name: NeoverseN1-OMP
124+
arm_container:
125+
image: node:latest
126+
cpu: 8
127+
compile_script:
128+
- make USE_OPENMP=1
129+
130+
FreeBSD_task:
131+
name: FreeBSD-gcc12
132+
freebsd_instance:
133+
image_family: freebsd-13-2
134+
install_script:
135+
- pkg update -f && pkg upgrade -y && pkg install -y gmake gcc
136+
compile_script:
137+
- ls -l /usr/local/lib
138+
- gmake CC=gcc
139+
140+
141+
FreeBSD_task:
142+
name: freebsd-gcc12-ilp64
143+
freebsd_instance:
144+
image_family: freebsd-13-2
145+
install_script:
146+
- pkg update -f && pkg upgrade -y && pkg install -y gmake gcc
147+
compile_script:
148+
- ls -l /usr/local/lib
149+
- gmake CC=gcc INTERFACE64=1
150+
151+
#task:
152+
# name: Windows/LLVM16 --- too slow ---
153+
# windows_container:
154+
# image: cirrusci/windowsservercore:cmake-2021.12.07
155+
# install_script:
156+
# - choco list --localonly
157+
# - choco install -y llvm
158+
# - # choco install -y cmake --installargs '"ADD_CMAKE_TO_PATH=System"'
159+
# - choco install -y ninja
160+
# - refreshenv
161+
# - cd "c:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/VC/Auxiliary/Build"
162+
# - vcvarsall x64
163+
# - cd "C:\Users\ContainerAdministrator\AppData\Local\Temp\cirrus-ci-build"
164+
# - cmake -S . -B build -G "Ninja" -DCMAKE_CXX_COMPILER=clang-cl -DCMAKE_C_COMPILER=clang-cl -DCMAKE_MT=mt -DCMAKE_BUILD_TYPE=Release
165+
# - cd build
166+
# - cmake --build .
167+
# - ctest

.github/workflows/c910v.yml

Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
name: c910v qemu test
2+
3+
on: [push, pull_request]
4+
5+
permissions:
6+
contents: read # to fetch code (actions/checkout)
7+
8+
jobs:
9+
TEST:
10+
runs-on: ubuntu-latest
11+
env:
12+
xuetie_toolchain: https://occ-oss-prod.oss-cn-hangzhou.aliyuncs.com/resource//1663142514282
13+
toolchain_file_name: Xuantie-900-gcc-linux-5.10.4-glibc-x86_64-V2.6.1-20220906.tar.gz
14+
strategy:
15+
fail-fast: false
16+
matrix:
17+
include:
18+
- target: RISCV64_GENERIC
19+
triple: riscv64-linux-gnu
20+
apt_triple: riscv64-linux-gnu
21+
opts: NO_SHARED=1 TARGET=RISCV64_GENERIC
22+
- target: C910V
23+
triple: riscv64-unknown-linux-gnu
24+
apt_triple: riscv64-linux-gnu
25+
opts: NO_SHARED=1 TARGET=C910V
26+
27+
steps:
28+
- name: Checkout repository
29+
uses: actions/checkout@v3
30+
31+
- name: install build deps
32+
run: |
33+
sudo apt-get update
34+
sudo apt-get install autoconf automake autotools-dev ninja-build make ccache \
35+
gcc-${{ matrix.apt_triple }} gfortran-${{ matrix.apt_triple }} libgomp1-riscv64-cross
36+
37+
- name: checkout qemu
38+
uses: actions/checkout@v3
39+
with:
40+
repository: T-head-Semi/qemu
41+
path: qemu
42+
ref: 1e692ebb43d396c52352406323fc782c1ac99a42
43+
44+
- name: build qemu
45+
run: |
46+
# Force use c910v qemu-user
47+
wget https://github.com/revyos/qemu/commit/5164bca5a4bcde4534dc1a9aa3a7f619719874cf.patch
48+
cd qemu
49+
patch -p1 < ../5164bca5a4bcde4534dc1a9aa3a7f619719874cf.patch
50+
./configure --prefix=$GITHUB_WORKSPACE/qemu-install --target-list=riscv64-linux-user --disable-system
51+
make -j$(nproc)
52+
make install
53+
54+
- name: Compilation cache
55+
uses: actions/cache@v3
56+
with:
57+
path: ~/.ccache
58+
key: ccache-${{ runner.os }}-${{ matrix.target }}-${{ github.ref }}-${{ github.sha }}
59+
restore-keys: |
60+
ccache-${{ runner.os }}-${{ matrix.target }}-${{ github.ref }}
61+
ccache-${{ runner.os }}-${{ matrix.target }}
62+
63+
- name: Configure ccache
64+
run: |
65+
test -d ~/.ccache || mkdir -p ~/.ccache
66+
echo "max_size = 300M" > ~/.ccache/ccache.conf
67+
echo "compression = true" >> ~/.ccache/ccache.conf
68+
ccache -s
69+
70+
- name: build OpenBLAS
71+
run: |
72+
wget ${xuetie_toolchain}/${toolchain_file_name}
73+
tar -xvf ${toolchain_file_name} -C /opt
74+
export PATH="/opt/Xuantie-900-gcc-linux-5.10.4-glibc-x86_64-V2.6.1/bin:$PATH"
75+
76+
make CC='ccache ${{ matrix.triple }}-gcc -static' FC='ccache ${{ matrix.triple }}-gfortran -static' ${{ matrix.opts }} HOSTCC='ccache gcc' -j$(nproc)
77+
78+
- name: test
79+
run: |
80+
export PATH=$GITHUB_WORKSPACE/qemu-install/bin/:$PATH
81+
qemu-riscv64 ./utest/openblas_utest
82+
OPENBLAS_NUM_THREADS=2 qemu-riscv64 ./ctest/xscblat1
83+
OPENBLAS_NUM_THREADS=2 qemu-riscv64 ./ctest/xdcblat1
84+
OPENBLAS_NUM_THREADS=2 qemu-riscv64 ./ctest/xccblat1
85+
OPENBLAS_NUM_THREADS=2 qemu-riscv64 ./ctest/xzcblat1
86+
OPENBLAS_NUM_THREADS=2 qemu-riscv64 ./ctest/xscblat2 < ./ctest/sin2
87+
OPENBLAS_NUM_THREADS=2 qemu-riscv64 ./ctest/xdcblat2 < ./ctest/din2
88+
OPENBLAS_NUM_THREADS=2 qemu-riscv64 ./ctest/xccblat2 < ./ctest/cin2
89+
OPENBLAS_NUM_THREADS=2 qemu-riscv64 ./ctest/xzcblat2 < ./ctest/zin2
90+
OPENBLAS_NUM_THREADS=2 qemu-riscv64 ./ctest/xscblat3 < ./ctest/sin3
91+
OPENBLAS_NUM_THREADS=2 qemu-riscv64 ./ctest/xdcblat3 < ./ctest/din3
92+
OPENBLAS_NUM_THREADS=2 qemu-riscv64 ./ctest/xccblat3 < ./ctest/cin3
93+
OPENBLAS_NUM_THREADS=2 qemu-riscv64 ./ctest/xzcblat3 < ./ctest/zin3
94+
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-riscv64 ./test/sblat1
95+
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-riscv64 ./test/dblat1
96+
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-riscv64 ./test/cblat1
97+
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-riscv64 ./test/zblat1
98+
OPENBLAS_NUM_THREADS=2 qemu-riscv64 ./test/sblat1
99+
OPENBLAS_NUM_THREADS=2 qemu-riscv64 ./test/dblat1
100+
OPENBLAS_NUM_THREADS=2 qemu-riscv64 ./test/cblat1
101+
OPENBLAS_NUM_THREADS=2 qemu-riscv64 ./test/zblat1
102+
rm -f ./test/?BLAT2.SUMM
103+
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-riscv64 ./test/sblat2 < ./test/sblat2.dat
104+
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-riscv64 ./test/dblat2 < ./test/dblat2.dat
105+
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-riscv64 ./test/cblat2 < ./test/cblat2.dat
106+
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-riscv64 ./test/zblat2 < ./test/zblat2.dat
107+
rm -f ./test/?BLAT2.SUMM
108+
OPENBLAS_NUM_THREADS=2 qemu-riscv64 ./test/sblat2 < ./test/sblat2.dat
109+
OPENBLAS_NUM_THREADS=2 qemu-riscv64 ./test/dblat2 < ./test/dblat2.dat
110+
OPENBLAS_NUM_THREADS=2 qemu-riscv64 ./test/cblat2 < ./test/cblat2.dat
111+
OPENBLAS_NUM_THREADS=2 qemu-riscv64 ./test/zblat2 < ./test/zblat2.dat
112+
rm -f ./test/?BLAT3.SUMM
113+
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-riscv64 ./test/sblat3 < ./test/sblat3.dat
114+
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-riscv64 ./test/dblat3 < ./test/dblat3.dat
115+
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-riscv64 ./test/cblat3 < ./test/cblat3.dat
116+
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-riscv64 ./test/zblat3 < ./test/zblat3.dat
117+
rm -f ./test/?BLAT3.SUMM
118+
OPENBLAS_NUM_THREADS=2 qemu-riscv64 ./test/sblat3 < ./test/sblat3.dat
119+
OPENBLAS_NUM_THREADS=2 qemu-riscv64 ./test/dblat3 < ./test/dblat3.dat
120+
OPENBLAS_NUM_THREADS=2 qemu-riscv64 ./test/cblat3 < ./test/cblat3.dat
121+
OPENBLAS_NUM_THREADS=2 qemu-riscv64 ./test/zblat3 < ./test/zblat3.dat

0 commit comments

Comments
 (0)