From 2fe30811d4040760c5a01788806e13dc1a334695 Mon Sep 17 00:00:00 2001 From: Archana Ramalingam Date: Tue, 16 Jun 2026 18:09:18 -0500 Subject: [PATCH 1/3] [tensilelite] Install tensilelite-client and fix makeIsaInfoMap singleton poisoning - Install tensilelite-client to libexec/hipblaslt/tensilelite for CI test artifacts (fixes FileNotFoundError in FFM emulation tests) - Move makeIsaInfoMap() from module level to pytest fixture in test_MatrixInstructionConversion.py (prevents rocisa singleton poisoning when unit + common tests are collected together) Co-Authored-By: Claude Opus 4.6 --- projects/hipblaslt/CMakeLists.txt | 9 ++++++-- .../unit/test_MatrixInstructionConversion.py | 21 ++++++++++++------- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/projects/hipblaslt/CMakeLists.txt b/projects/hipblaslt/CMakeLists.txt index c3c0c3fbb190..4bc3967bf79f 100644 --- a/projects/hipblaslt/CMakeLists.txt +++ b/projects/hipblaslt/CMakeLists.txt @@ -655,8 +655,13 @@ if(HIPBLASLT_INSTALL_TENSILELITE_TEST_ARTIFACTS AND NOT WIN32) OPTIONAL ) - # TODO: Add C++ test tools (tensilelite-client, cpu-gemm-driver) when - # common/generator tests are enabled in CI. + if(TARGET tensilelite-client) + install( + TARGETS tensilelite-client + DESTINATION "${CMAKE_INSTALL_LIBEXECDIR}/hipblaslt/tensilelite" + COMPONENT tests + ) + endif() endif() if(HIPBLASLT_ENABLE_CLIENT AND HIPBLASLT_ENABLE_SAMPLES) diff --git a/projects/hipblaslt/tensilelite/Tensile/Tests/unit/test_MatrixInstructionConversion.py b/projects/hipblaslt/tensilelite/Tensile/Tests/unit/test_MatrixInstructionConversion.py index 864ddba28b27..25083c49dab2 100644 --- a/projects/hipblaslt/tensilelite/Tensile/Tests/unit/test_MatrixInstructionConversion.py +++ b/projects/hipblaslt/tensilelite/Tensile/Tests/unit/test_MatrixInstructionConversion.py @@ -22,6 +22,7 @@ # # SPDX-License-Identifier: MIT ################################################################################ +import pytest import yaml from pprint import pformat @@ -33,10 +34,14 @@ from Tensile.SolutionStructs.Validators.MatrixInstruction import matrixInstructionToMIParameters, validateMIParameters from Tensile.SolutionStructs.Validators.WorkGroup import validateWorkGroup -cxxCompiler = validateToolchain("amdclang++") -isaInfoMap = makeIsaInfoMap(SUPPORTED_ISA, cxxCompiler) -def test_convert_9_item_custom_kernel_config(): +@pytest.fixture(scope="module") +def isa_info_map(): + cxxCompiler = validateToolchain("amdclang++") + return makeIsaInfoMap(SUPPORTED_ISA, cxxCompiler) + + +def test_convert_9_item_custom_kernel_config(isa_info_map): input_conf = yaml.load( """ ProblemType: @@ -76,7 +81,7 @@ def test_convert_9_item_custom_kernel_config(): wavefrontSize, ptype, workgroup, - isaInfoMap, + isa_info_map, ) input = { @@ -108,7 +113,7 @@ def test_convert_9_item_custom_kernel_config(): solution.update(input_conf) solution.update(outputConf) - assert validateMIParameters(solution, isaInfoMap, True) + assert validateMIParameters(solution, isa_info_map, True) assert validateWorkGroup(solution) mi4 = solution["MatrixInstruction"] @@ -122,7 +127,7 @@ def test_convert_9_item_custom_kernel_config(): assert format9 == mi -def testConvert9ItemCustomKernelConfig(): +def testConvert9ItemCustomKernelConfig(isa_info_map): inputConf = yaml.load( """ @@ -178,7 +183,7 @@ def testConvert9ItemCustomKernelConfig(): wavefrontSize, inputConf["ProblemType"], workGroup, - isaInfoMap, + isa_info_map, ) input = { @@ -210,4 +215,4 @@ def testConvert9ItemCustomKernelConfig(): solution.update(inputConf) solution.update(outputConf) - assert validateMIParameters(solution, isaInfoMap, True) == True + assert validateMIParameters(solution, isa_info_map, True) == True From 39fee104320931327b6afe630f650cb7811a542e Mon Sep 17 00:00:00 2001 From: Archana Ramalingam Date: Tue, 23 Jun 2026 00:45:57 -0500 Subject: [PATCH 2/3] address reviews --- projects/hipblaslt/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/hipblaslt/CMakeLists.txt b/projects/hipblaslt/CMakeLists.txt index 4bc3967bf79f..2fe6a15e88ea 100644 --- a/projects/hipblaslt/CMakeLists.txt +++ b/projects/hipblaslt/CMakeLists.txt @@ -655,8 +655,8 @@ if(HIPBLASLT_INSTALL_TENSILELITE_TEST_ARTIFACTS AND NOT WIN32) OPTIONAL ) - if(TARGET tensilelite-client) - install( + if(TENSILELITE_ENABLE_CLIENT) + rocm_install( TARGETS tensilelite-client DESTINATION "${CMAKE_INSTALL_LIBEXECDIR}/hipblaslt/tensilelite" COMPONENT tests From fb928f0a66d976f8afbdc6ae78804ea6203efde8 Mon Sep 17 00:00:00 2001 From: Archana Ramalingam Date: Tue, 23 Jun 2026 15:48:28 -0500 Subject: [PATCH 3/3] revert rocm_install for tensilelite-client install MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit rocm_install_targets() does not accept DESTINATION — it only parses TARGETS, EXPORT, COMPONENT, PREFIX, INCLUDE, PRIVATE. The bare DESTINATION keyword gets treated as a target name, breaking configure. Use plain install() with RUNTIME DESTINATION per the tensilelite-test-install design doc. Keep if(TENSILELITE_ENABLE_CLIENT) guard from the prior review. Co-Authored-By: Claude Opus 4.6 --- projects/hipblaslt/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/hipblaslt/CMakeLists.txt b/projects/hipblaslt/CMakeLists.txt index 782c72ff1bc2..529ec2bd6f0e 100644 --- a/projects/hipblaslt/CMakeLists.txt +++ b/projects/hipblaslt/CMakeLists.txt @@ -657,9 +657,9 @@ if(HIPBLASLT_INSTALL_TENSILELITE_TEST_ARTIFACTS AND NOT WIN32) ) if(TENSILELITE_ENABLE_CLIENT) - rocm_install( + install( TARGETS tensilelite-client - DESTINATION "${CMAKE_INSTALL_LIBEXECDIR}/hipblaslt/tensilelite" + RUNTIME DESTINATION "${CMAKE_INSTALL_LIBEXECDIR}/hipblaslt/tensilelite" COMPONENT tests ) endif()