diff options
Diffstat (limited to 'var')
-rw-r--r-- | var/spack/repos/builtin/packages/tiny-tensor-compiler/package.py | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/tiny-tensor-compiler/package.py b/var/spack/repos/builtin/packages/tiny-tensor-compiler/package.py new file mode 100644 index 0000000000..bd459d78b1 --- /dev/null +++ b/var/spack/repos/builtin/packages/tiny-tensor-compiler/package.py @@ -0,0 +1,46 @@ +# Copyright 2013-2024 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 os + +from spack.package import * + + +class TinyTensorCompiler(CMakePackage): + """A compiler for tensor computations on GPUs and other devices, + supporting the OpenCL, Level Zero, and SYCL runtime.""" + + homepage = "https://github.com/intel/tiny-tensor-compiler" + url = "https://github.com/intel/tiny-tensor-compiler/archive/refs/tags/v0.3.1.tar.gz" + + maintainers("uphoffc") + + license("BSD-3-Clause", checked_by="uphoffc") + + version("0.3.1", sha256="e512b92f9ef8f21362ea4a8f2655338769bc7fcf9de543e3dc7db86b696695b3") + + variant("shared", default=True, description="Shared library") + variant("level-zero", default=False, description="Build tinytc_ze (Level Zero runtime)") + variant("opencl", default=True, description="Build tintc_cl (OpenCL runtime)") + variant("sycl", default=False, description="Build tinytc_sycl (SYCL runtime)") + + requires("+opencl +level-zero", when="+sycl") + + depends_on("cmake@3.23.0:", type="build") + depends_on("double-batched-fft-library ~sycl ~level-zero ~opencl@0.5.1:", type="link") + depends_on("oneapi-level-zero@1.13:", when="+level-zero") + depends_on("opencl-icd-loader@2022.01.04:", when="+opencl", type="link") + + def cmake_args(self): + cxx_compiler = os.path.basename(self.compiler.cxx) + if self.spec.satisfies("+sycl") and cxx_compiler not in ["icpx"]: + raise InstallError("The tinytc_sycl library requires the oneapi C++ compiler") + + return [ + self.define_from_variant("BUILD_SHARED_LIBS", "shared"), + self.define_from_variant("BUILD_SYCL", "sycl"), + self.define_from_variant("BUILD_LEVEL_ZERO", "level-zero"), + self.define_from_variant("BUILD_OPENCL", "opencl"), + ] |