rocblas: tighten tensile dependencies (#31414)
* rocblas: make tensile dependencies conditional * Remove rocm-smi from the rocblas dependency list rocm-smi was added to the rocblas dependency list because Tensile was a dependency of rocBLAS and rocm-smi was a dependency of Tensile. However, that reasoning was not correct. Tensile is composed of three components: 1. A command-line tool for generating kernels, benchmarking them, and saving the parameters used for generating the best kernels (a.k.a. "Solutions") in YAML files. 2. A build system component that reads YAML solution files, generates kernel source files, and invokes the compiler to compile then into code object files (*.co, *.hsco). An index of the kernels and their associated parameters is also generated and stored in either YAML or MessagePack format (TensileLibrary.yaml or TensileLibrary.dat). 3. A runtime library that will load the TensileLibrary and code object files when asked to execute a GEMM and choose the ideal kernel for your specific input parameters. rocBLAS developers use (1) during rocBLAS development. This is when Tensile depends on rocm-smi. The GPU clock speed and temperature must be controlled to ensure consistency when doing the solution benchmarking. That control is provided by rocm-smi. When building rocBLAS, Tensile is used for (2). However, there is no need for control of the GPU at that point and rocm-smi is not a dependency. At runtime, the rocBLAS library uses Tensile for (3), but there is again no dependency on rocm-smi. tl;dr: rocm-smi is a dependency of the tensile benchmarking tool, which is not a build dependency or runtime dependency of rocblas.
This commit is contained in:
parent
b065d69136
commit
5c59e9746a
1 changed files with 11 additions and 16 deletions
|
@ -85,23 +85,18 @@ def check(self):
|
|||
depends_on('llvm-amdgpu@' + ver, type='build', when='@' + ver)
|
||||
depends_on('rocminfo@' + ver, type='build', when='@' + ver)
|
||||
|
||||
for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0']:
|
||||
depends_on('rocm-smi@' + ver, type='build', when='@' + ver)
|
||||
|
||||
for ver in ['4.0.0', '4.1.0', '4.2.0', '4.3.0', '4.3.1', '4.5.0', '4.5.2',
|
||||
'5.0.0', '5.0.2', '5.1.0', '5.1.3']:
|
||||
depends_on('rocm-smi-lib@' + ver, type='build', when='@' + ver)
|
||||
|
||||
# This is the default library format since 3.7.0
|
||||
depends_on('msgpack-c@3:', when='@3.7:')
|
||||
|
||||
depends_on('python@3.6:', type='build')
|
||||
depends_on('py-virtualenv', type='build')
|
||||
depends_on('perl-file-which', type='build')
|
||||
depends_on('py-pyyaml', type='build')
|
||||
depends_on('py-wheel', type='build')
|
||||
depends_on('py-msgpack', type='build')
|
||||
depends_on('py-pip', type='build')
|
||||
|
||||
with when('+tensile'):
|
||||
# default library format since 3.7.0
|
||||
depends_on('msgpack-c@3:', when='@3.7:')
|
||||
|
||||
depends_on('py-virtualenv', type='build')
|
||||
depends_on('perl-file-which', type='build')
|
||||
depends_on('py-pyyaml', type='build')
|
||||
depends_on('py-wheel', type='build')
|
||||
depends_on('py-msgpack', type='build')
|
||||
depends_on('py-pip', type='build')
|
||||
|
||||
for t_version, t_commit in [
|
||||
('@3.5.0', 'f842a1a4427624eff6cbddb2405c36dec9a210cd'),
|
||||
|
|
Loading…
Reference in a new issue