Skip to content

Commit a431012

Browse files
authored
Merge branch 'OpenMathLib:develop' into fixup5496
2 parents 294bbf3 + 9c8626d commit a431012

File tree

15 files changed

+294
-60
lines changed

15 files changed

+294
-60
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

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
)

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

driver/level3/level3_thread.c

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -588,8 +588,6 @@ static int gemm_driver(blas_arg_t *args, BLASLONG *range_m, BLASLONG
588588
InitializeCriticalSection((PCRITICAL_SECTION)&level3_lock);
589589
#else
590590
static pthread_mutex_t level3_lock = PTHREAD_MUTEX_INITIALIZER;
591-
static pthread_cond_t level3_wakeup = PTHREAD_COND_INITIALIZER;
592-
volatile static BLASLONG CPU_AVAILABLE = MAX_CPU_NUMBER;
593591
#endif
594592

595593
blas_arg_t newarg;
@@ -659,12 +657,6 @@ static int gemm_driver(blas_arg_t *args, BLASLONG *range_m, BLASLONG
659657
EnterCriticalSection((PCRITICAL_SECTION)&level3_lock);
660658
#else
661659
pthread_mutex_lock(&level3_lock);
662-
while(CPU_AVAILABLE < nthreads) {
663-
pthread_cond_wait(&level3_wakeup, &level3_lock);
664-
}
665-
CPU_AVAILABLE -= nthreads;
666-
WMB;
667-
pthread_mutex_unlock(&level3_lock);
668660
#endif
669661

670662
#ifdef USE_ALLOC_HEAP
@@ -816,10 +808,6 @@ static int gemm_driver(blas_arg_t *args, BLASLONG *range_m, BLASLONG
816808
#elif defined(OS_WINDOWS)
817809
LeaveCriticalSection((PCRITICAL_SECTION)&level3_lock);
818810
#else
819-
pthread_mutex_lock(&level3_lock);
820-
CPU_AVAILABLE += nthreads;
821-
WMB;
822-
pthread_cond_signal(&level3_wakeup);
823811
pthread_mutex_unlock(&level3_lock);
824812
#endif
825813

driver/others/blas_server.c

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -984,8 +984,6 @@ int BLASFUNC(blas_thread_shutdown)(void){
984984

985985
int i;
986986

987-
LOCK_COMMAND(&server_lock);
988-
989987
//Free buffers allocated for threads
990988
for(i=0; i<MAX_CPU_NUMBER; i++){
991989
if(blas_thread_buffer[i]!=NULL){
@@ -1025,7 +1023,6 @@ int BLASFUNC(blas_thread_shutdown)(void){
10251023
blas_server_avail = 0;
10261024

10271025
}
1028-
UNLOCK_COMMAND(&server_lock);
10291026

10301027
return 0;
10311028
}

interface/zher.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,10 @@ void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint n, FLOAT alpha,
177177
buffer = (FLOAT *)blas_memory_alloc(1);
178178

179179
#ifdef SMP
180-
nthreads = num_cpu_avail(2);
180+
if (n < 100)
181+
nthreads = 1;
182+
else
183+
nthreads = num_cpu_avail(2);
181184

182185
if (nthreads == 1) {
183186
#endif

interface/zher2.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,10 @@ void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint n, void *VALPHA
186186
buffer = (FLOAT *)blas_memory_alloc(1);
187187

188188
#ifdef SMP
189-
nthreads = num_cpu_avail(2);
189+
if (n < 100)
190+
nthreads = 1;
191+
else
192+
nthreads = num_cpu_avail(2);
190193

191194
if (nthreads == 1) {
192195
#endif

interface/zhpr.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,10 @@ void CNAME(enum CBLAS_ORDER order,
175175
buffer = (FLOAT *)blas_memory_alloc(1);
176176

177177
#ifdef SMP
178-
nthreads = num_cpu_avail(2);
178+
if (n < 100)
179+
nthreads = 1;
180+
else
181+
nthreads = num_cpu_avail(2);
179182

180183
if (nthreads == 1) {
181184
#endif

interface/zhpr2.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,10 @@ void CNAME(enum CBLAS_ORDER order,
187187
buffer = (FLOAT *)blas_memory_alloc(1);
188188

189189
#ifdef SMP
190-
nthreads = num_cpu_avail(2);
190+
if (n < 100)
191+
nthreads = 1;
192+
else
193+
nthreads = num_cpu_avail(2);
191194

192195
if (nthreads == 1) {
193196
#endif

kernel/arm64/KERNEL.A64FX

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,6 @@ SDOTKERNEL = dot_sve_v8.c
1010

1111
SAXPYKERNEL = axpy_sve.c
1212
DAXPYKERNEL = axpy_sve.c
13+
14+
SGERKERNEL = ger_sve_v1x3.c
15+
DGERKERNEL = ger_sve_v1x3.c

0 commit comments

Comments
 (0)