Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
128 commits
Select commit Hold shift + click to select a range
ca8a751
Prototype of custom kernels from anywhere
AlexBrownAMD Feb 10, 2026
275b288
Fix KernelArgumentType serialization by name
AlexBrownAMD Feb 10, 2026
602cfeb
Demo calling CK kernel.
AlexBrownAMD Feb 25, 2026
2e14d65
Initial custom RR kernel work
awhittle3 Feb 26, 2026
4645712
Fixes
awhittle3 Feb 26, 2026
85c38f4
YAML typo fix
awhittle3 Feb 26, 2026
c95ece5
Explicit RR kernel sizes
awhittle3 Feb 27, 2026
2648f2f
Sizes typo fix
awhittle3 Feb 27, 2026
f3b0faa
Working RR kernel launch
awhittle3 Feb 27, 2026
feb36e9
Add data types to custom kernel arguments
AlexBrownAMD Mar 2, 2026
696a974
Remove custom RR logic and use datatypes
awhittle3 Mar 2, 2026
670c33f
Rm debug message
awhittle3 Mar 2, 2026
c4e65f2
Tweaks for RR custom kernel
awhittle3 Mar 4, 2026
ee38e6c
Define launch grid parameters
AlexBrownAMD Mar 6, 2026
8175333
Init CustomKernel to fix some build errors
AlexBrownAMD Mar 9, 2026
2c6d801
[hipblaslt] Demo calling AITER bf16 kernel (#5267)
jinchen62 Mar 10, 2026
55604b7
[hipblaslt] Allow subdirectories in CustomKernels folder (#5331)
jinchen62 Mar 11, 2026
2b50d02
CustomKernels don't need tuning arguments (#5320)
AlexBrownAMD Mar 11, 2026
072126e
[hipblaslt] Add custom argument semantic for padding (#5322)
jinchen62 Mar 18, 2026
aeff1c4
Move tensile generated custom kernels
jinchen62 Mar 25, 2026
a276415
[hipblaslt] Demo calling wave bf16 kernel (#5756)
jinchen62 Apr 1, 2026
fbbc055
Merge remote-tracking branch 'upstream/develop' into GemmFromAnywhere
jinchen62 Apr 7, 2026
9ae2728
[hipblaslt][G-F-A] fix MFMA_BF16_1K KeyError of install build (#6217)
jinchen62 Apr 7, 2026
9105a66
[hipblaslt][G-F-A] fix rr demo yaml (#6238)
jinchen62 Apr 8, 2026
b36aa10
[hipblaslt] fix gemm_ck_gfx942 test (#6301)
jinchen62 Apr 9, 2026
de9b293
Merge remote-tracking branch 'upstream/develop' into GemmFromAnywhere
jinchen62 Apr 13, 2026
00f3d01
Merge remote-tracking branch 'upstream/develop' into GemmFromAnywhere
jinchen62 Apr 13, 2026
206e00f
Merge remote-tracking branch 'upstream/develop' into GemmFromAnywhere
jinchen62 Apr 14, 2026
83fae2f
Merge remote-tracking branch 'upstream/develop' into GemmFromAnywhere
jinchen62 Apr 21, 2026
6d5e1bd
Make it easier to add new semantics
AlexBrownAMD Apr 22, 2026
2b39bb5
Merge remote-tracking branch 'upstream/develop' into GemmFromAnywhere
jinchen62 Apr 28, 2026
b56bd25
[hipblaslt][G-F-A] Demo calling aiter mxfp4 kernel (#6516)
jinchen62 Apr 29, 2026
c4f080b
Demo calling a stream-k kernel
AlexBrownAMD Apr 29, 2026
512dc30
Merge branch 'GemmFromAnywhere_StreamKDemo' into GemmFromAnywhere
AlexBrownAMD Apr 29, 2026
66b9fd3
[hipblaslt] Eliminate duplicate kernel argument configuration (#6092)
jinchen62 Apr 30, 2026
05404a6
[hipblaslt] Versioning info in custom kernel metadata (#5539)
jinchen62 Apr 30, 2026
25f54c5
Merge remote-tracking branch 'upstream/develop' into GemmFromAnywhere
jinchen62 Apr 30, 2026
cdd427a
[hipblaslt][G-F-A] Fix GFA regressions (#6973)
jinchen62 Apr 30, 2026
dcff092
[hipblaslt][G-F-A] Add problem size predicates for custom kernels (#7…
jinchen62 May 8, 2026
e5cb3af
Merge remote-tracking branch 'upstream/develop' into GemmFromAnywhere
jinchen62 May 8, 2026
88a150d
Merge remote-tracking branch 'upstream/develop' into GemmFromAnywhere
jinchen62 May 12, 2026
39b9174
Merge remote-tracking branch 'upstream/develop' into GemmFromAnywhere
jinchen62 May 18, 2026
f5b460d
Merge remote-tracking branch 'upstream/develop' into GemmFromAnywhere
jinchen62 May 28, 2026
ede50f5
Merge remote-tracking branch 'upstream/develop' into GemmFromAnywhere
jinchen62 Jun 3, 2026
d59d76f
Fix regressions on the yaml tests
jinchen62 Jun 4, 2026
87281ec
Merge remote-tracking branch 'upstream/develop' into GemmFromAnywhere
jinchen62 Jun 12, 2026
a64b047
Fix merge conflicts
jinchen62 Jun 12, 2026
1b1e5d2
Merge remote-tracking branch 'upstream/develop' into GemmFromAnywhere
jinchen62 Jun 12, 2026
f955910
Merge remote-tracking branch 'upstream/develop' into GemmFromAnywhere
jinchen62 Jun 15, 2026
1e040ee
[hipblaslt][G-F-A] Demo calling triton fp4 kernel (#8336)
jinchen62 Jun 15, 2026
33d16b2
Fix unit test regressions
jinchen62 Jun 16, 2026
69eb229
Merge remote-tracking branch 'upstream/develop' into GemmFromAnywhere
jinchen62 Jun 22, 2026
df646f9
Merge remote-tracking branch 'upstream/develop' into GemmFromAnywhere
jinchen62 Jul 6, 2026
fa0761a
Merge remote-tracking branch 'upstream/develop' into GemmFromAnywhere
jinchen62 Jul 8, 2026
2dd945f
Fix test regressions
jinchen62 Jul 8, 2026
f4185cc
Merge remote-tracking branch 'upstream/develop' into GemmFromAnywhere
jinchen62 Jul 10, 2026
db160dc
Revert change of CuCount_test
jinchen62 Jul 11, 2026
40b6d15
Merge remote-tracking branch 'upstream/develop' into GemmFromAnywhere
jinchen62 Jul 11, 2026
6e6f3f4
Fix test_custom_kernels_char
jinchen62 Jul 11, 2026
a66769f
Fix regressions and add new tests
jinchen62 Jul 11, 2026
b0aab33
Add host-side unit coverage for the flagged TensileLite modules
jinchen62 Jul 15, 2026
0f756b7
Merge remote-tracking branch 'upstream/develop' into GemmFromAnywhere
jinchen62 Jul 15, 2026
1201074
add more unit tests
jinchen62 Jul 15, 2026
4b6a090
Merge remote-tracking branch 'upstream/develop' into GemmFromAnywhere
jinchen62 Jul 15, 2026
f5d5d4f
Revert removal of generateSingleCall
jinchen62 Jul 16, 2026
891875e
Merge remote-tracking branch 'upstream/develop' into GemmFromAnywhere
jinchen62 Jul 16, 2026
aba9851
Add more unit tests
jinchen62 Jul 20, 2026
67b9e72
Merge remote-tracking branch 'upstream/develop' into GemmFromAnywhere
jinchen62 Jul 20, 2026
51acde5
add pytestmark to the unit tests
jinchen62 Jul 20, 2026
842db34
Merge remote-tracking branch 'upstream/develop' into GemmFromAnywhere
jinchen62 Jul 20, 2026
cafe0a3
Merge remote-tracking branch 'upstream/develop' into GemmFromAnywhere
jinchen62 Jul 22, 2026
f30e4b7
Merge remote-tracking branch 'upstream/develop' into GemmFromAnywhere
jinchen62 Jul 22, 2026
f081748
Merge remote-tracking branch 'upstream/develop' into GemmFromAnywhere
jinchen62 Jul 23, 2026
72e2c65
Merge branch 'develop' into GemmFromAnywhere
jinchen62 Jul 23, 2026
3376e5f
Merge remote-tracking branch 'upstream/develop' into GemmFromAnywhere
jinchen62 Jul 24, 2026
501b8dc
Merge remote-tracking branch 'upstream/develop' into GemmFromAnywhere
jinchen62 Jul 27, 2026
c572bb8
Merge remote-tracking branch 'upstream/develop' into GemmFromAnywhere
jinchen62 Jul 31, 2026
470ba55
Merge remote-tracking branch 'upstream/develop' into GemmFromAnywhere
jinchen62 Aug 4, 2026
531175e
fix regressions
jinchen62 Aug 4, 2026
f76d8ec
Merge remote-tracking branch 'upstream/develop' into GemmFromAnywhere
jinchen62 Aug 4, 2026
1a9fa5b
add custom yaml skip archs
jinchen62 Aug 5, 2026
9614fe7
Merge remote-tracking branch 'upstream/develop' into GemmFromAnywhere
jinchen62 Aug 5, 2026
9cd2806
fix CI
jinchen62 Aug 5, 2026
47fb78e
Merge remote-tracking branch 'upstream/develop' into GemmFromAnywhere
jinchen62 Aug 5, 2026
091b94b
fix ci and add tests
jinchen62 Aug 6, 2026
4089252
Merge remote-tracking branch 'upstream/develop' into GemmFromAnywhere
jinchen62 Aug 6, 2026
5fbfd24
Merge branch 'develop' into GemmFromAnywhere
jinchen62 Aug 6, 2026
abdafd0
Merge remote-tracking branch 'upstream/develop' into GemmFromAnywhere
jinchen62 Aug 7, 2026
fe11d57
fix merge conflicts
jinchen62 Aug 7, 2026
9a19016
Merge branch 'develop' into GemmFromAnywhere
jinchen62 Aug 10, 2026
21ca404
address comments
jinchen62 Aug 11, 2026
6a4d2d7
Merge remote-tracking branch 'upstream/develop' into GemmFromAnywhere
jinchen62 Aug 11, 2026
8d7f64a
Merge branch 'develop' into GemmFromAnywhere
jinchen62 Aug 12, 2026
1b19d1d
Merge branch 'develop' into GemmFromAnywhere
jinchen62 Aug 14, 2026
32b60d1
Merge branch 'develop' into GemmFromAnywhere
jinchen62 Aug 17, 2026
5a1e0b2
Merge branch 'develop' into GemmFromAnywhere
jinchen62 Aug 18, 2026
8108133
Merge remote-tracking branch 'upstream/develop' into GemmFromAnywhere
jinchen62 Aug 19, 2026
8ddde87
Merge branch 'develop' into GemmFromAnywhere
AlexBrownAMD Aug 19, 2026
b703f15
Merge remote-tracking branch 'upstream/develop' into GemmFromAnywhere
jinchen62 Aug 19, 2026
381722f
fix regression of test from develop
jinchen62 Aug 19, 2026
848bb5c
Merge remote-tracking branch 'upstream/develop' into GemmFromAnywhere
jinchen62 Aug 22, 2026
8155d18
fix mxDataGenerator headers
jinchen62 Aug 22, 2026
04b47ae
Merge branch 'develop' into GemmFromAnywhere
jinchen62 Aug 24, 2026
57ad448
Merge remote-tracking branch 'upstream/develop' into GemmFromAnywhere
jinchen62 Aug 25, 2026
db2958f
Merge remote-tracking branch 'upstream/develop' into GemmFromAnywhere
jinchen62 Aug 27, 2026
2babe5c
fix merge regressions
jinchen62 Aug 27, 2026
f57e7aa
Merge remote-tracking branch 'upstream/develop' into GemmFromAnywhere
jinchen62 Aug 27, 2026
d65f45e
Merge remote-tracking branch 'upstream/develop' into GemmFromAnywhere
jinchen62 Aug 28, 2026
843f38f
Merge branch 'develop' into GemmFromAnywhere
jinchen62 Aug 29, 2026
e94e4dc
Merge branch 'develop' into GemmFromAnywhere
AlexBrownAMD Aug 31, 2026
2e51b9d
Merge branch 'develop' into GemmFromAnywhere
AlexBrownAMD Sep 1, 2026
32e1d7d
Merge remote-tracking branch 'origin/develop' into GemmFromAnywhere
AlexBrownAMD Sep 11, 2026
87159af
Fix some unit tests after merge conflicts
AlexBrownAMD Sep 11, 2026
d82cefb
Merge remote-tracking branch 'origin/develop' into GemmFromAnywhere
AlexBrownAMD Sep 11, 2026
67ee9d6
Merge remote-tracking branch 'origin/develop' into GemmFromAnywhere
AlexBrownAMD Sep 14, 2026
753608b
fix regressions
jinchen62 Sep 14, 2026
1cfb50e
Merge remote-tracking branch 'upstream/develop' into GemmFromAnywhere
jinchen62 Sep 14, 2026
6ea8115
Merge branch 'develop' into GemmFromAnywhere
jinchen62 Sep 15, 2026
2a3a33f
Merge remote-tracking branch 'origin/develop' into GemmFromAnywhere
AlexBrownAMD Sep 15, 2026
fc98795
Merge remote-tracking branch 'origin/develop' into GemmFromAnywhere
AlexBrownAMD Sep 15, 2026
efa9034
Merge remote-tracking branch 'upstream/develop' into GemmFromAnywhere
jinchen62 Sep 16, 2026
9e54b28
Merge remote-tracking branch 'upstream/develop' into GemmFromAnywhere
jinchen62 Sep 16, 2026
a879340
fix regressions
jinchen62 Sep 16, 2026
4ee0eda
Merge remote-tracking branch 'origin/develop' into GemmFromAnywhere
AlexBrownAMD Sep 16, 2026
e8ae73a
Merge branch 'develop' into GemmFromAnywhere
jinchen62 Sep 17, 2026
5b3aae7
fix(tensilelite): emit RPATH for tensilelite-client so the built host…
talumbau Sep 17, 2026
d0e6322
fix(tensilelite): keep -fopenmp off tensilelite-host so LLVM headers …
talumbau Sep 18, 2026
87602a0
Merge branch 'develop' into GemmFromAnywhere
AlexBrownAMD Sep 18, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -1410,6 +1410,7 @@ namespace
auto solution = probeSolution();
solution->customKernel.name = "DummyCustomKernel";
solution->customKernel.generated = false;
solution->customKernel.macrotile = TensileLite::dim3(128, 128, 32);

EXPECT_FALSE(admitsUniformSummationOrder(*solution, hardware))
<< "A handwritten custom kernel must be refused under uniform summation order";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4830,12 +4830,12 @@ rocblaslt_status getAllSolutions(MyProblem&
if constexpr(std::is_same<MyProblem, TensileLite::ContractionProblemGemm>::value)
{
if(prob.batchMode() == TensileLite::ContractionProblemGemm::BATCHMODE::POINTER_ARRAY
&& !solution->sizeMapping.customKernelName.empty())
&& !solution->customKernel.name.empty() && !solution->customKernel.generated)
{
if(get_logger_layer_mode() & rocblaslt_layer_mode_log_info)
{
std::ostringstream msg;
msg << "Skipping custom kernel " << solution->sizeMapping.customKernelName
msg << "Skipping custom kernel " << solution->customKernel.name
<< " - does not support batch_mode=POINTER_ARRAY" << std::endl;
log_info(__func__, msg.str());
}
Expand Down
67 changes: 67 additions & 0 deletions projects/hipblaslt/tensilelite/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,53 @@ if(TENSILELITE_ENABLE_HOST)
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
)

# mxDataGenerator supplies the gfx950 pre-swizzled MX scale padding helper behind
# the StrideScaleA1/StrideScaleB1 custom-kernel semantics. Treat it as optional:
# HIPBLASLT_ENABLE_MXDATAGENERATOR is OFF on Windows, and shared/mxdatagenerator
# is absent from checkouts that vendor only projects/hipblaslt, so probe for it
# instead of hard-requiring it.
set(TENSILELITE_HOST_MXDATAGENERATOR ${HIPBLASLT_ENABLE_MXDATAGENERATOR})
set(_mxdatagen_target roc::mxDataGenerator)
if(TENSILELITE_HOST_MXDATAGENERATOR AND NOT TARGET roc::mxDataGenerator)
set(_mxdatagen_src "${CMAKE_CURRENT_SOURCE_DIR}/../../../shared/mxdatagenerator")
if(HIPBLASLT_ENABLE_THEROCK)
find_package(mxDataGenerator QUIET)
if(NOT mxDataGenerator_FOUND)
set(TENSILELITE_HOST_MXDATAGENERATOR OFF)
endif()
elseif(EXISTS "${_mxdatagen_src}/lib/include/mxDataGenerator/PreSwizzle.hpp")
# Consume the header-only helper directly rather than add_subdirectory()ing
# mxDataGenerator: its CMakeLists emits install() rules unconditionally and
# EXCLUDE_FROM_ALL does not suppress them, so vendoring it here republishes
# its 25 headers and 3 package files from whatever install tree embeds this
# subdirectory. hipSPARSELt embeds it, which put those files in TheRock's
# blas artifact alongside support's own copy (rocm-libraries#11105).
find_package(OpenMP REQUIRED)
add_library(tensilelite-mxdatagenerator-headers INTERFACE)
target_include_directories(tensilelite-mxdatagenerator-headers
INTERFACE $<BUILD_INTERFACE:${_mxdatagen_src}/lib/include>)
# LINK_ONLY: OpenMP::OpenMP_CXX carries -fopenmp in its INTERFACE_COMPILE_OPTIONS.
# Propagating that into tensilelite-host's compiles is not merely unnecessary
# (the pre-swizzle helper is correct serially) -- it is actively harmful. On the
# CI image, -fopenmp re-adds ${ROCM_PATH}/lib/llvm/include as an *implicit system*
# include dir to locate omp.h. That demotes the explicit -I for the same directory,
# and <llvm/...> includes then fall through to the system LLVM 18 tree in
# /usr/include/llvm. tensilelite-host would compile LLVM YAMLIO against LLVM 18
# headers while linking ROCm's LLVM 24 libraries -- an ABI mismatch that silently
# corrupts llvm::yaml::Input, making TensileLibrary.yaml fail to parse with
# "unknown key 'solutions'". Keep the link requirement, drop the compile options.
target_link_libraries(tensilelite-mxdatagenerator-headers
INTERFACE $<LINK_ONLY:OpenMP::OpenMP_CXX>)
set(_mxdatagen_target tensilelite-mxdatagenerator-headers)
else()
set(TENSILELITE_HOST_MXDATAGENERATOR OFF)
endif()
endif()
if(NOT TENSILELITE_HOST_MXDATAGENERATOR)
message(STATUS "tensilelite-host: mxDataGenerator not available; "
"pre-swizzled MX scale strides (StrideScaleA1/B1) are disabled")
endif()

target_link_libraries(tensilelite-host
PUBLIC
$<BUILD_INTERFACE:rocisa::rocisa-cpp>
Expand All @@ -102,6 +149,26 @@ if(TENSILELITE_ENABLE_HOST)
ZLIB::ZLIB
)

if(TENSILELITE_HOST_MXDATAGENERATOR)
# Consume mxDataGenerator's include directories, but take the target itself as a
# LINK_ONLY dependency so its INTERFACE_COMPILE_OPTIONS do not reach our compiles.
# roc::mxDataGenerator links OpenMP::OpenMP_CXX (shared/mxdatagenerator/CMakeLists.txt),
# which carries -fopenmp. On the CI image -fopenmp makes clang re-add
# ${ROCM_PATH}/lib/llvm/include as an *implicit system* include dir (to find omp.h).
# That demotes the explicit -I for the same directory, and <llvm/...> includes then
# fall through to the system LLVM 18 tree under /usr/include/llvm. tensilelite-host
# would compile llvm::yaml against LLVM 18 headers while linking ROCm's LLVM 24
# libraries: an ABI mismatch that silently corrupts llvm::yaml::Input, so every
# TensileLibrary.yaml fails to load with "unknown key 'solutions'".
# The pre-swizzle helper is correct serially, so dropping -fopenmp here is safe.
get_target_property(_mxdatagen_incs ${_mxdatagen_target} INTERFACE_INCLUDE_DIRECTORIES)
if(_mxdatagen_incs)
target_include_directories(tensilelite-host PRIVATE ${_mxdatagen_incs})
endif()
target_link_libraries(tensilelite-host PRIVATE $<LINK_ONLY:${_mxdatagen_target}>)
target_compile_definitions(tensilelite-host PRIVATE HIPBLASLT_ENABLE_MXDATAGENERATOR)
endif()

include(CheckCXXSourceCompiles)
set(CMAKE_REQUIRED_INCLUDES ${HIP_INCLUDE_DIRS})
set(CMAKE_REQUIRED_LIBRARIES hip::device)
Expand Down
Loading
Loading