From 3b393fe0eb8dc63aea9c4d4f38ad756cf4daa8d7 Mon Sep 17 00:00:00 2001 From: Mark Abraham Date: Thu, 16 Jun 2022 20:21:36 +0200 Subject: Add LevelZero variant to hwloc package (#31161) * Add LevelZero variant to hwloc package This permits the hwloc package to build with with support for the Intel Level Zero low-level layer, analogous to CUDA, ROCm, and OpenCL. * Fix typo --- var/spack/repos/builtin/packages/hwloc/package.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/var/spack/repos/builtin/packages/hwloc/package.py b/var/spack/repos/builtin/packages/hwloc/package.py index 2854fa9b7c..ad2325f629 100644 --- a/var/spack/repos/builtin/packages/hwloc/package.py +++ b/var/spack/repos/builtin/packages/hwloc/package.py @@ -85,6 +85,8 @@ class Hwloc(AutotoolsPackage): description="Support an OpenCL library at run time") variant('rocm', default=False, description="Support ROCm devices") + variant('oneapi-level-zero', default=False, + description="Support Intel OneAPI Level Zero devices") # netloc isn't available until version 2.0.0 conflicts('+netloc', when="@:1") @@ -129,6 +131,11 @@ class Hwloc(AutotoolsPackage): # variant of llvm-amdgpu depends on hwloc. depends_on('llvm-amdgpu~openmp', when='+opencl') + with when('+oneapi-level-zero'): + depends_on('oneapi-level-zero') + # oneapi-level-zero isn't available until version 2.5.0 + conflicts('@:2.4.99', msg='hwloc supports Intel OneAPI Level Zero only since 2.5.0') + @classmethod def determine_version(cls, exe): output = Executable(exe)('--version', output=str, error=str) @@ -174,10 +181,14 @@ class Hwloc(AutotoolsPackage): args.extend(self.enable_or_disable('libudev')) args.extend(self.enable_or_disable('pci')) args.extend(self.enable_or_disable('shared')) + args.extend(self.enable_or_disable('oneapi-level-zero')) if '+cuda' in self.spec: args.append('--with-cuda={0}'.format(self.spec['cuda'].prefix)) args.append('--with-cuda-version={0}'.format( self.spec['cuda'].version)) + if '+oneapi-level-zero' in self.spec: + args.append('--enable-levelzero') + return args -- cgit v1.2.3-70-g09d2