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

Reply via email to