scipy: BUG: Build fails with latest intel oneapi
Describe your issue.
I am trying to build scipy in a singularity image based on the latest intel oneapi release, but the compilation fails
Reproducing Code Example
#Complete singularity script to be executed with sudo singularity build image.sif [content_in_file].def
Bootstrap: docker
From: ubuntu:focal
%setup
mkdir -p /root/.ssh/
%files
/home/$USER/.ssh/id_rsa /root/.ssh/id_rsa
/home/$USER/.ssh/known_hosts /root/.ssh/known_hosts
%environment
export LC_ALL=C
%post
cd /root
chmod 600 .ssh/id_rsa
export DEBIAN_FRONTEND=noninteractive
apt-get -y update
apt-get -y install wget libssl-dev make cmake gcc git vim libeigen3-dev python3-pip libboost-all-dev libhdf5-dev libxml2-dev libpciaccess-dev python3-pybind11 software-properties-common
apt-get -y update
pip3 install --upgrade pip
wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB -O - | apt-key add -
echo "deb https://apt.repos.intel.com/oneapi all main" | tee /etc/apt/sources.list.d/oneAPI.list
add-apt-repository "deb https://apt.repos.intel.com/oneapi all main"
apt-get -y update
apt-get -y install intel-hpckit
export CC=/opt/intel/oneapi/compiler/2021.4.0/linux/bin/intel64/icc
export CXX=/opt/intel/oneapi/compiler/2021.4.0/linux/bin/intel64/icpc
export FC=/opt/intel/oneapi/compiler/2021.4.0/linux/bin/intel64/ifort
export F77=/opt/intel/oneapi/compiler/2021.4.0/linux/bin/intel64/ifort
export F90=/opt/intel/oneapi/compiler/2021.4.0/linux/bin/intel64/ifort
export MKLROOT=/opt/intel/oneapi/mkl/2021.4.0
export TBBROOT=/opt/intel/oneapi/tbb/2021.4.0/env/..
export CPLUS_INCLUDE_PATH=/opt/intel/oneapi/clck/2021.4.0/include
export INFOPATH=/opt/intel/oneapi/debugger/10.2.4/gdb/intel64/lib:$INFOPATH
export LIBRARY_PATH=/opt/intel/oneapi/vpl/2021.6.0/lib:/opt/intel/oneapi/tbb/2021.4.0/env/../lib/intel64/gcc4.8:/opt/intel/oneapi/mpi/2021.4.0//libfabric/lib:/opt/intel/oneapi/mpi/2021.4.0//lib/release:/opt/intel/oneapi/mpi/2021.4.0//lib:/opt/intel/oneapi/mkl/2021.4.0/lib/intel64:/opt/intel/oneapi/ipp/2021.4.0/lib/intel64:/opt/intel/oneapi/ippcp/2021.4.0/lib/intel64:/opt/intel/oneapi/ipp/2021.4.0/lib/intel64:/opt/intel/oneapi/dnnl/2021.4.0/cpu_dpcpp_gpu_dpcpp/lib:/opt/intel/oneapi/dal/2021.4.0/lib/intel64:/opt/intel/oneapi/compiler/2021.4.0/linux/compiler/lib/intel64_lin:/opt/intel/oneapi/compiler/2021.4.0/linux/lib:/opt/intel/oneapi/clck/2021.4.0/lib/intel64:/opt/intel/oneapi/ccl/2021.4.0/lib/cpu_gpu_dpcpp:$LIBRARY_PATH
export LD_LIBRARY_PATH=/opt/intel/oneapi/vpl/2021.6.0/lib:/opt/intel/oneapi/tbb/2021.4.0/env/../lib/intel64/gcc4.8:/opt/intel/oneapi/mpi/2021.4.0//libfabric/lib:/opt/intel/oneapi/mpi/2021.4.0//lib/release:/opt/intel/oneapi/mpi/2021.4.0//lib:/opt/intel/oneapi/mkl/2021.4.0/lib/intel64:/opt/intel/oneapi/itac/2021.4.0/slib:/opt/intel/oneapi/ipp/2021.4.0/lib/intel64:/opt/intel/oneapi/ippcp/2021.4.0/lib/intel64:/opt/intel/oneapi/ipp/2021.4.0/lib/intel64:/opt/intel/oneapi/dnnl/2021.4.0/cpu_dpcpp_gpu_dpcpp/lib:/opt/intel/oneapi/debugger/10.2.4/gdb/intel64/lib:/opt/intel/oneapi/debugger/10.2.4/libipt/intel64/lib:/opt/intel/oneapi/debugger/10.2.4/dep/lib:/opt/intel/oneapi/dal/2021.4.0/lib/intel64:/opt/intel/oneapi/compiler/2021.4.0/linux/lib:/opt/intel/oneapi/compiler/2021.4.0/linux/lib/x64:/opt/intel/oneapi/compiler/2021.4.0/linux/lib/emu:/opt/intel/oneapi/compiler/2021.4.0/linux/lib/oclfpga/host/linux64/lib:/opt/intel/oneapi/compiler/2021.4.0/linux/lib/oclfpga/linux64/lib:/opt/intel/oneapi/compiler/2021.4.0/linux/compiler/lib/intel64_lin:/opt/intel/oneapi/ccl/2021.4.0/lib/cpu_gpu_dpcpp:$LD_LIBRARY_PATH
export PATH=/opt/intel/oneapi/vtune/2021.7.1/bin64:/opt/intel/oneapi/vpl/2021.6.0/bin:/opt/intel/oneapi/mpi/2021.4.0//libfabric/bin:/opt/intel/oneapi/mpi/2021.4.0//bin:/opt/intel/oneapi/mkl/2021.4.0/bin/intel64:/opt/intel/oneapi/itac/2021.4.0/bin:/opt/intel/oneapi/intelpython/latest/bin:/opt/intel/oneapi/intelpython/latest/condabin:/opt/intel/oneapi/inspector/2021.4.0/bin64:/opt/intel/oneapi/dpcpp-ct/2021.4.0/bin:/opt/intel/oneapi/dev-utilities/2021.4.0/bin:/opt/intel/oneapi/debugger/10.2.4/gdb/intel64/bin:/opt/intel/oneapi/compiler/2021.4.0/linux/lib/oclfpga/llvm/aocl-bin:/opt/intel/oneapi/compiler/2021.4.0/linux/lib/oclfpga/bin:/opt/intel/oneapi/compiler/2021.4.0/linux/bin/intel64:/opt/intel/oneapi/compiler/2021.4.0/linux/bin:/opt/intel/oneapi/clck/2021.4.0/bin/intel64:/opt/intel/oneapi/advisor/2021.4.0/bin64:/home/cds/tweymuth/bin:/home/cds/tweymuth/bin:/data/soft/centos7/latex/texlive/2016/bin/x86_64-linux:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/data/soft/centos7/utils/print:/data/soft/centos7/utils/nodeload:$PATH
export GDB_INFO=/opt/intel/oneapi/debugger/10.2.4/documentation/info/:$GDB_INFO
export CMAKE_PREFIX_PATH=/opt/intel/oneapi/vpl/2021.6.0:/opt/intel/oneapi/tbb/2021.4.0/env/..:/opt/intel/oneapi/dal/2021.4.0:$CMAKE_PREFIX_PATH
export CONDA_SHLVL=1
export CONDA_PYTHON_EXE=/opt/intel/oneapi/intelpython/latest/bin/python
export PYTHONPATH=/opt/intel/oneapi/advisor/2021.4.0/pythonapi:$PYTHONPATH
export CONDA_DEFAULT_ENV=intelpython-python3.7
export INTEL_PYTHONHOME=/opt/intel/oneapi/debugger/10.2.4/dep
export CONDA_EXE=/opt/intel/oneapi/intelpython/latest/bin/conda
export CONDA_PREFIX=/opt/intel/oneapi/intelpython/latest
export VT_MPI=impi4
export IPPROOT=/opt/intel/oneapi/ipp/2021.4.0
export INTEL_LICENSE_FILE=/opt/intel/oneapi/clck/2021.4.0/licensing
export CLCK_ROOT=/opt/intel/oneapi/clck/2021.4.0
export OCL_ICD_FILENAMES=libintelocl_emu.so:libalteracl.so:/opt/intel/oneapi/compiler/2021.4.0/linux/lib/x64/libintelocl.so
export CCL_CONFIGURATION=cpu_gpu_dpcpp
export IPPCRYPTOROOT=/opt/intel/oneapi/ippcp/2021.4.0
export FPGA_VARS_DIR=/opt/intel/oneapi/compiler/2021.4.0/linux/lib/oclfpga
export FI_PROVIDER_PATH=/opt/intel/oneapi/mpi/2021.4.0//libfabric/lib/prov:/usr/lib64/libfabric
export CMPLR_ROOT=/opt/intel/oneapi/compiler/2021.4.0
export CPATH=/opt/intel/oneapi/vpl/2021.6.0/include:/opt/intel/oneapi/tbb/2021.4.0/env/../include:/opt/intel/oneapi/mpi/2021.4.0//include:/opt/intel/oneapi/mkl/2021.4.0/include:/opt/intel/oneapi/ipp/2021.4.0/include:/opt/intel/oneapi/ippcp/2021.4.0/include:/opt/intel/oneapi/ipp/2021.4.0/include:/opt/intel/oneapi/dpl/2021.5.0/linux/include:/opt/intel/oneapi/dpcpp-ct/2021.4.0/include:/opt/intel/oneapi/dnnl/2021.4.0/cpu_dpcpp_gpu_dpcpp/lib:/opt/intel/oneapi/dev-utilities/2021.4.0/include:/opt/intel/oneapi/dal/2021.4.0/include:/opt/intel/oneapi/compiler/2021.4.0/linux/include:/opt/intel/oneapi/ccl/2021.4.0/include/cpu_gpu_dpcpp:$CPATH
export DPL_ROOT=/opt/intel/oneapi/dpl/2021.5.0
export INTELFPGAOCLSDKROOT=/opt/intel/oneapi/compiler/2021.4.0/linux/lib/oclfpga
export IPPCP_TARGET_ARCH=intel64
export SETVARS_COMPLETED=1
export NLSPATH=/opt/intel/oneapi/mkl/2021.4.0/lib/intel64/locale/%l_%t/%N
export VT_ADD_LIBS="-ldwarf -lelf -lvtunwind -lm -lpthread"
export DPCT_BUNDLE_ROOT=/opt/intel/oneapi/dpcpp-ct/2021.4.0
export DNNLROOT=/opt/intel/oneapi/dnnl/2021.4.0/cpu_dpcpp_gpu_dpcpp
export VT_LIB_DIR=/opt/intel/oneapi/itac/2021.4.0/lib
export INSPECTOR_2021_DIR=/opt/intel/oneapi/inspector/2021.4.0
export DAALROOT=/opt/intel/oneapi/dal/2021.4.0
export DALROOT=/opt/intel/oneapi/dal/2021.4.0
export DAL_MAJOR_BINARY=1
export DAL_MINOR_BINARY=1
export VT_ROOT=/opt/intel/oneapi/itac/2021.4.0
export IPP_TARGET_ARCH=intel64
export CCL_ROOT=/opt/intel/oneapi/ccl/2021.4.0
export VT_SLIB_DIR=/opt/intel/oneapi/itac/2021.4.0/slib
export VTUNE_PROFILER_2021_DIR=/opt/intel/oneapi/vtune/2021.7.1
export ACL_BOARD_VENDOR_PATH=/opt/Intel/OpenCLFPGA/oneAPI/Boards
export APM=/opt/intel/oneapi/advisor/2021.4.0/perfmodels
export CLASSPATH=/opt/intel/oneapi/mpi/2021.4.0//lib/mpi.jar:/opt/intel/oneapi/dal/2021.4.0/lib/onedal.jar:$CLASSPATH
export PKG_CONFIG_PATH=/opt/intel/oneapi/vtune/2021.7.1/include/pkgconfig/lib64:/opt/intel/oneapi/vpl/2021.6.0/lib/pkgconfig:/opt/intel/oneapi/tbb/2021.4.0/env/../lib/pkgconfig:/opt/intel/oneapi/mpi/2021.4.0/lib/pkgconfig:/opt/intel/oneapi/mkl/2021.4.0/lib/pkgconfig:/opt/intel/oneapi/ippcp/2021.4.0/lib/pkgconfig:/opt/intel/oneapi/inspector/2021.4.0/include/pkgconfig/lib64:/opt/intel/oneapi/dpl/2021.5.0/lib/pkgconfig:/opt/intel/oneapi/dal/2021.4.0/lib/pkgconfig:/opt/intel/oneapi/compiler/2021.4.0/lib/pkgconfig:/opt/intel/oneapi/ccl/2021.4.0/lib/pkgconfig:/opt/intel/oneapi/advisor/2021.4.0/include/pkgconfig/lib64:$PKG_CONFIG_PATH
export ADVISOR_2021_DIR=/opt/intel/oneapi/advisor/2021.4.0
export SETVARS_VARS_PATH=/opt/intel/oneapi/vtune/latest/env/vars.sh
export ONEAPI_ROOT=/opt/intel/oneapi
export I_MPI_ROOT=/opt/intel/oneapi/mpi/2021.4.0
ln -r -s /opt/intel/oneapi/mkl/2021.4.0/lib/intel64/libmkl_avx2.so.1 /opt/intel/oneapi/mkl/2021.4.0/lib/intel64/libmkl_avx2.so
ln -r -s /opt/intel/oneapi/mkl/2021.4.0/lib/intel64/libmkl_vml_avx2.so.1 /opt/intel/oneapi/mkl/2021.4.0/lib/intel64/libmkl_vml_avx2.so
echo 'export LD_LIBRARY_PATH=/opt/intel/oneapi/mkl/2021.4.0/lib/intel64:$LD_LIBRARY_PATH' >>$SINGULARITY_ENVIRONMENT
echo 'export MKLROOT=/opt/intel/oneapi/mkl/2021.4.0' >>$SINGULARITY_ENVIRONMENT
pip3 install pybind11
pip3 install Cython pythran
# Install numpy
git clone https://github.com/numpy/numpy.git numpy
cd numpy
git checkout v1.21.2
cp site.cfg.example site.cfg
echo "\n[mkl]" >> site.cfg
echo "include_dirs = /opt/intel/oneapi/mkl/2021.4.0/lib/intel64/" >> site.cfg
echo "library_dirs = /opt/intel/oneapi/mkl/2021.4.0/lib/intel64/" >> site.cfg
echo "mkl_libs = mkl_rt" >> site.cfg
echo "lapack_libs =" >> site.cfg
python3 setup.py build --fcompiler=intelem --compiler=intelem
python3 setup.py install
cd ..
rm -rf numpy
# Install scipy
git clone https://github.com/scipy/scipy.git scipy
cd scipy
git checkout v1.7.1
git submodule update --init
# next line fails
python3 setup.py build --fcompiler=intelem --compiler=intelem
python3 setup.py install
cd ..
rm -rf scipy
# but simply the last code block also fails for my normal centos7 system with the intel compiler set-up with the identical error
git clone https://github.com/scipy/scipy.git scipy
cd scipy
git checkout v1.7.1
git submodule update --init
# next line fails
python3 setup.py build --fcompiler=intelem --compiler=intelem
Error message
/opt/intel/oneapi/intelpython/latest/lib/python3.7/site-packages/pythran/pythonic/include/types/numpy_gexpr.hpp(331): internal error: assertion failed at: "expr.c", line 9750 in symbol_for_template_param_unknown_entity_rescan
std::get<0>(t1) * std::get<0>(t0).step + std::get<0>(t0).lower,
^
compilation aborted for scipy/interpolate/_rbfinterp_pythran.cpp (code 4)
error: Command "icc -m64 -fPIC -fp-model strict -O3 -fomit-frame-pointer -xSSE4.2 -axCORE-AVX2,COMMON-AVX512 -DENABLE_PYTHON_MODULE -D__PYTHRAN__=3 -DPYTHRAN_BLAS_NONE -I/opt/intel/oneapi/intelpython/latest/lib/python3.7/site-packages/pythran -I/opt/intel/oneapi/intelpython/latest/lib/python3.7/site-packages/numpy/core/include -I/opt/intel/oneapi/intelpython/latest/lib/python3.7/site-packages/numpy/core/include -Ibuild/src.linux-x86_64-3.7/numpy/distutils/include -I/opt/intel/oneapi/intelpython/latest/include/python3.7m -c scipy/interpolate/_rbfinterp_pythran.cpp -o build/temp.linux-x86_64-3.7/scipy/interpolate/_rbfinterp_pythran.o -MMD -MF build/temp.linux-x86_64-3.7/scipy/interpolate/_rbfinterp_pythran.o.d -std=c++11 -fno-math-errno -fvisibility=hidden -fno-wrapv -Wno-unused-function -Wno-int-in-bool-context -Wno-unknown-warning-option -msse -msse2 -msse3" failed with exit status 4
SciPy/NumPy/Python version information
1.3.2 1.17.4 sys.version_info(major=3, minor=7, micro=6, releaselevel=‘final’, serial=0)
About this issue
- Original URL
- State: closed
- Created 3 years ago
- Comments: 18 (12 by maintainers)
Commits related to this issue
- ICC compatibility Setup github action to do basic compatibility check with Intel C++ Compiler. As the compiler is still not able to decently compile C++11 code, modify some C++ source to cope with t... — committed to serge-sans-paille/pythran by serge-sans-paille 2 years ago
- ICC compatibility Setup github action to do basic compatibility check with Intel C++ Compiler. As the compiler is still not able to decently compile C++11 code, modify some C++ source to cope with t... — committed to serge-sans-paille/pythran by serge-sans-paille 2 years ago
- py-scipy: apply https://github.com/scipy/scipy/issues/14935 workaround — committed to climbfuji/spack by climbfuji 2 years ago
- py-scipy: re-apply scipy/scipy#14935 workaround (#39555) * re-apply scipy/scipy#14935 workaround * restrict to %intel and eliminate Version() check --------- Co-authored-by: Daryl W. Grunau ... — committed to spack/spack by DarylGrunau 10 months ago
- py-scipy: re-apply scipy/scipy#14935 workaround (#39555) * re-apply scipy/scipy#14935 workaround * restrict to %intel and eliminate Version() check --------- Co-authored-by: Daryl W. Grunau ... — committed to mpokorny/spack by DarylGrunau 10 months ago
- py-scipy: re-apply scipy/scipy#14935 workaround (#39555) * re-apply scipy/scipy#14935 workaround * restrict to %intel and eliminate Version() check --------- Co-authored-by: Daryl W. Grunau ... — committed to hpcgroup/spack by DarylGrunau 10 months ago
I tested this by installing scipy (v1.8.1) on top of pythran commit https://github.com/serge-sans-paille/pythran/commit/eb52ee93cb78d2afba50cc9418ac6bf9567fb958 without using export SCIPY_USE_PYTHRAN=0 first, using the latest (classic) Intel compilers 2022.1, and that worked without trouble.