Add Intel oneAPI packages (#20411)
This creates a set of packages which all use the same script to install components of Intel oneAPI. This includes: * An inheritable IntelOneApiPackage which knows how to invoke the installation script based on which components are requested * For components which include headers/libraries, an inheritable IntelOneApiLibraryPackage is provided to locate them * Individual packages for DAL, DNN, TBB, etc. * A package for the Intel oneAPI compilers (icx/ifx). This also includes icc/ifortran but these are not currently detected in this PR
This commit is contained in:

committed by
Tamara Dahlgren

parent
1a1babe185
commit
290043b72a
27
var/spack/repos/builtin/packages/intel-oneapi-ccl/package.py
Normal file
27
var/spack/repos/builtin/packages/intel-oneapi-ccl/package.py
Normal file
@@ -0,0 +1,27 @@
|
||||
# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
|
||||
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
|
||||
from spack import *
|
||||
|
||||
releases = {
|
||||
'2021.1.1': {'irc_id': '17391', 'build': '54'}}
|
||||
|
||||
|
||||
class IntelOneapiCcl(IntelOneApiLibraryPackage):
|
||||
"""Intel oneAPI CCL."""
|
||||
|
||||
maintainers = ['rscohn2']
|
||||
|
||||
homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/oneccl.html'
|
||||
|
||||
version('2021.1.1', sha256='de732df57a03763a286106c8b885fd60e83d17906936a8897a384b874e773f49', expand=False)
|
||||
|
||||
def __init__(self, spec):
|
||||
self.component_info(dir_name='ccl',
|
||||
components='intel.oneapi.lin.ccl.devel',
|
||||
releases=releases,
|
||||
url_name='oneapi_ccl')
|
||||
super(IntelOneapiCcl, self).__init__(spec)
|
@@ -0,0 +1,62 @@
|
||||
# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
|
||||
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
import glob
|
||||
import subprocess
|
||||
from os import path
|
||||
|
||||
from spack import *
|
||||
|
||||
|
||||
releases = {'2021.1':
|
||||
{'irc_id': '17427', 'build': '2684'}}
|
||||
|
||||
|
||||
class IntelOneapiCompilers(IntelOneApiPackage):
|
||||
"""Intel oneAPI compilers.
|
||||
|
||||
Contains icc, icpc, icx, icpx, dpcpp, ifort, ifx.
|
||||
|
||||
"""
|
||||
|
||||
maintainers = ['rscohn2']
|
||||
|
||||
homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/dpc-compiler.html'
|
||||
|
||||
version('2021.1', sha256='666b1002de3eab4b6f3770c42bcf708743ac74efeba4c05b0834095ef27a11b9', expand=False)
|
||||
|
||||
depends_on('patchelf', type='build')
|
||||
|
||||
def __init__(self, spec):
|
||||
self.component_info(
|
||||
dir_name='compiler',
|
||||
components=('intel.oneapi.lin.dpcpp-cpp-compiler-pro'
|
||||
':intel.oneapi.lin.ifort-compiler'),
|
||||
releases=releases,
|
||||
url_name='HPCKit')
|
||||
super(IntelOneapiCompilers, self).__init__(spec)
|
||||
|
||||
def install(self, spec, prefix):
|
||||
super(IntelOneapiCompilers, self).install(spec, prefix)
|
||||
# For quick turnaround debugging, copy instead of install
|
||||
# copytree('/opt/intel/oneapi/compiler', path.join(prefix, 'compiler'),
|
||||
# symlinks=True)
|
||||
rpath_dirs = ['lib',
|
||||
'lib/x64',
|
||||
'lib/emu',
|
||||
'lib/oclfpga/host/linux64/lib',
|
||||
'lib/oclfpga/linux64/lib',
|
||||
'compiler/lib/intel64_lin',
|
||||
'compiler/lib']
|
||||
patch_dirs = ['compiler/lib/intel64_lin',
|
||||
'compiler/lib/intel64',
|
||||
'bin']
|
||||
eprefix = path.join(prefix, 'compiler', 'latest', 'linux')
|
||||
rpath = ':'.join([path.join(eprefix, c) for c in rpath_dirs])
|
||||
for pd in patch_dirs:
|
||||
for file in glob.glob(path.join(eprefix, pd, '*')):
|
||||
# Try to patch all files, patchelf will do nothing if
|
||||
# file should not be patched
|
||||
subprocess.call(['patchelf', '--set-rpath', rpath, file])
|
27
var/spack/repos/builtin/packages/intel-oneapi-dal/package.py
Normal file
27
var/spack/repos/builtin/packages/intel-oneapi-dal/package.py
Normal file
@@ -0,0 +1,27 @@
|
||||
# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
|
||||
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
|
||||
from spack import *
|
||||
|
||||
releases = {
|
||||
'2021.1.1': {'irc_id': '17443', 'build': '79'}}
|
||||
|
||||
|
||||
class IntelOneapiDal(IntelOneApiLibraryPackage):
|
||||
"""Intel oneAPI DAL."""
|
||||
|
||||
maintainers = ['rscohn2']
|
||||
|
||||
homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onedal.html'
|
||||
|
||||
version('2021.1.1', sha256='6e0e24bba462e80f0fba5a46e95cf0cca6cf17948a7753f8e396ddedd637544e', expand=False)
|
||||
|
||||
def __init__(self, spec):
|
||||
self.component_info(dir_name='dal',
|
||||
components='intel.oneapi.lin.dal.devel',
|
||||
releases=releases,
|
||||
url_name='daal_oneapi')
|
||||
super(IntelOneapiDal, self).__init__(spec)
|
27
var/spack/repos/builtin/packages/intel-oneapi-dnn/package.py
Normal file
27
var/spack/repos/builtin/packages/intel-oneapi-dnn/package.py
Normal file
@@ -0,0 +1,27 @@
|
||||
# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
|
||||
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
|
||||
from spack import *
|
||||
|
||||
releases = {
|
||||
'2021.1.1': {'irc_id': '17385', 'build': '55'}}
|
||||
|
||||
|
||||
class IntelOneapiDnn(IntelOneApiLibraryPackage):
|
||||
"""Intel oneAPI DNN."""
|
||||
|
||||
maintainers = ['rscohn2']
|
||||
|
||||
homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onednn.html'
|
||||
|
||||
version('2021.1.1', sha256='24002c57bb8931a74057a471a5859d275516c331fd8420bee4cae90989e77dc3', expand=False)
|
||||
|
||||
def __init__(self, spec):
|
||||
self.component_info(dir_name='dnn',
|
||||
components='intel.oneapi.lin.dnnl.devel',
|
||||
releases=releases,
|
||||
url_name='onednn')
|
||||
super(IntelOneapiDnn, self).__init__(spec)
|
27
var/spack/repos/builtin/packages/intel-oneapi-ipp/package.py
Normal file
27
var/spack/repos/builtin/packages/intel-oneapi-ipp/package.py
Normal file
@@ -0,0 +1,27 @@
|
||||
# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
|
||||
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
|
||||
from spack import *
|
||||
|
||||
releases = {
|
||||
'2021.1.1': {'irc_id': '17436', 'build': '47'}}
|
||||
|
||||
|
||||
class IntelOneapiIpp(IntelOneApiLibraryPackage):
|
||||
"""Intel oneAPI IPP."""
|
||||
|
||||
maintainers = ['rscohn2']
|
||||
|
||||
homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/ipp.html'
|
||||
|
||||
version('2021.1.1', sha256='2656a3a7f1f9f1438cbdf98fd472a213c452754ef9476dd65190a7d46618ba86', expand=False)
|
||||
|
||||
def __init__(self, spec):
|
||||
self.component_info(dir_name='ipp',
|
||||
components='intel.oneapi.lin.ipp.devel',
|
||||
releases=releases,
|
||||
url_name='ipp_oneapi')
|
||||
super(IntelOneapiIpp, self).__init__(spec)
|
@@ -0,0 +1,27 @@
|
||||
# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
|
||||
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
|
||||
from spack import *
|
||||
|
||||
releases = {
|
||||
'2021.1.1': {'irc_id': '17415', 'build': '54'}}
|
||||
|
||||
|
||||
class IntelOneapiIppcp(IntelOneApiLibraryPackage):
|
||||
"""Intel oneAPI IPP Crypto."""
|
||||
|
||||
maintainers = ['rscohn2']
|
||||
|
||||
homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/ipp.html'
|
||||
|
||||
version('2021.1.1', sha256='c0967afae22c7a223ec42542bcc702121064cd3d8f680eff36169c94f964a936', expand=False)
|
||||
|
||||
def __init__(self, spec):
|
||||
self.component_info(dir_name='ippcp',
|
||||
components='intel.oneapi.lin.ippcp.devel',
|
||||
releases=releases,
|
||||
url_name='ippcp_oneapi')
|
||||
super(IntelOneapiIppcp, self).__init__(spec)
|
27
var/spack/repos/builtin/packages/intel-oneapi-mkl/package.py
Normal file
27
var/spack/repos/builtin/packages/intel-oneapi-mkl/package.py
Normal file
@@ -0,0 +1,27 @@
|
||||
# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
|
||||
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
|
||||
from spack import *
|
||||
|
||||
releases = {
|
||||
'2021.1.1': {'irc_id': '17402', 'build': '52'}}
|
||||
|
||||
|
||||
class IntelOneapiMkl(IntelOneApiLibraryPackage):
|
||||
"""Intel oneAPI MKL."""
|
||||
|
||||
maintainers = ['rscohn2']
|
||||
|
||||
homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onemkl.html'
|
||||
|
||||
version('2021.1.1', sha256='818b6bd9a6c116f4578cda3151da0612ec9c3ce8b2c8a64730d625ce5b13cc0c', expand=False)
|
||||
|
||||
def __init__(self, spec):
|
||||
self.component_info(dir_name='mkl',
|
||||
components='intel.oneapi.lin.mkl.devel',
|
||||
releases=releases,
|
||||
url_name='onemkl')
|
||||
super(IntelOneapiMkl, self).__init__(spec)
|
27
var/spack/repos/builtin/packages/intel-oneapi-mpi/package.py
Normal file
27
var/spack/repos/builtin/packages/intel-oneapi-mpi/package.py
Normal file
@@ -0,0 +1,27 @@
|
||||
# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
|
||||
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
|
||||
from spack import *
|
||||
|
||||
releases = {
|
||||
'2021.1.1': {'irc_id': '17397', 'build': '76'}}
|
||||
|
||||
|
||||
class IntelOneapiMpi(IntelOneApiLibraryPackage):
|
||||
"""Intel oneAPI MPI."""
|
||||
|
||||
maintainers = ['rscohn2']
|
||||
|
||||
homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/mpi-library.html'
|
||||
|
||||
version('2021.1.1', sha256='8b7693a156c6fc6269637bef586a8fd3ea6610cac2aae4e7f48c1fbb601625fe', expand=False)
|
||||
|
||||
def __init__(self, spec):
|
||||
self.component_info(dir_name='mpi',
|
||||
components='intel.oneapi.lin.mpi.devel',
|
||||
releases=releases,
|
||||
url_name='mpi_oneapi')
|
||||
super(IntelOneapiMpi, self).__init__(spec)
|
27
var/spack/repos/builtin/packages/intel-oneapi-tbb/package.py
Normal file
27
var/spack/repos/builtin/packages/intel-oneapi-tbb/package.py
Normal file
@@ -0,0 +1,27 @@
|
||||
# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
|
||||
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
|
||||
from spack import *
|
||||
|
||||
releases = {
|
||||
'2021.1.1': {'irc_id': '17378', 'build': '119'}}
|
||||
|
||||
|
||||
class IntelOneapiTbb(IntelOneApiLibraryPackage):
|
||||
"""Intel oneAPI TBB."""
|
||||
|
||||
maintainers = ['rscohn2']
|
||||
|
||||
homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onetbb.html'
|
||||
|
||||
version('2021.1.1', sha256='535290e3910a9d906a730b24af212afa231523cf13a668d480bade5f2a01b53b', expand=False)
|
||||
|
||||
def __init__(self, spec):
|
||||
self.component_info(dir_name='tbb',
|
||||
components='intel.oneapi.lin.tbb.devel',
|
||||
releases=releases,
|
||||
url_name='tbb_oneapi')
|
||||
super(IntelOneapiTbb, self).__init__(spec)
|
27
var/spack/repos/builtin/packages/intel-oneapi-vpl/package.py
Normal file
27
var/spack/repos/builtin/packages/intel-oneapi-vpl/package.py
Normal file
@@ -0,0 +1,27 @@
|
||||
# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
|
||||
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
|
||||
from spack import *
|
||||
|
||||
releases = {
|
||||
'2021.1.1': {'irc_id': '17418', 'build': '66'}}
|
||||
|
||||
|
||||
class IntelOneapiVpl(IntelOneApiLibraryPackage):
|
||||
"""Intel oneAPI VPL."""
|
||||
|
||||
maintainers = ['rscohn2']
|
||||
|
||||
homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onevpl.html'
|
||||
|
||||
version('2021.1.1', sha256='0fec42545b30b7bb2e4e33deb12ab27a02900f5703153d9601673a8ce43082ed', expand=False)
|
||||
|
||||
def __init__(self, spec):
|
||||
self.component_info(dir_name='vpl',
|
||||
components='intel.oneapi.lin.vpl.devel',
|
||||
releases=releases,
|
||||
url_name='oneVPL')
|
||||
super(IntelOneapiVpl, self).__init__(spec)
|
Reference in New Issue
Block a user