From 850a8a46c0a569a2652d8c200e5c53b61bcf988d Mon Sep 17 00:00:00 2001 From: Devin Matthews Date: Tue, 29 May 2018 13:51:21 -0500 Subject: [PATCH] Test all x86_64 configurations*... (#212) * Add custom SDE cpuid files. * Set up testing of all x86_64 architectures (except bulldozer) using SDE. * Update .travis.yml [ci skip] * Update do_testsuite.sh [ci skip] * Updated .travis.yml with my secret token. Details: - Replaced Devin's temporary secret token with my own, which is used by Travis when accessing the Intel SDE via Dropbox. * Work around CPUID dispatch in glibc/libm by patching ld.so. * Detect path of loader at runtime. * Attempt to make SDE run on Travis * Allow unpatched ld.so if we don't know how to patch it. I *think* this only happens for older glibc without the multi-arch stuff (e.g. Ubuntu 14.04 on Travis), but who knows? * Upgrade Travis to gcc-6 and binutils-2.26. * Try to get Travis to use the right assembler. * Apparently you need ld-2.26 too. * Try to also patch ld.so from Ubuntu 14.04. * Take the nuclear option. * Account for non-absolute dependencies in ldd output. * String manipulation fail. * Update patch-ld-so.py * Add Zen to SDE testing. * Removed dead variable from travis/do_testsuite.sh. Details: - Removed 'BLIS_ENABLE_TEST_OUTPUT=yes' from make invocations in travis/do_testsuite.sh. This variable is no longer present in the BLIS build system (if it ever was?), and therefore has no effect. --- .travis.yml | 129 +++++++++++++------------------- config/excavator/make_defs.mk | 4 +- config/piledriver/make_defs.mk | 4 +- config/steamroller/make_defs.mk | 4 +- travis/cpuid/excavator.def | 78 +++++++++++++++++++ travis/cpuid/haswell.def | 65 ++++++++++++++++ travis/cpuid/penryn.def | 52 +++++++++++++ travis/cpuid/piledriver.def | 82 ++++++++++++++++++++ travis/cpuid/sandybridge.def | 55 ++++++++++++++ travis/cpuid/skx.def | 82 ++++++++++++++++++++ travis/cpuid/skx1.def | 82 ++++++++++++++++++++ travis/cpuid/steamroller.def | 80 ++++++++++++++++++++ travis/cpuid/zen.def | 83 ++++++++++++++++++++ travis/do_sde.sh | 47 ++++++++++++ travis/do_testsuite.sh | 15 ++++ travis/patch-ld-so.py | 16 ++++ 16 files changed, 794 insertions(+), 84 deletions(-) create mode 100644 travis/cpuid/excavator.def create mode 100644 travis/cpuid/haswell.def create mode 100644 travis/cpuid/penryn.def create mode 100644 travis/cpuid/piledriver.def create mode 100644 travis/cpuid/sandybridge.def create mode 100644 travis/cpuid/skx.def create mode 100644 travis/cpuid/skx1.def create mode 100644 travis/cpuid/steamroller.def create mode 100644 travis/cpuid/zen.def create mode 100755 travis/do_sde.sh create mode 100755 travis/do_testsuite.sh create mode 100755 travis/patch-ld-so.py diff --git a/.travis.yml b/.travis.yml index d1dcce71d..adcd16abf 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,89 +1,62 @@ language: c -sudo: false - -os: - - linux - - osx - -compiler: - - gcc - - clang - +sudo: required +dist: trusty env: - - OOT=1 TEST=0 THR="none" CONF="auto" - - OOT=0 TEST=1 THR="none" CONF="auto" - - OOT=0 TEST=1 THR="none" CONF="penryn" - - OOT=0 TEST=0 THR="none" CONF="sandybridge" - - OOT=0 TEST=0 THR="none" CONF="haswell" - - OOT=0 TEST=0 THR="none" CONF="knl" - - OOT=0 TEST=0 THR="none" CONF="bulldozer" - - OOT=0 TEST=0 THR="none" CONF="piledriver" - - OOT=0 TEST=0 THR="none" CONF="steamroller" - - OOT=0 TEST=0 THR="none" CONF="excavator" - - OOT=0 TEST=0 THR="none" CONF="zen" - - OOT=0 TEST=0 THR="openmp" CONF="auto" - - OOT=0 TEST=0 THR="pthreads" CONF="auto" - + global: + secure: "Ty3PM1xGhXwxfJG6YyY9bUZyXzw98ekHxQEqU9VnrMXTZb28IxfocPCXHjL34r9HTGosO5Pmierhal1Cs3ZKE5ZAJqJhCfck+kwlH21Uay5CNYglDtSmy2qxtbbDG4AxpEZ1UKlIZr1pNh/x+pRemSmnMEnQp/E7QJqdkhm4+aMX2bWKyLPtrdL+B9QXLVT2nT6/Fw3i05aBhpcFJpSPfvYX2KoCZYdJOSKcKci4T8nAfP/c0olkz+jAkBZxZFgO9Ptrt/lvHtVPrkh5o29GvHg2i/4vucbsMltoxlV31/2eYpdr17Ngtt41MMVn2fHV4lVhLmENc04nlm084fBtg73T6b8hNy5JlcA44xI/UrPJsQAJ+0A0ds9BbBQKPxOmaF/O8WGXhwiwdKT6DGS9lj05f3S+yZfeNE3pQhLEcvwXLO5SW3VvKXMj0t/lZyG+XCkvFjD7KEPQV4g+BZc2zzD9TwDx3ydn8Uzd6zZlq1erQUzCnODP24wuwfrNP8nqxFYG0VtI8oZW62IC9U2hcnAF5QNXXW3yDYD65k3BHbigfI28gu9iO9G8RxOglR27J7Whdqkqw3AMRaqyHt2tdbz7tM2dLZ0EatT5m8esjC+LP4EshW9C59jP2U9vJ/94YEgOfwiqk8+e6fL/7dJvOumbwu1RclRI9DS88PPYb3Q=" matrix: - allow_failures: - - env: OOT=0 TEST=0 THR="none" CONF="knl" - - os: osx - env: OOT=0 TEST=1 THR="none" CONF="auto" - exclude: - - os: linux - compiler: clang - - os: osx - compiler: gcc - - os: osx - env: OOT=1 TEST=0 THR="none" CONF="auto" - - os: osx - env: OOT=0 TEST=1 THR="none" CONF="penryn" - - os: osx - env: OOT=0 TEST=0 THR="none" CONF="sandybridge" - - os: osx - env: OOT=0 TEST=0 THR="none" CONF="haswell" - - os: osx - env: OOT=0 TEST=0 THR="none" CONF="knl" - - os: osx - env: OOT=0 TEST=0 THR="none" CONF="bulldozer" - - os: osx - env: OOT=0 TEST=0 THR="none" CONF="piledriver" - - os: osx - env: OOT=0 TEST=0 THR="none" CONF="steamroller" - - os: osx - env: OOT=0 TEST=0 THR="none" CONF="excavator" - - os: osx - env: OOT=0 TEST=0 THR="none" CONF="zen" - - os: osx - env: OOT=0 TEST=0 THR="openmp" CONF="auto" - + include: + # full testsuite + - os: linux + compiler: gcc + env: OOT=0 TEST=1 SDE=0 THR="none" CONF="auto" + # test x86_64 ukrs with SDE + - os: linux + compiler: gcc + env: OOT=0 TEST=0 SDE=1 THR="none" CONF="x86_64" + # openmp build + - os: linux + compiler: gcc + env: OOT=0 TEST=0 SDE=0 THR="openmp" CONF="auto" + # pthreads build + - os: linux + compiler: gcc + env: OOT=0 TEST=0 SDE=0 THR="pthreads" CONF="auto" + # out-of-tree build + - os: linux + compiler: gcc + env: OOT=1 TEST=0 SDE=0 THR="none" CONF="auto" + # clang build + - os: linux + compiler: clang + env: OOT=0 TEST=0 SDE=0 THR="none" CONF="auto" + # macOS with system compiler (clang) + - os: osx + compiler: clang + env: OOT=0 TEST=0 SDE=0 THR="none" CONF="auto" install: - - if [ "$CC" = "gcc" ] && [ "$TRAVIS_OS_NAME" = "linux" ]; then export CC="gcc-5"; fi - +- if [ "$TRAVIS_OS_NAME" = "linux" ]; then sudo rm -f /usr/bin/as; fi +- if [ "$TRAVIS_OS_NAME" = "linux" ]; then sudo ln -s /usr/lib/binutils-2.26/bin/as /usr/bin/as; fi +- if [ "$TRAVIS_OS_NAME" = "linux" ]; then sudo rm -f /usr/bin/ld; fi +- if [ "$TRAVIS_OS_NAME" = "linux" ]; then sudo ln -s /usr/lib/binutils-2.26/bin/ld /usr/bin/ld; fi +- if [ "$CC" = "gcc" ] && [ "$TRAVIS_OS_NAME" = "linux" ]; then export CC="gcc-6"; fi addons: apt: sources: - ubuntu-toolchain-r-test packages: - - gcc-5 + - gcc-6 + - binutils-2.26 - clang - script: - - export DIST_PATH=. - - pwd - - if [ $OOT -eq 1 ]; then mkdir oot; cd oot; export DIST_PATH=..; fi - - pwd - - $DIST_PATH/configure -t $THR CC=$CC $CONF - - pwd - - ls -l - - $CC --version - - make -j 2 - - export BLIS_IC_NT=2 - - export BLIS_JC_NT=1 - - export BLIS_IR_NT=1 - - export BLIS_JR_NT=1 - - if [ $TEST -eq 1 ]; then travis_wait 30 make BLIS_ENABLE_TEST_OUTPUT=yes testblis; fi - - if [ $TEST -eq 1 ]; then $DIST_PATH/build/check-blistest.sh ./output.testsuite; fi - - if [ $TEST -eq 1 ]; then make BLIS_ENABLE_TEST_OUTPUT=yes testblas; fi - - if [ $TEST -eq 1 ]; then $DIST_PATH/build/check-blastest.sh; fi - +- export DIST_PATH=. +- pwd +- if [ $OOT -eq 1 ]; then mkdir oot; cd oot; export DIST_PATH=..; fi +- pwd +- $DIST_PATH/configure -t $THR CC=$CC $CONF +- pwd +- ls -l +- $CC --version +- make -j 2 +- if [ $TEST -eq 1 ]; then travis_wait 30 $DIST_PATH/travis/do_testsuite.sh; fi +- if [ $SDE -eq 1 ]; then travis_wait 30 $DIST_PATH/travis/do_sde.sh; fi diff --git a/config/excavator/make_defs.mk b/config/excavator/make_defs.mk index cebaa30df..12d5add0c 100644 --- a/config/excavator/make_defs.mk +++ b/config/excavator/make_defs.mk @@ -63,10 +63,10 @@ endif # Flags specific to optimized kernels. CKOPTFLAGS := $(COPTFLAGS) ifeq ($(CC_VENDOR),gcc) -CKVECFLAGS := -mfpmath=sse -mavx -mfma -march=bdver4 +CKVECFLAGS := -mfpmath=sse -mavx -mfma -mno-fma4 -march=bdver4 else ifeq ($(CC_VENDOR),clang) -CKVECFLAGS := -mfpmath=sse -mavx -mfma -march=bdver4 +CKVECFLAGS := -mfpmath=sse -mavx -mfma -mno-fma4 -march=bdver4 else $(error gcc or clang are required for this configuration.) endif diff --git a/config/piledriver/make_defs.mk b/config/piledriver/make_defs.mk index 2e58143ec..395b8b9b5 100644 --- a/config/piledriver/make_defs.mk +++ b/config/piledriver/make_defs.mk @@ -63,10 +63,10 @@ endif # Flags specific to optimized kernels. CKOPTFLAGS := $(COPTFLAGS) ifeq ($(CC_VENDOR),gcc) -CKVECFLAGS := -mfpmath=sse -mavx -mfma -march=bdver2 +CKVECFLAGS := -mfpmath=sse -mavx -mfma -mno-fma4 -march=bdver2 else ifeq ($(CC_VENDOR),clang) -CKVECFLAGS := -mfpmath=sse -mavx -mfma -march=bdver2 +CKVECFLAGS := -mfpmath=sse -mavx -mfma -mno-fma4 -march=bdver2 else $(error gcc or clang are required for this configuration.) endif diff --git a/config/steamroller/make_defs.mk b/config/steamroller/make_defs.mk index cbd9064cc..adb6ebe2e 100644 --- a/config/steamroller/make_defs.mk +++ b/config/steamroller/make_defs.mk @@ -63,10 +63,10 @@ endif # Flags specific to optimized kernels. CKOPTFLAGS := $(COPTFLAGS) ifeq ($(CC_VENDOR),gcc) -CKVECFLAGS := -mfpmath=sse -mavx -mfma -march=bdver2 +CKVECFLAGS := -mfpmath=sse -mavx -mfma -mno-fma4 -march=bdver3 else ifeq ($(CC_VENDOR),clang) -CKVECFLAGS := -mfpmath=sse -mavx -mfma -march=bdver2 +CKVECFLAGS := -mfpmath=sse -mavx -mfma -mno-fma4 -march=bdver3 else $(error gcc or clang are required for this configuration.) endif diff --git a/travis/cpuid/excavator.def b/travis/cpuid/excavator.def new file mode 100644 index 000000000..2479cdd44 --- /dev/null +++ b/travis/cpuid/excavator.def @@ -0,0 +1,78 @@ +# +# BLIS +# An object-based framework for developing high-performance BLAS-like +# libraries. +# +# Copyright (C) 2018, The University of Texas at Austin +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# - Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# - Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# - Neither the name of The University of Texas at Austin nor the names +# of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# CPU: AMD A12-8870, 4000 MHz +# +00000000 ******** => 0000000D 68747541 444D4163 69746E65 +00000001 ******** => 00660F51 00040800 7ED8320B 178BFBFF +00000002 ******** => 00000000 00000000 00000000 00000000 +00000003 ******** => 00000000 00000000 00000000 00000000 +00000005 ******** => 00000040 00000040 00000003 00000000 +00000006 ******** => 00000004 00000000 00000001 00000000 +00000007 ******** => 00000000 000001A9 00000000 00000000 +00000008 ******** => 00000000 00000000 00000000 00000000 +00000009 ******** => 00000000 00000000 00000000 00000000 +0000000A ******** => 00000000 00000000 00000000 00000000 +0000000C ******** => 00000000 00000000 00000000 00000000 +0000000D 00000000 => 00000007 00000340 000003C0 40000000 +0000000D 00000001 => 00000001 00000000 00000000 00000000 +0000000D 00000002 => 00000100 00000240 00000000 00000000 +0000000D 0000003E => 00000080 00000340 00000000 00000000 +80000000 ******** => 8000001E 68747541 444D4163 69746E65 +80000001 ******** => 00660F51 20000000 2FABBFFF 2FD3FBFF +80000002 ******** => 20444D41 204F5250 2D323141 30373838 +80000003 ******** => 2C375220 20323120 504D4F43 20455455 +80000004 ******** => 45524F43 43342053 2047382B 00202020 +80000005 ******** => FF40FF18 FF40FF30 20080140 60030140 +80000006 ******** => 64006400 64004200 04008140 00000000 +80000007 ******** => 00000000 00000005 00000400 000037D9 +80000008 ******** => 00003030 00000000 00004003 00000000 +80000009 ******** => 00000000 00000000 00000000 00000000 +8000000A ******** => 00000001 00008000 00000000 0001BCFF +8000000B ******** => 00000000 00000000 00000000 00000000 +8000000C ******** => 00000000 00000000 00000000 00000000 +8000000D ******** => 00000000 00000000 00000000 00000000 +8000000E ******** => 00000000 00000000 00000000 00000000 +8000000F ******** => 00000000 00000000 00000000 00000000 +80000010 ******** => 00000000 00000000 00000000 00000000 +80000011 ******** => 00000000 00000000 00000000 00000000 +80000012 ******** => 00000000 00000000 00000000 00000000 +80000013 ******** => 00000000 00000000 00000000 00000000 +80000014 ******** => 00000000 00000000 00000000 00000000 +80000015 ******** => 00000000 00000000 00000000 00000000 +80000016 ******** => 00000000 00000000 00000000 00000000 +80000017 ******** => 00000000 00000000 00000000 00000000 +80000018 ******** => 00000000 00000000 00000000 00000000 +80000019 ******** => F040F018 64006400 00000000 00000000 +8000001A ******** => 00000003 00000000 00000000 00000000 +8000001B ******** => 000007FF 00000000 00000000 00000000 +8000001C ******** => 00000000 80032013 00010200 E000000F +8000001E ******** => 00000010 00000100 00000000 00000000 diff --git a/travis/cpuid/haswell.def b/travis/cpuid/haswell.def new file mode 100644 index 000000000..7bbd0c1b5 --- /dev/null +++ b/travis/cpuid/haswell.def @@ -0,0 +1,65 @@ +# +# BLIS +# An object-based framework for developing high-performance BLAS-like +# libraries. +# +# Copyright (C) 2018, The University of Texas at Austin +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# - Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# - Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# - Neither the name of The University of Texas at Austin nor the names +# of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# CPU: Intel Xeon E5-2660 v3, 2600 MHz +# +00000000 ******** => 0000000F 756E6547 6C65746E 49656E69 +00000001 ******** => 000306F2 00200800 7FFEFBFF BFEBFBFF +00000002 ******** => 76036301 00F0B5FF 00000000 00C10000 +00000003 ******** => 00000000 00000000 00000000 00000000 +00000004 00000000 => 3C004121 01C0003F 0000003F 00000000 +00000004 00000001 => 3C004122 01C0003F 0000003F 00000000 +00000004 00000002 => 3C004143 01C0003F 000001FF 00000000 +00000004 00000003 => 3C07C163 04C0003F 00004FFF 00000006 +00000005 ******** => 00000040 00000040 00000003 00002120 +00000006 ******** => 00000075 00000002 00000009 00000000 +00000007 ******** => 00000000 000037AB 00000000 00000000 +00000008 ******** => 00000000 00000000 00000000 00000000 +00000009 ******** => 00000001 00000000 00000000 00000000 +0000000A ******** => 07300403 00000000 00000000 00000603 +0000000B 00000000 => 00000001 00000002 00000100 00000000 +0000000B 00000001 => 00000005 00000014 00000201 00000000 +0000000C ******** => 00000000 00000000 00000000 00000000 +0000000D 00000000 => 00000007 00000340 00000340 00000000 +0000000D 00000001 => 00000001 00000000 00000000 00000000 +0000000D 00000002 => 00000100 00000240 00000000 00000000 +0000000E ******** => 00000000 00000000 00000000 00000000 +0000000F 00000000 => 00000000 00000027 00000000 00000002 +0000000F 00000001 => 00000000 0000A000 00000027 00000001 +80000000 ******** => 80000008 00000000 00000000 00000000 +80000001 ******** => 00000000 00000000 00000021 2C100000 +80000002 ******** => 65746E49 2952286C 6F655820 2952286E +80000003 ******** => 55504320 2D354520 30363632 20337620 +80000004 ******** => 2E322040 48473036 0000007A 00000000 +80000005 ******** => 00000000 00000000 00000000 00000000 +80000006 ******** => 00000000 00000000 01006040 00000000 +80000007 ******** => 00000000 00000000 00000000 00000100 +80000008 ******** => 0000302E 00000000 00000000 00000000 diff --git a/travis/cpuid/penryn.def b/travis/cpuid/penryn.def new file mode 100644 index 000000000..3f12be1af --- /dev/null +++ b/travis/cpuid/penryn.def @@ -0,0 +1,52 @@ +# +# BLIS +# An object-based framework for developing high-performance BLAS-like +# libraries. +# +# Copyright (C) 2018, The University of Texas at Austin +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# - Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# - Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# - Neither the name of The University of Texas at Austin nor the names +# of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# CPU: Intel Xeon X5550, 2666 MHz +# +00000000 ******** => 0000000B 756E6547 6C65746E 49656E69 +00000001 ******** => 000106A2 00100800 00BCE3BD BFEBFBFF +00000002 ******** => 55035A01 00F0B2E4 00000000 09CA212C +00000003 ******** => 00000000 00000000 00000000 00000000 +00000005 ******** => 00000040 00000040 00000003 00021120 +00000006 ******** => 00000003 00000002 00000001 00000000 +00000007 ******** => 00000000 00000000 00000000 00000000 +00000008 ******** => 00000000 00000000 00000000 00000000 +00000009 ******** => 00000000 00000000 00000000 00000000 +0000000A ******** => 07300403 00000000 00000000 00000603 +80000000 ******** => 80000008 00000000 00000000 00000000 +80000001 ******** => 00000000 00000000 00000001 28100000 +80000002 ******** => 756E6547 20656E69 65746E49 2952286C +80000003 ******** => 55504320 20202020 20202020 40202020 +80000004 ******** => 30303020 20402030 37362E32 007A4847 +80000005 ******** => 00000000 00000000 00000000 00000000 +80000006 ******** => 00000000 00000000 01006040 00000000 +80000007 ******** => 00000000 00000000 00000000 00000100 +80000008 ******** => 00003028 00000000 00000000 00000000 diff --git a/travis/cpuid/piledriver.def b/travis/cpuid/piledriver.def new file mode 100644 index 000000000..06c64b1c1 --- /dev/null +++ b/travis/cpuid/piledriver.def @@ -0,0 +1,82 @@ +# +# BLIS +# An object-based framework for developing high-performance BLAS-like +# libraries. +# +# Copyright (C) 2018, The University of Texas at Austin +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# - Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# - Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# - Neither the name of The University of Texas at Austin nor the names +# of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# CPU: AMD A10-6800K, 4300 MHz +# +00000000 ******** => 0000000D 68747541 444D4163 69746E65 +00000001 ******** => 00610F31 00040800 3E98320B 178BFBFF +00000002 ******** => 00000000 00000000 00000000 00000000 +00000003 ******** => 00000000 00000000 00000000 00000000 +00000005 ******** => 00000040 00000040 00000003 00000000 +00000006 ******** => 00000000 00000000 00000001 00000000 +00000007 ******** => 00000000 00000008 00000000 00000000 +00000008 ******** => 00000000 00000000 00000000 00000000 +00000009 ******** => 00000000 00000000 00000000 00000000 +0000000A ******** => 00000000 00000000 00000000 00000000 +0000000C ******** => 00000000 00000000 00000000 00000000 +0000000D 00000000 => 00000007 00000340 000003C0 40000000 +0000000D 00000001 => 00000000 00000000 00000000 00000000 +0000000D 00000002 => 00000100 00000240 00000000 00000000 +0000000D 0000003E => 00000080 00000340 00000000 00000000 +80000000 ******** => 8000001E 68747541 444D4163 69746E65 +80000001 ******** => 00610F31 20000000 01EBBFFF 2FD3FBFF +80000002 ******** => 20444D41 2D303141 30303836 5041204B +80000003 ******** => 69772055 52206874 6F656461 6D74286E +80000004 ******** => 44482029 61724720 63696870 00202073 +80000005 ******** => FF40FF18 FF40FF30 10040140 40020140 +80000006 ******** => 64006400 64004200 08008140 00000000 +80000007 ******** => 00000000 00000000 00000000 000007D9 +80000008 ******** => 00003030 00000000 00004003 00000000 +80000009 ******** => 00000000 00000000 00000000 00000000 +8000000A ******** => 00000001 00010000 00000000 00001CFF +8000000B ******** => 00000000 00000000 00000000 00000000 +8000000C ******** => 00000000 00000000 00000000 00000000 +8000000D ******** => 00000000 00000000 00000000 00000000 +8000000E ******** => 00000000 00000000 00000000 00000000 +8000000F ******** => 00000000 00000000 00000000 00000000 +80000010 ******** => 00000000 00000000 00000000 00000000 +80000011 ******** => 00000000 00000000 00000000 00000000 +80000012 ******** => 00000000 00000000 00000000 00000000 +80000013 ******** => 00000000 00000000 00000000 00000000 +80000014 ******** => 00000000 00000000 00000000 00000000 +80000015 ******** => 00000000 00000000 00000000 00000000 +80000016 ******** => 00000000 00000000 00000000 00000000 +80000017 ******** => 00000000 00000000 00000000 00000000 +80000018 ******** => 00000000 00000000 00000000 00000000 +80000019 ******** => F040F018 64006400 00000000 00000000 +8000001A ******** => 00000003 00000000 00000000 00000000 +8000001B ******** => 000000FF 00000000 00000000 00000000 +8000001C ******** => 00000000 80032013 00010200 8000000F +8000001D 00000001 => 00000121 00C0003F 0000003F 00000000 +8000001D 00000002 => 00004122 0040003F 000001FF 00000000 +8000001D 00000003 => 00004143 03C0003F 000007FF 00000001 +8000001E ******** => 00000010 00000100 00000000 00000000 +8FFFFFFF ******** => 00000000 00000000 00000000 00000000 diff --git a/travis/cpuid/sandybridge.def b/travis/cpuid/sandybridge.def new file mode 100644 index 000000000..7faf93b9f --- /dev/null +++ b/travis/cpuid/sandybridge.def @@ -0,0 +1,55 @@ +# +# BLIS +# An object-based framework for developing high-performance BLAS-like +# libraries. +# +# Copyright (C) 2018, The University of Texas at Austin +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# - Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# - Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# - Neither the name of The University of Texas at Austin nor the names +# of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# CPU: Intel Xeon E3-1230 v2, 3700 MHz +# +00000000 ******** => 0000000D 756E6547 6C65746E 49656E69 +00000001 ******** => 000306A9 00100800 7FBAE3FF BFEBFBFF +00000002 ******** => 76035A01 00F0B2FF 00000000 00CA0000 +00000003 ******** => 00000000 00000000 00000000 00000000 +00000005 ******** => 00000040 00000040 00000003 00001120 +00000006 ******** => 00000077 00000002 00000009 00000000 +00000007 ******** => 00000000 00000281 00000000 00000000 +00000008 ******** => 00000000 00000000 00000000 00000000 +00000009 ******** => 00000000 00000000 00000000 00000000 +0000000A ******** => 07300403 00000000 00000000 00000603 +0000000C ******** => 00000000 00000000 00000000 00000000 +0000000D 00000000 => 00000007 00000240 00000340 00000000 +0000000D 00000001 => 00000100 00000240 00000000 00000000 +80000000 ******** => 80000008 00000000 00000000 00000000 +80000001 ******** => 00000000 00000000 00000001 28100000 +80000002 ******** => 20202020 6E492020 286C6574 58202952 +80000003 ******** => 286E6F65 43202952 45205550 32312D33 +80000004 ******** => 56203033 20402032 30332E33 007A4847 +80000005 ******** => 00000000 00000000 00000000 00000000 +80000006 ******** => 00000000 00000000 01006040 00000000 +80000007 ******** => 00000000 00000000 00000000 00000100 +80000008 ******** => 00003024 00000000 00000000 00000000 diff --git a/travis/cpuid/skx.def b/travis/cpuid/skx.def new file mode 100644 index 000000000..adff98e3f --- /dev/null +++ b/travis/cpuid/skx.def @@ -0,0 +1,82 @@ +# +# BLIS +# An object-based framework for developing high-performance BLAS-like +# libraries. +# +# Copyright (C) 2018, The University of Texas at Austin +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# - Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# - Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# - Neither the name of The University of Texas at Austin nor the names +# of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# CPU: Intel Xeon Platinum 8180, 2500 MHz +# +00000000 ******** => 00000016 756E6547 6C65746E 49656E69 +00000001 ******** => 00050654 00400800 7FFEFBFF BFEBFBFF +00000002 ******** => 76036301 00F0B5FF 00000000 00C30000 +00000003 ******** => 00000000 00000000 00000000 00000000 +00000004 00000000 => 7C004121 01C0003F 0000003F 00000000 +00000004 00000001 => 7C004122 01C0003F 0000003F 00000000 +00000004 00000002 => 7C004143 03C0003F 000003FF 00000000 +00000004 00000003 => 7C0FC163 0280003F 0000DFFF 00000004 +00000005 ******** => 00000040 00000040 00000003 00002020 +00000006 ******** => 00000EF7 00000002 00000009 00000000 +00000007 ******** => 00000000 D39FFFFB 00000008 00000000 +00000008 ******** => 00000000 00000000 00000000 00000000 +00000009 ******** => 00000000 00000000 00000000 00000000 +0000000A ******** => 07300404 00000000 00000000 00000603 +0000000B 00000000 => 00000001 00000002 00000100 00000000 +0000000B 00000001 => 00000006 00000038 00000201 00000000 +0000000C ******** => 00000000 00000000 00000000 00000000 +0000000D 00000000 => 000002FF 00000A80 00000A88 00000000 +0000000D 00000001 => 0000000F 00000A00 00000100 00000000 +0000000D 00000002 => 00000100 00000240 00000000 00000000 +0000000D 00000003 => 00000040 000003C0 00000000 00000000 +0000000D 00000004 => 00000040 00000400 00000000 00000000 +0000000D 00000005 => 00000040 00000440 00000000 00000000 +0000000D 00000006 => 00000200 00000480 00000000 00000000 +0000000D 00000007 => 00000400 00000680 00000000 00000000 +0000000D 00000008 => 00000080 00000000 00000001 00000000 +0000000D 00000009 => 00000008 00000A80 00000000 00000000 +0000000E ******** => 00000000 00000000 00000000 00000000 +0000000F 00000000 => 00000000 000000DF 00000000 00000002 +0000000F 00000001 => 00000000 0001C000 000000DF 00000007 +00000010 00000000 => 00000000 0000000A 00000000 00000000 +00000010 00000001 => 0000000A 00000600 00000004 0000000F +00000011 ******** => 00000000 00000000 00000000 00000000 +00000012 00000000 => 00000000 00000000 00000000 00000000 +00000012 00000001 => 00000000 00000000 00000000 00000000 +00000013 ******** => 00000000 00000000 00000000 00000000 +00000014 00000000 => 00000001 0000000F 00000007 00000000 +00000014 00000001 => 02490002 003F3FFF 00000000 00000000 +00000015 ******** => 00000002 000000C8 00000000 00000000 +00000016 ******** => 000009C4 00000ED8 00000064 00000000 +80000000 ******** => 80000008 00000000 00000000 00000000 +80000001 ******** => 00000000 00000000 00000121 2C100000 +80000002 ******** => 65746E49 2952286C 6F655820 2952286E +80000003 ******** => 616C5020 756E6974 3138206D 43203038 +80000004 ******** => 40205550 352E3220 7A484730 00000000 +80000005 ******** => 00000000 00000000 00000000 00000000 +80000006 ******** => 00000000 00000000 01006040 00000000 +80000007 ******** => 00000000 00000000 00000000 00000100 +80000008 ******** => 0000302E 00000000 00000000 00000000 diff --git a/travis/cpuid/skx1.def b/travis/cpuid/skx1.def new file mode 100644 index 000000000..d28b69432 --- /dev/null +++ b/travis/cpuid/skx1.def @@ -0,0 +1,82 @@ +# +# BLIS +# An object-based framework for developing high-performance BLAS-like +# libraries. +# +# Copyright (C) 2018, The University of Texas at Austin +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# - Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# - Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# - Neither the name of The University of Texas at Austin nor the names +# of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# CPU: Intel Xeon Bronze 3106 +# +00000000 ******** => 00000016 756E6547 6C65746E 49656E69 +00000001 ******** => 00050654 00100800 7FFEFBFF BFEBFBFF +00000002 ******** => 76036301 00F0B6FF 00000000 00C30000 +00000003 ******** => 00000000 00000000 00000000 00000000 +00000004 00000000 => 1C004121 01C0003F 0000003F 00000000 +00000004 00000001 => 1C004122 01C0003F 0000003F 00000000 +00000004 00000002 => 1C004143 03C0003F 000003FF 00000000 +00000004 00000003 => 1C03C163 0280003F 00002FFF 00000004 +00000005 ******** => 00000040 00000040 00000003 00002020 +00000006 ******** => 00000EF5 00000002 00000009 00000000 +00000007 ******** => 00000000 D39FFFFB 00000008 00000000 +00000008 ******** => 00000000 00000000 00000000 00000000 +00000009 ******** => 00000000 00000000 00000000 00000000 +0000000A ******** => 07300804 00000000 00000000 00000603 +0000000B 00000000 => 00000001 00000001 00000100 00000000 +0000000B 00000001 => 00000004 00000006 00000201 00000000 +0000000C ******** => 00000000 00000000 00000000 00000000 +0000000D 00000000 => 000002FF 00000340 00000A88 00000000 +0000000D 00000001 => 0000000F 00000340 00000100 00000000 +0000000D 00000002 => 00000100 00000240 00000000 00000000 +0000000D 00000003 => 00000040 000003C0 00000000 00000000 +0000000D 00000004 => 00000040 00000400 00000000 00000000 +0000000D 00000005 => 00000040 00000440 00000000 00000000 +0000000D 00000006 => 00000200 00000480 00000000 00000000 +0000000D 00000007 => 00000400 00000680 00000000 00000000 +0000000D 00000008 => 00000080 00000000 00000001 00000000 +0000000D 00000009 => 00000008 00000A80 00000000 00000000 +0000000E ******** => 00000000 00000000 00000000 00000000 +0000000F 00000000 => 00000000 0000002F 00000000 00000002 +0000000F 00000001 => 00000000 00006000 0000002F 00000007 +00000010 00000000 => 00000000 0000000A 00000000 00000000 +00000010 00000001 => 0000000A 00000600 00000004 0000000F +00000011 ******** => 00000000 00000000 00000000 00000000 +00000012 00000000 => 00000000 00000000 00000000 00000000 +00000012 00000001 => 00000000 00000000 00000000 00000000 +00000013 ******** => 00000000 00000000 00000000 00000000 +00000014 00000000 => 00000001 0000000F 00000007 00000000 +00000014 00000001 => 02490002 003F3FFF 00000000 00000000 +00000015 ******** => 00000002 00000088 00000000 00000000 +00000016 ******** => 000006A4 000006A4 00000064 00000000 +80000000 ******** => 80000008 00000000 00000000 00000000 +80000001 ******** => 00000000 00000000 00000121 2C100000 +80000002 ******** => 65746E49 2952286C 6F655820 2952286E +80000003 ******** => 6F724220 20657A6E 34303133 55504320 +80000004 ******** => 31204020 4730372E 00007A48 00000000 +80000005 ******** => 00000000 00000000 00000000 00000000 +80000006 ******** => 00000000 00000000 01006040 00000000 +80000007 ******** => 00000000 00000000 00000000 00000100 +80000008 ******** => 0000302E 00000000 00000000 00000000 diff --git a/travis/cpuid/steamroller.def b/travis/cpuid/steamroller.def new file mode 100644 index 000000000..c56d6104a --- /dev/null +++ b/travis/cpuid/steamroller.def @@ -0,0 +1,80 @@ +# +# BLIS +# An object-based framework for developing high-performance BLAS-like +# libraries. +# +# Copyright (C) 2018, The University of Texas at Austin +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# - Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# - Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# - Neither the name of The University of Texas at Austin nor the names +# of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# CPU: AMD A10-7850K, 4000 MHz +# +00000000 ******** => 0000000D 68747541 444D4163 69746E65 +00000001 ******** => 00630F01 00040800 3E98320B 178BFBFF +00000002 ******** => 00000000 00000000 00000000 00000000 +00000003 ******** => 00000000 00000000 00000000 00000000 +00000005 ******** => 00000040 00000040 00000003 00000000 +00000006 ******** => 00000000 00000000 00000001 00000000 +00000007 ******** => 00000000 00000009 00000000 00000000 +00000008 ******** => 00000000 00000000 00000000 00000000 +00000009 ******** => 00000000 00000000 00000000 00000000 +0000000A ******** => 00000000 00000000 00000000 00000000 +0000000C ******** => 00000000 00000000 00000000 00000000 +0000000D 00000000 => 00000007 00000340 000003C0 40000000 +0000000D 00000001 => 00000100 00000240 00000000 00000000 +80000000 ******** => 8000001E 68747541 444D4163 69746E65 +80000001 ******** => 00630F01 10000000 0FEBBFFF 2FD3FBFF +80000002 ******** => 20444D41 2D303141 30353837 5041204B +80000003 ******** => 69772055 52206874 6F656461 4D54286E +80000004 ******** => 37522029 61724720 63696870 00202073 +80000005 ******** => FF40FF18 FF40FF30 10040140 60030140 +80000006 ******** => 64006400 64004200 08008140 00000000 +80000007 ******** => 00000000 00000001 00000000 000027D9 +80000008 ******** => 00003030 00000000 00004003 00000000 +80000009 ******** => 00000000 00000000 00000000 00000000 +8000000A ******** => 00000001 00010000 00000000 00001CFF +8000000B ******** => 00000000 00000000 00000000 00000000 +8000000C ******** => 00000000 00000000 00000000 00000000 +8000000D ******** => 00000000 00000000 00000000 00000000 +8000000E ******** => 00000000 00000000 00000000 00000000 +8000000F ******** => 00000000 00000000 00000000 00000000 +80000010 ******** => 00000000 00000000 00000000 00000000 +80000011 ******** => 00000000 00000000 00000000 00000000 +80000012 ******** => 00000000 00000000 00000000 00000000 +80000013 ******** => 00000000 00000000 00000000 00000000 +80000014 ******** => 00000000 00000000 00000000 00000000 +80000015 ******** => 00000000 00000000 00000000 00000000 +80000016 ******** => 00000000 00000000 00000000 00000000 +80000017 ******** => 00000000 00000000 00000000 00000000 +80000018 ******** => 00000000 00000000 00000000 00000000 +80000019 ******** => F040F018 64006400 00000000 00000000 +8000001A ******** => 00000003 00000000 00000000 00000000 +8000001B ******** => 000001FF 00000000 00000000 00000000 +8000001C ******** => 00000000 80032013 00010200 E000000F +8000001D 00000000 => 00000121 00C0003F 0000003F 00000000 +8000001D 00000001 => 00004122 0080003F 000001FF 00000000 +8000001D 00000002 => 00004143 03C0003F 000007FF 00000001 +8000001E ******** => 00000010 00000100 00000000 00000000 +8FFFFFFF ******** => 00000000 00000000 00000000 00000000 diff --git a/travis/cpuid/zen.def b/travis/cpuid/zen.def new file mode 100644 index 000000000..2c20714fb --- /dev/null +++ b/travis/cpuid/zen.def @@ -0,0 +1,83 @@ +# +# BLIS +# An object-based framework for developing high-performance BLAS-like +# libraries. +# +# Copyright (C) 2018, The University of Texas at Austin +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# - Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# - Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# - Neither the name of The University of Texas at Austin nor the names +# of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# CPU: AMD EPYC 7551P, 3000 MHz +# +00000000 ******** => 0000000D 68747541 444D4163 69746E65 +00000001 ******** => 00800F12 00400800 7ED8320B 178BFBFF +00000002 ******** => 00000000 00000000 00000000 00000000 +00000003 ******** => 00000000 00000000 00000000 00000000 +00000005 ******** => 00000040 00000040 00000003 00000011 +00000006 ******** => 00000004 00000000 00000001 00000000 +00000007 ******** => 00000000 209C01A9 00000000 00000000 +00000008 ******** => 00000000 00000000 00000000 00000000 +00000009 ******** => 00000000 00000000 00000000 00000000 +0000000A ******** => 00000000 00000000 00000000 00000000 +0000000C ******** => 00000000 00000000 00000000 00000000 +0000000D 00000000 => 00000007 00000340 00000340 00000000 +0000000D 00000001 => 0000000F 00000340 00000000 00000000 +0000000D 00000002 => 00000100 00000240 00000000 00000000 +80000000 ******** => 8000001F 68747541 444D4163 69746E65 +80000001 ******** => 00800F12 40000000 35C233FF 2FD3FBFF +80000002 ******** => 20444D41 43595045 35353720 33205031 +80000003 ******** => 6F432D32 50206572 65636F72 726F7373 +80000004 ******** => 20202020 20202020 20202020 00202020 +80000005 ******** => FF40FF40 FF40FF40 20080140 40040140 +80000006 ******** => 36006400 56006400 02006140 0200C140 +80000007 ******** => 00000000 0000001B 00000000 00006799 +80000008 ******** => 00003030 00000007 0000603F 00000000 +80000009 ******** => 00000000 00000000 00000000 00000000 +8000000A ******** => 00000001 00008000 00000000 0001BCFF +8000000B ******** => 00000000 00000000 00000000 00000000 +8000000C ******** => 00000000 00000000 00000000 00000000 +8000000D ******** => 00000000 00000000 00000000 00000000 +8000000E ******** => 00000000 00000000 00000000 00000000 +8000000F ******** => 00000000 00000000 00000000 00000000 +80000010 ******** => 00000000 00000000 00000000 00000000 +80000011 ******** => 00000000 00000000 00000000 00000000 +80000012 ******** => 00000000 00000000 00000000 00000000 +80000013 ******** => 00000000 00000000 00000000 00000000 +80000014 ******** => 00000000 00000000 00000000 00000000 +80000015 ******** => 00000000 00000000 00000000 00000000 +80000016 ******** => 00000000 00000000 00000000 00000000 +80000017 ******** => 00000000 00000000 00000000 00000000 +80000018 ******** => 00000000 00000000 00000000 00000000 +80000019 ******** => F040F040 00000000 00000000 00000000 +8000001A ******** => 00000003 00000000 00000000 00000000 +8000001B ******** => 000003FF 00000000 00000000 00000000 +8000001C ******** => 00000000 00000000 00000000 00000000 +8000001D 00000000 => 00004121 01C0003F 0000003F 00000000 +8000001D 00000001 => 00004122 00C0003F 000000FF 00000000 +8000001D 00000002 => 00004143 01C0003F 000003FF 00000002 +8000001D 00000003 => 0001C163 03C0003F 00001FFF 00000001 +8000001E ******** => 00000000 00000100 00000300 00000000 +8000001F ******** => 0000000F 0000016F 0000000F 00000001 +8FFFFFFF ******** => 00000000 00000000 00000000 00000000 diff --git a/travis/do_sde.sh b/travis/do_sde.sh new file mode 100755 index 000000000..3c13d6be1 --- /dev/null +++ b/travis/do_sde.sh @@ -0,0 +1,47 @@ +#!/bin/bash + +set -e +set -x + +SDE_VERSION=sde-external-8.16.0-2018-01-30-lin +SDE_TARBALL=$SDE_VERSION.tar.bz2 +SDE=$SDE_VERSION/sde64 + +set +x +curl -s -X POST https://content.dropboxapi.com/2/files/download -H "Authorization: Bearer $DROPBOX_TOKEN" -H "Dropbox-API-Arg: {\"path\": \"/$SDE_TARBALL\"}" > $SDE_TARBALL +set -x +tar xvf $SDE_TARBALL + +make -j2 testsuite-bin +cp $DIST_PATH/testsuite/input.general.fast input.general +cp $DIST_PATH/testsuite/input.operations.fast input.operations + +TMP=`ldd ./test_libblis.x | grep ld | sed 's/^.*=> //'` +LD_SO=${TMP%% *} +TMP=`ldd ./test_libblis.x | grep libc | sed 's/^.*=> //'` +LIBC_SO=${TMP%% *} +TMP=`ldd ./test_libblis.x | grep libm | sed 's/^.*=> //'` +LIBM_SO=${TMP%% *} +for LIB in $LD_SO $LIBC_SO $LIBM_SO; do + $DIST_PATH/travis/patch-ld-so.py $LIB .tmp + chmod a+x .tmp + sudo mv .tmp $LIB +done + +for ARCH in penryn sandybridge haswell skx knl piledriver steamroller excavator zen; do + if [ "$ARCH" = "knl" ]; then + $SDE -knl -- ./test_libblis.x > output.testsuite + else + $SDE -cpuid_in $DIST_PATH/travis/cpuid/$ARCH.def -- ./test_libblis.x > output.testsuite + fi + $DIST_PATH/build/check-blistest.sh ./output.testsuite + TMP=`grep "active sub-configuration" output.testsuite` + CONFIG=${TMP##* } + if [ "$CONFIG" != "$ARCH" ]; then + echo "Wrong configuration chosen:" + echo " Expected: $ARCH" + echo " Got: $CONFIG" + exit 1 + fi +done + diff --git a/travis/do_testsuite.sh b/travis/do_testsuite.sh new file mode 100755 index 000000000..0fa8341ec --- /dev/null +++ b/travis/do_testsuite.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +set -e +set -x + +export BLIS_IC_NT=2 +export BLIS_JC_NT=1 +export BLIS_IR_NT=1 +export BLIS_JR_NT=1 + +make testblis +$DIST_PATH/build/check-blistest.sh ./output.testsuite +make testblas +$DIST_PATH/build/check-blastest.sh + diff --git a/travis/patch-ld-so.py b/travis/patch-ld-so.py new file mode 100755 index 000000000..72e580d74 --- /dev/null +++ b/travis/patch-ld-so.py @@ -0,0 +1,16 @@ +#!/usr/bin/env python + +# +# Patch ld.so to disable runtime CPUID detection +# Taken from https://stackoverflow.com/a/44483482 +# + +import re +import sys + +infile, outfile = sys.argv[1:] +d = open(infile, 'rb').read() +# Match CPUID(eax=0), "xor eax,eax" followed closely by "cpuid" +o = re.sub(b'(\x31\xc0.{0,32})\x0f\xa2', b'\\1\x66\x90', d) +#assert d != o +open(outfile, 'wb').write(o)