Hi Simon,
On 5/28/21 2:50 PM, Simon Branford wrote:
OpenBLAS recently added IceLake detection:
https://github.com/xianyi/OpenBLAS/pull/3233
Thanks a lot for the info! It seems that Ice Lake gets detected as
CPUTYPE_SKYLAKEX?
This has been patched in EasyBuild for OpenBLAS 0.3.12 and 0.3.15:
https://github.com/easybuilders/easybuild-easyconfigs/pull/12865
Unfortunately this PR fails on my Ice Lake server (running AlmaLinux 8.4):
$ eb --from-pr=12865
== Temporary log file in case of crash /tmp/eb-jcym6or4/easybuild-vjctr76k.log
== found valid index for
/home/modules/software/EasyBuild/4.3.4/easybuild/easyconfigs, so using it...
== found valid index for
/home/modules/software/EasyBuild/4.3.4/easybuild/easyconfigs, so using it...
== processing EasyBuild easyconfig
/tmp/eb-jcym6or4/files_pr12865/o/OpenBLAS/OpenBLAS-0.3.12-GCC-10.2.0.eb
== building and installing OpenBLAS/0.3.12-GCC-10.2.0...
== fetching files...
== creating build dir, resetting environment...
== unpacking...
== patching...
== preparing...
== configuring...
== building...
== FAILED: Installation ended unsuccessfully (build directory:
/dev/shm/OpenBLAS/0.3.12/GCC-10.2.0): build failed (first 300 chars): cmd
" make -j 48 libs netlib shared BINARY='64' CC='gcc' FC='gfortran'
MAKE_NB_JOBS='-1' USE_OPENMP='1' USE_THREAD='1' CFLAGS='-O2
-ftree-vectorize -march=native -fno-math-errno' " exited with exit code 2
and output:
<command-line>: warning: ISO C99 requires whitespace after the macro name
ge (took 1 sec)
== Results of the build can be found in the log file(s)
/tmp/eb-jcym6or4/easybuild-OpenBLAS-0.3.12-20210528.152213.BZayz.log
ERROR: Build of
/tmp/eb-jcym6or4/files_pr12865/o/OpenBLAS/OpenBLAS-0.3.12-GCC-10.2.0.eb
failed (err: 'build failed (first 300 chars): cmd " make -j 48 libs netlib
shared BINARY=\'64\' CC=\'gcc\' FC=\'gfortran\' MAKE_NB_JOBS=\'-1\'
USE_OPENMP=\'1\' USE_THREAD=\'1\' CFLAGS=\'-O2 -ftree-vectorize
-march=native -fno-math-errno\' " exited with exit code 2 and
output:\n<command-line>: warning: ISO C99 requires whitespace after the
macro name\nge')
Does anyone have an idea about how to fix this?
Thanks,
Ole
-----Original Message-----
From: [email protected] <[email protected]> On
Behalf Of [email protected]
Sent: 28 May 2021 13:40
To: [email protected]
Subject: [easybuild] Build fails for OpenBLAS-0.3.12-GCC-10.2.0.eb on Intel Ice
Lake processors
Hi,
I'm building our software stack on a new Intel Ice Lake server (Xeon Gold
6342 CPU @ 2.80GHz 24 cores dual-socket) running AlmaLinux 8.4 (RHEL 8.4
clone). So this is bleeding-edge CPU and OS :-)
The OpenBLAS-0.3.12-GCC-10.2.0.eb build fails:
$ eb OpenBLAS-0.3.12-GCC-10.2.0.eb
== Temporary log file in case of crash /tmp/eb-2c6j9qyj/easybuild-qhl_uje4.log
== found valid index for
/home/modules/software/EasyBuild/4.3.4/easybuild/easyconfigs, so using it...
== found valid index for
/home/modules/software/EasyBuild/4.3.4/easybuild/easyconfigs, so using it...
== processing EasyBuild easyconfig
/home/modules/software/EasyBuild/4.3.4/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.12-GCC-10.2.0.eb
== building and installing OpenBLAS/0.3.12-GCC-10.2.0...
== fetching files...
== creating build dir, resetting environment...
== unpacking...
== patching...
== preparing...
== configuring...
== building...
== FAILED: Installation ended unsuccessfully (build directory:
/dev/shm/OpenBLAS/0.3.12/GCC-10.2.0): build failed (first 300 chars): cmd "
make -j 48 libs netlib shared BINARY='64' CC='gcc' FC='gfortran'
MAKE_NB_JOBS='-1' USE_OPENMP='1' USE_THREAD='1' CFLAGS='-O2 -ftree-vectorize
-march=native -fno-math-errno' " exited with exit code 2 and output:
getarch_2nd.c: In function main:
getarch_2nd.c:14:35: error: SGEMM_DEFAULT_U (took 1 sec) == Results of the
build can be found in the log file(s)
/tmp/eb-2c6j9qyj/easybuild-OpenBLAS-0.3.12-20210528.142832.FCqTY.log
ERROR: Build of
/home/modules/software/EasyBuild/4.3.4/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.12-GCC-10.2.0.eb
failed (err: 'build failed (first 300 chars): cmd " make -j 48 libs netlib
shared BINARY=\'64\' CC=\'gcc\' FC=\'gfortran\' MAKE_NB_JOBS=\'-1\'
USE_OPENMP=\'1\' USE_THREAD=\'1\' CFLAGS=\'-O2 -ftree-vectorize -march=native
-fno-math-errno\' " exited with exit code 2 and
output:\ngetarch_2nd.c: In function main:\ngetarch_2nd.c:14:35: error:
SGEMM_DEFAULT_U')
The EB log file ends with:
make: *** [Makefile.prebuild:70: getarch_2nd] Error 1
Makefile:154: *** OpenBLAS: Detecting CPU failed. Please set TARGET explicitly,
e.g. make TARGET=your_cpu_target. Please read README for the detail.. Stop.
(at easybuild/tools/run.py:537 in parse_cmd_output) == 2021-05-28
14:28:34,190 filetools.py:1810 INFO Removing lock
/home/modules/software/.locks/_home_modules_software_OpenBLAS_0.3.12-GCC-10.2.0.lock...
== 2021-05-28 14:28:34,191 filetools.py:347 INFO Path
/home/modules/software/.locks/_home_modules_software_OpenBLAS_0.3.12-GCC-10.2.0.lock
successfully removed.
== 2021-05-28 14:28:34,191 filetools.py:1814 INFO Lock removed:
/home/modules/software/.locks/_home_modules_software_OpenBLAS_0.3.12-GCC-10.2.0.lock
== 2021-05-28 14:28:34,191 easyblock.py:3414 WARNING build failed (first
300 chars): cmd " make -j 48 libs netlib shared BINARY='64' CC='gcc'
FC='gfortran' MAKE_NB_JOBS='-1' USE_OPENMP='1' USE_THREAD='1'
CFLAGS='-O2 -ftree-vectorize -march=native -fno-math-errno' " exited with exit
code 2 and output:
getarch_2nd.c: In function main:
getarch_2nd.c:14:35: error: SGEMM_DEFAULT_U == 2021-05-28 14:28:34,192
easyblock.py:298 INFO Closing log for application name OpenBLAS version 0.3.12
Question: How can I tell OpenBLAS that we have an Intel Ice Lake CPU?
It seems that OpenBLAS doesn't know about Ice Lake nor Cascade Lake :-(
https://github.com/xianyi/OpenBLAS/blob/develop/TargetList.txt