Skip to content

Commit 8882409

Browse files
authored
Merge branch 'OpenMathLib:develop' into issue5493
2 parents 92fe96b + 3a9da52 commit 8882409

25 files changed

+656
-73
lines changed

.cirrus.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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_16.3.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang
62-
- export CFLAGS="-O2 -unwindlib=none -Wno-macro-redefined -isysroot /Applications/Xcode_16.3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.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:
@@ -78,8 +78,8 @@ task:
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_16.3.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang
82-
- export CFLAGS="-O2 -unwindlib=none -Wno-macro-redefined -isysroot /Applications/Xcode_16.3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.4.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"
8383
- xcrun --sdk iphoneos --show-sdk-path
8484
- ls -l /Applications
8585
- make TARGET=ARMV8 NUM_THREADS=32 HOSTCC=clang NOFORTRAN=1 CROSS=1

.github/workflows/riscv64_vector.yml

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
env:
1717
triple: riscv64-unknown-linux-gnu
1818
riscv_gnu_toolchain: https://github.com/riscv-collab/riscv-gnu-toolchain
19-
riscv_gnu_toolchain_version: 13.2.0
19+
riscv_gnu_toolchain_version: 15.1.0
2020
riscv_gnu_toolchain_nightly_download_path: /releases/download/2025.08.29/riscv64-glibc-ubuntu-22.04-llvm-nightly-2025.08.29-nightly.tar.xz
2121
strategy:
2222
fail-fast: false
@@ -27,7 +27,7 @@ jobs:
2727
qemu_cpu: rv64,g=true,c=true,v=true,vext_spec=v1.0,vlen=128,elen=64
2828
- target: RISCV64_ZVL256B
2929
opts: TARGET=RISCV64_ZVL256B BINARY=64 ARCH=riscv64 BUILD_BFLOAT16=1 BUILD_HFLOAT16=1
30-
qemu_cpu: rv64,g=true,c=true,v=true,vext_spec=v1.0,vlen=256,elen=64
30+
qemu_cpu: rv64,g=true,c=true,v=true,vext_spec=v1.0,vlen=256,elen=64,zfh=true,zvfh=true,zvfbfwma=true
3131
- target: DYNAMIC_ARCH=1
3232
opts: TARGET=RISCV64_GENERIC BINARY=64 ARCH=riscv64 DYNAMIC_ARCH=1
3333
qemu_cpu: rv64,g=true,c=true,v=true,vext_spec=v1.0,vlen=256,elen=64
@@ -40,10 +40,13 @@ jobs:
4040
run: |
4141
sudo apt-get update
4242
sudo apt-get install autoconf automake autotools-dev ninja-build make \
43-
libgomp1-riscv64-cross ccache qemu-kvm
43+
libgomp1-riscv64-cross ccache qemu-kvm qemu-user libc6-riscv64-cross
4444
wget ${riscv_gnu_toolchain}/${riscv_gnu_toolchain_nightly_download_path}
4545
tar -xvf $(basename ${riscv_gnu_toolchain_nightly_download_path}) -C /opt
46-
46+
wget https://gist.github.com/martin-frbg/bb630e0de34978e578eeb496b1538d4e/raw/7fd8d971f327f7a517b8f5f7989479ff2b36f71f/qemu-riscv64-10.1-ubuntu24 -P /opt/riscv/bin -o riscv64-qemu
47+
mv /opt/riscv/bin/qemu-riscv64-10.1-ubuntu24 /opt/riscv/bin/qemu-riscv64
48+
chmod +x /opt/riscv/bin/qemu-riscv64
49+
4750
- name: Compilation cache
4851
uses: actions/cache@v3
4952
with:
@@ -74,7 +77,7 @@ jobs:
7477
run: |
7578
export PATH="/opt/riscv/bin:$PATH"
7679
make TARGET=${{ matrix.target }} CFLAGS="-DTARGET=${{ matrix.target }}" \
77-
CC='${triple}-gcc' \
80+
CC='ccache clang --rtlib=compiler-rt -target ${triple} --sysroot /opt/riscv/sysroot --gcc-toolchain=/opt/riscv/lib/gcc/riscv64-unknown-linux-gnu/${riscv_gnu_toolchain_version}/' \
7881
AR='ccache ${triple}-ar' AS='ccache ${triple}-gcc' LD='ccache ${triple}-gcc' \
7982
RANLIB='ccache ${triple}-ranlib' \
8083
FC='ccache ${triple}-gfortran' ${{ matrix.opts }} \
@@ -98,6 +101,8 @@ jobs:
98101
shell: bash
99102
run: |
100103
export PATH="/opt/riscv/bin:$PATH"
104+
export LD_LIBRARY_PATH=/opt/riscv/sysroot/lib
105+
sudo ln -s /opt/riscv/sysroot/lib/ld-linux-riscv64-lp64d.so.1 /lib
101106
export QEMU_CPU=${{ matrix.qemu_cpu }}
102107
rm -rf ./test_out
103108
mkdir -p ./test_out
@@ -134,6 +139,12 @@ jobs:
134139
wait
135140
while IFS= read -r -d $'\0' LOG; do cat $LOG ; FAILURES=1 ; done < <(grep -lZ FAIL ./test_out/*)
136141
if [[ ! -z $FAILURES ]]; then echo "==========" ; echo "== FAIL ==" ; echo "==========" ; echo ; exit 1 ; fi
142+
if [ "${{matrix.target}}" == "RISCV64_ZVL256B" ]; then
143+
qemu-riscv64 test/test_shgemm &
144+
qemu-riscv64 test/test_shgemv &
145+
qemu-riscv64 test/test_bgemm
146+
fi
147+
137148
138149
- name: netlib tests
139150
shell: bash

CMakeLists.txt

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -498,6 +498,11 @@ if (BUILD_SHARED_LIBS OR DELETE_STATIC_LIBS AND NOT ${SYMBOLPREFIX}${SYMBOLSUFFI
498498
else ()
499499
set (BBF16 0)
500500
endif()
501+
if (${BUILD_HFLOAT16})
502+
set (BHF16 1)
503+
else ()
504+
set (BHF16 0)
505+
endif()
501506
if (${BUILD_SINGLE})
502507
set (BS 1)
503508
else ()
@@ -533,7 +538,7 @@ endif()
533538
#if (USE_PERL)
534539
message(STATUS "adding postbuild instruction to rename syms")
535540
add_custom_command(TARGET ${OpenBLAS_LIBNAME}_static POST_BUILD
536-
COMMAND perl ${PROJECT_SOURCE_DIR}/exports/gensymbol.pl "win2k" "${ARCH}" "${BU}" "${EXPRECISION_IN}" "${NO_CBLAS_IN}" "${NO_LAPACK_IN}" "${NO_LAPACKE_IN}" "${NEED2UNDERSCORES_IN}" "${ONLY_CBLAS_IN}" "${SYMBOLPREFIX}" "${SYMBOLSUFFIX}" "${BLD}" "${BBF16}" "${BS}" "${BD}" "${BC}" "${BZ}" > ${PROJECT_BINARY_DIR}/renamesyms.def
541+
COMMAND perl ${PROJECT_SOURCE_DIR}/exports/gensymbol.pl "win2k" "${ARCH}" "${BU}" "${EXPRECISION_IN}" "${NO_CBLAS_IN}" "${NO_LAPACK_IN}" "${NO_LAPACKE_IN}" "${NEED2UNDERSCORES_IN}" "${ONLY_CBLAS_IN}" "${SYMBOLPREFIX}" "${SYMBOLSUFFIX}" "${BLD}" "${BBF16}" "${BHF16}" "${BS}" "${BD}" "${BC}" "${BZ}" > ${PROJECT_BINARY_DIR}/renamesyms.def
537542
COMMAND ${CMAKE_C_COMPILER} ${CMAKE_C_FLAGS} -I${PROJECT_SOURCE_DIR} -I${PROJECT_BINARY_DIR} -c -o ${PROJECT_BINARY_DIR}/dllinit.o ${PROJECT_SOURCE_DIR}/exports/dllinit.c
538543
COMMAND lld-link -nodefaultlib:libcmt -defaultlib:${CRTLIB} ${CMAKE_LINKER_FLAGS} -errorlimit:0 -def:${PROJECT_BINARY_DIR}/renamesyms.def ${PROJECT_BINARY_DIR}/dllinit.o $<TARGET_FILE:${OpenBLAS_LIBNAME}_static> -wholearchive:$<TARGET_FILE:${OpenBLAS_LIBNAME}_static> -dll -out:$<TARGET_FILE_DIR:${OpenBLAS_LIBNAME}_static>/${OpenBLAS_LIBNAME}.dll -implib:$<TARGET_FILE_DIR:${OpenBLAS_LIBNAME}_static>/${OpenBLAS_LIBNAME}.dll.a ${PDBOPT}
539544
#COMMAND lld-link -nodefaultlib:libcmt -defaultlib:msvcrt ${CMAKE_LINKER_FLAGS} -errorlimit:0 -def:${PROJECT_BINARY_DIR}/renamesyms.def ${PROJECT_BINARY_DIR}/dllinit.o $<TARGET_FILE:${OpenBLAS_LIBNAME}_static> -wholearchive:$<TARGET_FILE:${OpenBLAS_LIBNAME}_static> -dll -out:$<TARGET_FILE_DIR:${OpenBLAS_LIBNAME}_static>/${OpenBLAS_LIBNAME}.dll -implib:$<TARGET_FILE_DIR:${OpenBLAS_LIBNAME}_static>/${OpenBLAS_LIBNAME}.dll.a
@@ -543,13 +548,13 @@ message(STATUS "adding postbuild instruction to rename syms")
543548
else ()
544549
if (NOT USE_PERL)
545550
add_custom_command(TARGET ${OpenBLAS_LIBNAME}_shared POST_BUILD
546-
COMMAND sh ${PROJECT_SOURCE_DIR}/exports/gensymbol "objcopy" "${ARCH}" "${BU}" "${EXPRECISION_IN}" "${NO_CBLAS_IN}" "${NO_LAPACK_IN}" "${NO_LAPACKE_IN}" "${NEED2UNDERSCORES_IN}" "${ONLY_CBLAS_IN}" \"${SYMBOLPREFIX}\" \"${SYMBOLSUFFIX}\" "${BLD}" "${BBF16}" "${BS}" "${BD}" "${BC}" "${BZ}" > ${PROJECT_BINARY_DIR}/objcopy.def
551+
COMMAND sh ${PROJECT_SOURCE_DIR}/exports/gensymbol "objcopy" "${ARCH}" "${BU}" "${EXPRECISION_IN}" "${NO_CBLAS_IN}" "${NO_LAPACK_IN}" "${NO_LAPACKE_IN}" "${NEED2UNDERSCORES_IN}" "${ONLY_CBLAS_IN}" \"${SYMBOLPREFIX}\" \"${SYMBOLSUFFIX}\" "${BLD}" "${BBF16}" "${BHF16}" "${BS}" "${BD}" "${BC}" "${BZ}" > ${PROJECT_BINARY_DIR}/objcopy.def
547552
COMMAND objcopy --redefine-syms ${PROJECT_BINARY_DIR}/objcopy.def ${PROJECT_BINARY_DIR}/lib/${OpenBLAS_LIBNAME}.so
548553
COMMENT "renaming symbols"
549554
)
550555
else()
551556
add_custom_command(TARGET ${OpenBLAS_LIBNAME}_shared POST_BUILD
552-
COMMAND perl ${PROJECT_SOURCE_DIR}/exports/gensymbol.pl "objcopy" "${ARCH}" "${BU}" "${EXPRECISION_IN}" "${NO_CBLAS_IN}" "${NO_LAPACK_IN}" "${NO_LAPACKE_IN}" "${NEED2UNDERSCORES_IN}" "${ONLY_CBLAS_IN}" \"${SYMBOLPREFIX}\" \"${SYMBOLSUFFIX}\" "${BLD}" "${BBF16}" "${BS}" "${BD}" "${BC}" "${BZ}" > ${PROJECT_BINARY_DIR}/objcopy.def
557+
COMMAND perl ${PROJECT_SOURCE_DIR}/exports/gensymbol.pl "objcopy" "${ARCH}" "${BU}" "${EXPRECISION_IN}" "${NO_CBLAS_IN}" "${NO_LAPACK_IN}" "${NO_LAPACKE_IN}" "${NEED2UNDERSCORES_IN}" "${ONLY_CBLAS_IN}" \"${SYMBOLPREFIX}\" \"${SYMBOLSUFFIX}\" "${BLD}" "${BBF16}" "${BHF16}" "${BS}" "${BD}" "${BC}" "${BZ}" > ${PROJECT_BINARY_DIR}/objcopy.def
553558
COMMAND objcopy --redefine-syms ${PROJECT_BINARY_DIR}/objcopy.def ${PROJECT_BINARY_DIR}/lib/lib${OpenBLAS_LIBNAME}.so
554559
COMMENT "renaming symbols"
555560
)

azure-pipelines.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ jobs:
9595
vmImage: 'windows-latest'
9696
steps:
9797
- script: |
98-
mingw32-make CC=gcc FC=gfortran DYNAMIC_ARCH=1 DYNAMIC_LIST="SANDYBRIDGE"
98+
mingw32-make CC=gcc NOLAPACK=1 DYNAMIC_ARCH=1 DYNAMIC_LIST="SANDYBRIDGE"
9999
100100
- job: Windows_clang_cmake
101101
pool:
@@ -201,7 +201,7 @@ jobs:
201201
- script: |
202202
brew update
203203
brew install llvm libomp
204-
make TARGET=CORE2 USE_OPENMP=1 DYNAMIC_ARCH=1 CC=/usr/local/opt/llvm/bin/clang NOFORTRAN=1
204+
make TARGET=CORE2 USE_OPENMP=1 DYNAMIC_ARCH=1 DYNAMIC_LIST='NEHALEM HASWELL SKYLAKEX' CC=/usr/local/opt/llvm/bin/clang NOFORTRAN=1
205205
206206
- job: OSX_OpenMP_Clang_cmake
207207
pool:
@@ -215,7 +215,7 @@ jobs:
215215
brew install llvm libomp
216216
mkdir build
217217
cd build
218-
cmake -DTARGET=CORE2 -DUSE_OPENMP=1 -DINTERFACE64=1 -DDYNAMIC_ARCH=1 -DCMAKE_C_COMPILER=/usr/local/opt/llvm/bin/clang -DNOFORTRAN=1 -DNO_AVX512=1 ..
218+
cmake -DTARGET=CORE2 -DUSE_OPENMP=1 -DINTERFACE64=1 -DDYNAMIC_ARCH=1 -DDYNAMIC_LIST='NEHALEM HASWELL SKYLAKEX' -DCMAKE_C_COMPILER=/usr/local/opt/llvm/bin/clang -DNOFORTRAN=1 -DNO_AVX512=1 ..
219219
make
220220
ctest
221221

cmake/OpenBLASConfig.cmake.in

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -50,30 +50,30 @@ set(PN OpenBLAS)
5050

5151
# need to check that the @USE_*@ evaluate to something cmake can perform boolean logic upon
5252
if(@USE_OPENMP@)
53-
set(${PN}_openmp_FOUND 1)
53+
set(${PN}@SUFFIX64@_openmp_FOUND 1)
5454
elseif(@USE_THREAD@)
55-
set(${PN}_pthread_FOUND 1)
55+
set(${PN}@SUFFIX64@_pthread_FOUND 1)
5656
else()
57-
set(${PN}_serial_FOUND 1)
57+
set(${PN}@SUFFIX64@_serial_FOUND 1)
5858
endif()
5959

60-
check_required_components(${PN})
60+
check_required_components(${PN}@SUFFIX64@)
6161

6262
#-----------------------------------------------------------------------------
6363
# Don't include targets if this file is being picked up by another
6464
# project which has already built this as a subproject
6565
#-----------------------------------------------------------------------------
66-
if(NOT TARGET ${PN}::OpenBLAS)
67-
include("${CMAKE_CURRENT_LIST_DIR}/${PN}Targets.cmake")
66+
if(NOT TARGET ${PN}@SUFFIX64@::OpenBLAS)
67+
include("${CMAKE_CURRENT_LIST_DIR}/${PN}@SUFFIX64@Targets.cmake")
6868

69-
get_property(_loc TARGET ${PN}::OpenBLAS PROPERTY LOCATION)
70-
set(${PN}_LIBRARY ${_loc})
71-
get_property(_ill TARGET ${PN}::OpenBLAS PROPERTY INTERFACE_LINK_LIBRARIES)
72-
set(${PN}_LIBRARIES ${_ill})
69+
get_property(_loc TARGET ${PN}@SUFFIX64@::OpenBLAS PROPERTY LOCATION)
70+
set(${PN}@SUFFIX64@_LIBRARY ${_loc})
71+
get_property(_ill TARGET ${PN}@SUFFIX64@::OpenBLAS PROPERTY INTERFACE_LINK_LIBRARIES)
72+
set(${PN}@SUFFIX64@_LIBRARIES ${_ill})
7373

74-
get_property(_id TARGET ${PN}::OpenBLAS PROPERTY INCLUDE_DIRECTORIES)
75-
set(${PN}_INCLUDE_DIR ${_id})
76-
get_property(_iid TARGET ${PN}::OpenBLAS PROPERTY INTERFACE_INCLUDE_DIRECTORIES)
77-
set(${PN}_INCLUDE_DIRS ${_iid})
74+
get_property(_id TARGET ${PN}@SUFFIX64@::OpenBLAS PROPERTY INCLUDE_DIRECTORIES)
75+
set(${PN}@SUFFIX64@_INCLUDE_DIR ${_id})
76+
get_property(_iid TARGET ${PN}@SUFFIX64@::OpenBLAS PROPERTY INTERFACE_INCLUDE_DIRECTORIES)
77+
set(${PN}@SUFFIX64@_INCLUDE_DIRS ${_iid})
7878
endif()
7979

cmake/cc.cmake

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -391,6 +391,30 @@ if (${CORE} STREQUAL PPCG4)
391391
endif ()
392392
endif ()
393393

394+
395+
if ((${CORE} STREQUAL RISCV64_ZVL128B) OR (${CORE} STREQUAL RISCV64_ZVL256B))
396+
set (RISCV64_OPT "rv64imafdcv")
397+
if (BUILD_BFLOAT16)
398+
set (RISCV64_OPT "${RISCV64_OPT}_zvfbfwma")
399+
endif()
400+
if (BUILD_HFLOAT16)
401+
set (RISCV64_OPT "${RISCV64_OPT}_zvfh_zfh")
402+
endif()
403+
if (${CORE} STREQUAL RISCV64_ZVL256B)
404+
set (CCOMMON_OPT "${CCOMMON_OPT} -march=${RISCV64_OPT}_zvl256b -mabi=lp64d")
405+
endif()
406+
if (${CORE} STREQUAL RISCV64_ZVL128B)
407+
set (CCOMMON_OPT "${CCOMMON_OPT} -march=${RISCV64_OPT}_zvl128b -mabi=lp64d")
408+
endif()
409+
endif()
410+
if (${CORE} STREQUAL RISCV64_GENERIC)
411+
set (CCOMMON_OPT "${CCOMMON_OPT} -march=rv64imafdc -mabi=lp64d")
412+
endif()
413+
if (${CORE} STREQUAL x280)
414+
set (CCOMMON_OPT "${CCOMMON_OPT} -march=rv64imafdcv_zba_zbb_zfh_zvl512b -mabi=lp64d")
415+
endif()
416+
417+
394418
if (NOT DYNAMIC_ARCH)
395419
if (HAVE_AVX2)
396420
set (CCOMMON_OPT "${CCOMMON_OPT} -mavx2")

cmake/kernel.cmake

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -230,10 +230,12 @@ macro(SetDefaultL2)
230230
if (BUILD_BFLOAT16)
231231
SetFallback(BGEMVNKERNEL ../generic/gemv_n.c)
232232
SetFallback(BGEMVTKERNEL ../generic/gemv_t.c)
233-
SetFallback(SHGEMVNKERNEL ../generic/gemv_n.c)
234-
SetFallback(SHGEMVTKERNEL ../generic/gemv_t.c)
235233
SetFallback(SBGEMVNKERNEL ../x86_64/sbgemv_n.c)
236234
SetFallback(SBGEMVTKERNEL ../x86_64/sbgemv_t.c)
235+
endif ()
236+
if (BUILD_HFLOAT16)
237+
SetFallback(SHGEMVNKERNEL ../generic/gemv_n.c)
238+
SetFallback(SHGEMVTKERNEL ../generic/gemv_t.c)
237239
SetFallback(SHGERKERNEL ../generic/ger.c)
238240
endif ()
239241
endmacro ()

cmake/system.cmake

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -381,6 +381,28 @@ if (${TARGET} STREQUAL NEOVERSEV1)
381381
endif()
382382
endif()
383383

384+
if ((${TARGET} STREQUAL RISCV64_ZVL128B) OR (${TARGET} STREQUAL RISCV64_ZVL256B))
385+
set (RISCV64_OPT "rv64imafdcv")
386+
if (BUILD_BFLOAT16)
387+
set (RISCV64_OPT "${RISCV64_OPT}_zvfbfwma")
388+
endif()
389+
if (BUILD_HFLOAT16)
390+
set (RISCV64_OPT "${RISCV64_OPT}_zvfh_zfh")
391+
endif()
392+
if (${TARGET} STREQUAL RISCV64_ZVL256B)
393+
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -march=${RISCV64_OPT}_zvl256b -mabi=lp64d")
394+
endif()
395+
if (${TARGET} STREQUAL RISCV64_ZVL128B)
396+
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -march=${RISCV64_OPT}_zvl128b -mabi=lp64d")
397+
endif()
398+
endif()
399+
if (${TARGET} STREQUAL RISCV64_GENERIC)
400+
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -march=rv64imafdc -mabi=lp64d")
401+
endif()
402+
if (${TARGET} STREQUAL x280)
403+
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -march=rv64imafdcv_zba_zbb_zfh_zvl512b -mabi=lp64d")
404+
endif()
405+
384406
endif()
385407

386408
if (DEFINED BINARY)

driver/level2/CMakeLists.txt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,15 @@ if (BUILD_BFLOAT16)
202202
if (USE_THREAD)
203203
GenerateNamedObjects("sbgemv_thread.c" "" "gemv_thread_n" false "" "" false "BFLOAT16")
204204
GenerateNamedObjects("sbgemv_thread.c" "TRANSA" "gemv_thread_t" false "" "" false "BFLOAT16")
205+
GenerateNamedObjects("sbgemv_thread.c" "BGEMM;BFLOAT16" "bgemv_thread_n" false "" "" true "")
206+
GenerateNamedObjects("sbgemv_thread.c" "BGEMM;BFLOAT16;TRANSA" "bgemv_thread_t" false "" "" true "")
207+
endif ()
208+
endif ()
209+
210+
if (BUILD_HFLOAT16)
211+
if (USE_THREAD)
212+
GenerateNamedObjects("sbgemv_thread.c" "" "gemv_thread_n" false "" "" false "HFLOAT16")
213+
GenerateNamedObjects("sbgemv_thread.c" "TRANSA" "gemv_thread_t" false "" "" false "HFLOAT16")
205214
endif ()
206215
endif ()
207216

driver/level3/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ foreach (GEMM_DEFINE ${GEMM_DEFINES})
1717
GenerateNamedObjects("gemm.c" "${GEMM_DEFINE};BGEMM" "gemm_${GEMM_DEFINE_LC}" 0 "" "" false "BFLOAT16")
1818
if (USE_THREAD AND NOT USE_SIMPLE_THREADED_LEVEL3)
1919
GenerateNamedObjects("gemm.c" "${GEMM_DEFINE};THREADED_LEVEL3" "gemm_thread_${GEMM_DEFINE_LC}" 0 "" "" false "BFLOAT16")
20+
GenerateNamedObjects("gemm.c" "${GEMM_DEFINE};THREADED_LEVEL3;BGEMM" "gemm_thread_${GEMM_DEFINE_LC}" 0 "" "" false "BFLOAT16")
2021
endif ()
2122
endif ()
2223
if (BUILD_HFLOAT16)

0 commit comments

Comments
 (0)