level-zero: add new package (#30253)

Co-authored-by: Robert Cohn <rscohn2@gmail.com>
Co-authored-by: Robert Cohn <robert.s.cohn@intel.com>
Co-authored-by: John Mellor-Crummey <johnmc@rice.edu>
This commit is contained in:
Ken Raffenetti 2022-05-06 09:12:23 -05:00 committed by GitHub
parent ad1391db75
commit 17c32811fb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 43 additions and 2 deletions

View File

@ -64,6 +64,9 @@ class Hpctoolkit(AutotoolsPackage):
description='Needed when MPICXX builds static binaries '
'for the compute nodes.')
variant('level_zero', default=False,
description='Support Level Zero on Intel GPUs (2022.04.15 or later).')
variant('cuda', default=False,
description='Support CUDA on NVIDIA GPUs (2020.03.01 or later).')
@ -102,6 +105,7 @@ class Hpctoolkit(AutotoolsPackage):
depends_on('zlib+shared')
depends_on('cuda', when='+cuda')
depends_on('oneapi-level-zero', when='+level_zero')
depends_on('intel-xed', when='target=x86_64:')
depends_on('memkind', type=('build', 'run'), when='@2021.05.01:')
depends_on('papi', when='+papi')
@ -167,6 +171,9 @@ def configure_args(self):
if '+cuda' in spec:
args.append('--with-cuda=%s' % spec['cuda'].prefix)
if '+level_zero' in spec:
args.append('--with-level0=%s' % spec['oneapi-level-zero'].prefix)
if spec.satisfies('@:2020.09'):
args.append('--with-gotcha=%s' % spec['gotcha'].prefix)

View File

@ -0,0 +1,33 @@
# Copyright 2013-2022 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 *
class OneapiLevelZero(CMakePackage):
"""oneAPI Level Zero Loader.
Applications that need low-level control of a oneAPI level zero
device link against the loader. The loader depends on a separately
installed level zero driver. See
https://dgpu-docs.intel.com/technologies/level-zero.html for
information on how to install the driver.
"""
homepage = "https://dgpu-docs.intel.com/technologies/level-zero.html"
url = "https://github.com/oneapi-src/level-zero/archive/refs/tags/v1.7.15.tar.gz"
maintainers = ['rscohn2']
version('1.7.15', sha256='c39bb05a8e5898aa6c444e1704105b93d3f1888b9c333f8e7e73825ffbfb2617')
version('1.7.9', sha256='b430a7f833a689c899b32172a31c3bca1d16adcad8ff866f240a3a8968433de7')
version('1.7.4', sha256='23a3f393f6e8f7ed694e0d3248d1ac1b92f2b6964cdb4d747abc23328050513b')
version('1.6.2', sha256='ef124adc7a011b672e661fbe38873d7db6546c068a4a03610fdc5118b6b6cbf7')
version('1.5.4', sha256='0332215bd00f49e3cc75cf0cfb0111b5e8b7f41046f0b85e29725f00c26bf750')
version('1.5', sha256='f93523b412522713bb28d54e2326cac0c342a0cd2662f524c17a65887cf868e8')
version('1.4.1', sha256='2878fa29cbf5cea677a00f6dde6eb42d147c98c8d2a99fefece284d85cd1476b')
version('1.3.7', sha256='e84c7f36316257eb46f74b41aef5c37fb593a8821497e45dfeda81aceba0abbc')
version('1.3.6', sha256='c2b3bd6e4ee3cc874bdcc32bc8705bd217ffc46b194c77e27b23b8391c0c9704')
version('1.2.3', sha256='69689429fcdaef74fa8395785aca65f5652e410bd6c56f47b2b64692c098892b')

View File

@ -116,7 +116,8 @@ class Tau(Package):
depends_on('rocprofiler-dev', when='+rocprofiler')
depends_on('roctracer-dev', when='+roctracer')
depends_on('hsa-rocr-dev', when='+rocm')
depends_on('java', type='run') # for paraprof
depends_on('java', type='run') # for paraprof
depends_on('oneapi-level-zero', when='+level_zero')
# Elf only required from 2.28.1 on
conflicts('+elf', when='@:2.28.0')
@ -263,7 +264,7 @@ def install(self, spec, prefix):
options.append("-cuda=%s" % spec['cuda'].prefix)
if '+level_zero' in spec:
options.append("-level_zero")
options.append("-level_zero=%s" % spec['oneapi-level-zero'].prefix)
if '+opencl' in spec:
options.append("-opencl")