Skip to content

Commit 6b92979

Browse files
authored
Merge pull request #2476 from xianyi/develop
Update from develop in preparation for 0.3.9
2 parents fb5eb47 + 014fc13 commit 6b92979

Some content is hidden

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

59 files changed

+1970
-303
lines changed

.drone.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ steps:
9292
- mkdir build && cd build
9393
- cmake $CMAKE_FLAGS ..
9494
- make -j
95-
- ctest
95+
- ctest -V
9696

9797
---
9898
kind: pipeline
@@ -116,7 +116,7 @@ steps:
116116
- mkdir build && cd build
117117
- cmake $CMAKE_FLAGS ..
118118
- make -j
119-
- ctest
119+
- ctest -V
120120

121121
---
122122
kind: pipeline
@@ -140,4 +140,4 @@ steps:
140140
- mkdir build && cd build
141141
- cmake $CMAKE_FLAGS ..
142142
- make -j
143-
- ctest
143+
- ctest -V
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
# Only the "head" branch of the OpenBLAS package is tested
2+
3+
on:
4+
push:
5+
paths:
6+
- '**/nightly-Homebrew-build.yml'
7+
pull_request:
8+
branches:
9+
- develop
10+
paths:
11+
- '**/nightly-Homebrew-build.yml'
12+
schedule:
13+
- cron: 45 7 * * *
14+
# This is 7:45 AM UTC daily, late at night in the USA
15+
16+
# Since push and pull_request will still always be building and testing the `develop` branch,
17+
# it only makes sense to test if this file has been changed
18+
19+
name: Nightly-Homebrew-Build
20+
jobs:
21+
build-OpenBLAS-with-Homebrew:
22+
runs-on: macos-latest
23+
env:
24+
HOMEBREW_DEVELOPER: "ON"
25+
HOMEBREW_DISPLAY_INSTALL_TIMES: "ON"
26+
HOMEBREW_NO_ANALYTICS: "ON"
27+
HOMEBREW_NO_AUTO_UPDATE: "ON"
28+
HOMEBREW_NO_BOTTLE_SOURCE_FALLBACK: "ON"
29+
HOMEBREW_NO_INSTALL_CLEANUP: "ON"
30+
31+
steps:
32+
- name: Random delay for cron job
33+
run: |
34+
delay=$(( RANDOM % 600 ))
35+
printf 'Delaying for %s seconds on event %s' ${delay} "${{ github.event_name }}"
36+
sleep ${delay}
37+
if: github.event_name == 'schedule'
38+
39+
- uses: actions/checkout@v2
40+
# This isn't even needed, technically. Homebrew will get `develop` via git
41+
42+
- name: Update Homebrew
43+
if: github.event_name != 'pull_request'
44+
run: brew update || true
45+
46+
- name: Install prerequisites
47+
run: brew install --fetch-HEAD --HEAD --only-dependencies --keep-tmp openblas
48+
49+
- name: Install and bottle OpenBLAS
50+
run: brew install --fetch-HEAD --HEAD --build-bottle --keep-tmp openblas
51+
# the HEAD flags tell Homebrew to build the develop branch fetch via git
52+
53+
- name: Create bottle
54+
run: |
55+
brew bottle -v openblas
56+
mkdir bottles
57+
mv *.bottle.tar.gz bottles
58+
59+
- name: Upload bottle
60+
uses: actions/upload-artifact@v1
61+
with:
62+
name: openblas--HEAD.catalina.bottle.tar.gz
63+
path: bottles
64+
65+
- name: Show linkage
66+
run: brew linkage -v openblas
67+
68+
- name: Test openblas
69+
run: brew test --HEAD --verbose openblas
70+
71+
- name: Audit openblas formula
72+
run: |
73+
brew audit --strict openblas
74+
brew cat openblas
75+
76+
- name: Post logs on failure
77+
if: failure()
78+
run: brew gist-logs --with-hostname -v openblas

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,4 +87,5 @@ build.*
8787
*.swp
8888
benchmark/*.goto
8989
benchmark/smallscaling
90-
90+
CMakeCache.txt
91+
CMakeFiles/*

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ matrix:
176176
- <<: *test-macos
177177
osx_image: xcode10.1
178178
env:
179-
- CC="/Applications/Xcode-10.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -isysroot /Applications/Xcode-10.1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.1.sdk"
179+
- CC="/Applications/Xcode-10.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang"
180180
- CFLAGS="-O2 -Wno-macro-redefined -isysroot /Applications/Xcode-10.1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.1.sdk -arch arm64 -miphoneos-version-min=10.0"
181181
- BTYPE="TARGET=ARMV8 BINARY=64 HOSTCC=clang NOFORTRAN=1"
182182

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ cmake_minimum_required(VERSION 2.8.5)
66
project(OpenBLAS C ASM)
77
set(OpenBLAS_MAJOR_VERSION 0)
88
set(OpenBLAS_MINOR_VERSION 3)
9-
set(OpenBLAS_PATCH_VERSION 8)
9+
set(OpenBLAS_PATCH_VERSION 9.dev)
1010
set(OpenBLAS_VERSION "${OpenBLAS_MAJOR_VERSION}.${OpenBLAS_MINOR_VERSION}.${OpenBLAS_PATCH_VERSION}")
1111

1212
# Adhere to GNU filesystem layout conventions

Changelog.txt

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,48 @@
11
OpenBLAS ChangeLog
2+
====================================================================
3+
Version 0.3.9
4+
1-Mar-2020
5+
6+
common:
7+
* Fixed a miscompilation of the GETRF functions with CMAKE
8+
* Imported bugfix 390 from LAPACK (missing NaN propagation in xCOMBSSQ)
9+
* The size of the memory buffer used for splitting GEMM tasks across
10+
multiple threads can now be configured in the build system.
11+
12+
POWER:
13+
* Fixed several compilation problems related to endianness
14+
and ELF version on POWER8 and POWER9
15+
* Fixed use of the absolute value IAMIN/IAMAX instead of IMIN/IMAX
16+
* Fixed a race condition in the level3 blas code
17+
18+
MIPS64:
19+
* Fixed use of the absoltute value IAMIN/IAMAX instead of IMIN/IMAX
20+
21+
ARMV7:
22+
* Fixed a race condition in the level3 blas code
23+
* Fixed compilation on Android
24+
ARMV8:
25+
* Added support for Ampere EMAG8180
26+
* Added support for Neoverse N1
27+
* Improved performance of the blas_lock function
28+
* Fixed a race condition in the level3 blas code
29+
* Fixed a performance regression on TSV110-based servers
30+
31+
x86_64:
32+
* Fixed a long-standing error with undeclared register overwrites
33+
in the DSCAL microkernel for HASWELL,SKYLAKEX and ZEN
34+
* Fixed a long-standing bug in the SSE implementation of IAMAX
35+
* Fixed a CMAKE build failure with DYNAMIC_ARCH
36+
* Fixed cpu autodetection of Goldmont+, Cannon Lake and Ice Lake
37+
* Fixed a compilation failure on OSX with compiler name containing dash
38+
* Fixed compilation with MinGW on SkylakeX
39+
* Improved speed of the AVX512 GEMM3M kernel on SkylakeX
40+
* Added an AVX512 STRMM kernel for SkylakeX
41+
* Improved GEMM performance on Haswell and Zen
42+
43+
zarch:
44+
* fixed compilation of the DYNAMIC_ARCH code
45+
246
====================================================================
347
Version 0.3.8
448
9-Feb-2020

Makefile.arm

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
ifeq ($(CORE), $(filter $(CORE),ARMV7 CORTEXA9 CORTEXA15))
22
ifeq ($(OSNAME), Android)
3-
CCOMMON_OPT += -mfpu=neon
4-
FCOMMON_OPT += -mfpu=neon
3+
CCOMMON_OPT += -mfpu=neon -march=armv7-a
4+
FCOMMON_OPT += -mfpu=neon -march=armv7-a
55
else
66
CCOMMON_OPT += -mfpu=vfpv3 -march=armv7-a
77
FCOMMON_OPT += -mfpu=vfpv3 -march=armv7-a

Makefile.arm64

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,23 @@ CCOMMON_OPT += -march=armv8-a -mtune=cortex-a73
2424
FCOMMON_OPT += -march=armv8-a -mtune=cortex-a73
2525
endif
2626

27+
# Use a72 tunings because Neoverse-N1 is only available
28+
# in GCC>=9
29+
ifeq ($(CORE), NEOVERSEN1)
30+
ifeq ($(GCCVERSIONGTEQ7), 1)
31+
ifeq ($(GCCVERSIONGTEQ9), 1)
32+
CCOMMON_OPT += -march=armv8.2-a -mtune=neoverse-n1
33+
FCOMMON_OPT += -march=armv8.2-a -mtune=neoverse-n1
34+
else
35+
CCOMMON_OPT += -march=armv8.2-a -mtune=cortex-a72
36+
FCOMMON_OPT += -march=armv8.2-a -mtune=cortex-a72
37+
endif
38+
else
39+
CCOMMON_OPT += -march=armv8-a -mtune=cortex-a72
40+
FCOMMON_OPT += -march=armv8-a -mtune=cortex-a72
41+
endif
42+
endif
43+
2744
ifeq ($(CORE), THUNDERX)
2845
CCOMMON_OPT += -march=armv8-a -mtune=thunderx
2946
FCOMMON_OPT += -march=armv8-a -mtune=thunderx

Makefile.install

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ ifeq ($(OSNAME), $(filter $(OSNAME),FreeBSD OpenBSD NetBSD DragonFly))
8282
endif
8383
ifeq ($(OSNAME), Darwin)
8484
@-cp $(LIBDYNNAME) "$(DESTDIR)$(OPENBLAS_LIBRARY_DIR)"
85-
@-install_name_tool -id "$(DESTDIR)$(OPENBLAS_LIBRARY_DIR)/$(LIBDYNNAME)" "$(DESTDIR)$(OPENBLAS_LIBRARY_DIR)/$(LIBDYNNAME)"
85+
@-install_name_tool -id "$(OPENBLAS_LIBRARY_DIR)/$(LIBPREFIX).$(MAJOR_VERSION).dylib" "$(DESTDIR)$(OPENBLAS_LIBRARY_DIR)/$(LIBDYNNAME)"
8686
@cd "$(DESTDIR)$(OPENBLAS_LIBRARY_DIR)" ; \
8787
ln -fs $(LIBDYNNAME) $(LIBPREFIX).dylib ; \
8888
ln -fs $(LIBDYNNAME) $(LIBPREFIX).$(MAJOR_VERSION).dylib

Makefile.prebuild

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ all: getarch_2nd
4242
./getarch_2nd 1 >> $(TARGET_CONF)
4343

4444
config.h : c_check f_check getarch
45-
perl ./c_check $(TARGET_MAKE) $(TARGET_CONF) $(CC) $(TARGET_FLAGS)
45+
perl ./c_check $(TARGET_MAKE) $(TARGET_CONF) $(CC) $(TARGET_FLAGS) $(CFLAGS)
4646
ifneq ($(ONLY_CBLAS), 1)
4747
perl ./f_check $(TARGET_MAKE) $(TARGET_CONF) $(FC) $(TARGET_FLAGS)
4848
else
@@ -59,13 +59,13 @@ endif
5959

6060

6161
getarch : getarch.c cpuid.S dummy $(CPUIDEMU)
62-
$(HOSTCC) $(CFLAGS) $(EXFLAGS) -o $(@F) getarch.c cpuid.S $(CPUIDEMU)
62+
$(HOSTCC) $(HOST_CFLAGS) $(EXFLAGS) -o $(@F) getarch.c cpuid.S $(CPUIDEMU)
6363

6464
getarch_2nd : getarch_2nd.c config.h dummy
6565
ifndef TARGET_CORE
66-
$(HOSTCC) -I. $(CFLAGS) -o $(@F) getarch_2nd.c
66+
$(HOSTCC) -I. $(HOST_CFLAGS) -o $(@F) getarch_2nd.c
6767
else
68-
$(HOSTCC) -I. $(CFLAGS) -DBUILD_KERNEL -o $(@F) getarch_2nd.c
68+
$(HOSTCC) -I. $(HOST_CFLAGS) -DBUILD_KERNEL -o $(@F) getarch_2nd.c
6969
endif
7070

7171
dummy:

0 commit comments

Comments
 (0)