mirror of
https://github.com/ROCm/composable_kernel.git
synced 2026-05-11 08:50:17 +00:00
[rocm-libraries] ROCm/rocm-libraries#4301 (commit 0821c9f)
test: Add umbrella test targets for CK Tile operations (#4301) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Proposed changes Adds operation-specific umbrella test targets for CK Tile to enable running all tests for a specific operation without running the entire test suite. This improves the development workflow by allowing faster iteration when working on specific operations. ## Motivation Previously, developers working on CK Tile operations could only: - Run individual test executables one at a time - Run global labels (, , ) which test the entire codebase - Build all tests for an operation but had no simple way to run them all This made it cumbersome to validate changes to a specific operation (e.g., GEMM quantization) without either running tests individually or running the entire test suite. ### Documentation - - Comprehensive testing guide with usage examples and implementation details ## Usage Examples # Run all GEMM tests with 256 parallel jobs ninja -j256 ck_tile_gemm_tests # Run all GEMM block scale (quantization) tests ninja -j256 ck_tile_gemm_block_scale_tests # Run all GEMM StreamK tests ninja -j256 ck_tile_gemm_streamk_tests ## Checklist Please put an into the boxes that apply. You can also fill these out after creating the PR. If you're not sure, please don't hesitate to ask. - [x] I have added tests relevant to the introduced functionality, and the unit tests are passing locally - [x] I have added the test to REGRESSION_TESTS list defined at the top of CMakeLists.txt in tests/CMakeLists.txt, **IF** the test takes more than 30 seconds to run. - [x] I have added inline documentation which enables the maintainers with understanding the motivation - [x] I have removed the stale documentation which is no longer relevant after this pull request - [ ] (If this change is user-facing) I have added release notes which provide the end users with a brief summary of the improvement from this pull request - [x] I have run on all changed files - [x] Any dependent changes have been merged ## Discussion If this is a relatively large or complex change, feel free to start a discussion by explaining why you chose the solution you did and what alternatives you considered
This commit is contained in:
committed by
assistant-librarian[bot]
parent
1cd031c21d
commit
f00ec5afd9
@@ -254,17 +254,8 @@ if(GPU_TARGETS MATCHES "gfx94|gfx95|gfx12")
|
||||
)
|
||||
target_compile_options(test_tile_gemm_quant_tensor PRIVATE ${TEST_GEMM_COMPILE_OPTIONS})
|
||||
|
||||
# Target to build only AQuant memory pipeline tests
|
||||
add_custom_target(test_tile_gemm_aquant_mem_all)
|
||||
add_dependencies(test_tile_gemm_aquant_mem_all
|
||||
test_tile_gemm_quant_aquant_mem_prefill_interwave
|
||||
test_tile_gemm_quant_aquant_mem_decode_intrawave
|
||||
test_tile_gemm_quant_aquant_mem_decode_interwave
|
||||
)
|
||||
|
||||
# Umbrella target to build all gemm quant tests
|
||||
add_custom_target(test_tile_gemm_quant_all)
|
||||
add_dependencies(test_tile_gemm_quant_all
|
||||
# Collect all test targets for umbrella label
|
||||
set(CK_TILE_GEMM_BLOCK_SCALE_TEST_TARGETS
|
||||
# AQuant tests
|
||||
test_tile_gemm_quant_aquant_mem_prefill_interwave
|
||||
test_tile_gemm_quant_aquant_mem_decode_intrawave
|
||||
@@ -312,6 +303,32 @@ if(GPU_TARGETS MATCHES "gfx94|gfx95|gfx12")
|
||||
test_tile_gemm_quant_rowcol
|
||||
test_tile_gemm_quant_tensor
|
||||
)
|
||||
|
||||
# Label all ck_tile gemm_block_scale tests with CK_TILE_GEMM_BLOCK_SCALE_TESTS for selective execution
|
||||
foreach(test_target ${CK_TILE_GEMM_BLOCK_SCALE_TEST_TARGETS})
|
||||
set_tests_properties(${test_target} PROPERTIES LABELS "CK_TILE_GEMM_BLOCK_SCALE_TESTS")
|
||||
endforeach()
|
||||
|
||||
# Target to build only AQuant memory pipeline tests
|
||||
add_custom_target(test_tile_gemm_aquant_mem_all)
|
||||
add_dependencies(test_tile_gemm_aquant_mem_all
|
||||
test_tile_gemm_quant_aquant_mem_prefill_interwave
|
||||
test_tile_gemm_quant_aquant_mem_decode_intrawave
|
||||
test_tile_gemm_quant_aquant_mem_decode_interwave
|
||||
)
|
||||
|
||||
# Umbrella target to build all gemm quant tests
|
||||
add_custom_target(test_tile_gemm_quant_all)
|
||||
add_dependencies(test_tile_gemm_quant_all ${CK_TILE_GEMM_BLOCK_SCALE_TEST_TARGETS})
|
||||
|
||||
# Umbrella target to build and run all ck_tile gemm_block_scale tests
|
||||
# Usage: ninja ck_tile_gemm_block_scale_tests
|
||||
add_custom_target(ck_tile_gemm_block_scale_tests
|
||||
COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure -C ${CMAKE_CFG_INTDIR} -L "CK_TILE_GEMM_BLOCK_SCALE_TESTS"
|
||||
DEPENDS ${CK_TILE_GEMM_BLOCK_SCALE_TEST_TARGETS}
|
||||
USES_TERMINAL
|
||||
COMMENT "Running all ck_tile gemm_block_scale tests..."
|
||||
)
|
||||
else()
|
||||
message(DEBUG "Skipping ck_tile quant gemm tests for current target")
|
||||
endif()
|
||||
|
||||
Reference in New Issue
Block a user