In order to ease the spack install process we make a uniform interface to enable/disable backends: hwloc, cuda, opencl, ze.
--with-<backend> options are unified by using pkgconf m4 macros.
This largely simplifies the work for hwloc and opencl. However, a special attention has to be given to (1) ze and (2) cuda.
(1) ze is not always installed with a .pc companion and the detection might fail even if it is installed in a standard path.
Therefore, we provide a fallback method to detect it.
(2) cuda detection is left untouched until we figure out how to deal with nvcc detection and pkg-config for cuda.
In order to customize the installation path of these backends, one can pass ./configure <backend>_CFLAGS <backend>_LDFLAGS to override pkgconf path. For the case of cuda however, the path has to be specified with the --with-cuda=path option.
In order to ease the spack install process we make a uniform interface to enable/disable backends: hwloc, cuda, opencl, ze.
--with-<backend>
options are unified by usingpkgconf
m4 macros. This largely simplifies the work for hwloc and opencl. However, a special attention has to be given to (1) ze and (2) cuda. (1) ze is not always installed with a.pc
companion and the detection might fail even if it is installed in a standard path. Therefore, we provide a fallback method to detect it. (2) cuda detection is left untouched until we figure out how to deal with nvcc detection and pkg-config for cuda.In order to customize the installation path of these backends, one can pass
./configure <backend>_CFLAGS <backend>_LDFLAGS
to override pkgconf path. For the case of cuda however, the path has to be specified with the--with-cuda=path
option.