mirror of
https://github.com/ROCm/composable_kernel.git
synced 2026-05-03 21:21:22 +00:00
* Optimize GEMM on MI200/300: 1. Add new blockwise gemm pipeline 2. Add irregular splitk intances * clang format + typo fix * Fix a bug * initial commit * Add more instances to irregular splitk * blkgemm pipeline v1~4 prototype * Sanity Checked. Known issue: 1. Poor performance of splitk 2. Register spill on blkgemmpipeline v3 * Sanity and Performance fix: 1. fix a bug related to sanity in grouped b2c mapping 2. fix a bug related to sanity and performance in splitk offset * Sanity and API update: 1. Remove prefetch stage 2. Fix valid check bug 3, Add first gemm_universal instance into ckProfiler * Add NN instances for gemm universal * 1. Add NT instances for gemm_universal 2. Fix a bug about Kpadding in gemm_universal * Fix a bug regarding padding Odd K number * remove kernel print * Fix KPadding bug... * Update safety check * another try to fix kpadding.. * Sanity checked * new instances.. * clang format+typo fix * remove clang format script's change * Add non-hotloop compile option * 1. Add fp16xfp8 example 2. pull packed convert f8 from pr1150 * Some miscs.. opt and fix * Add pipeline description docs * Split universal gemm instance library to cut profiler compiling time * uncomment cmakefile * Fix a bug caused by blockwise_gemm_pipe_v2 * reduce default splitk to 1 * Add 224x256x64 tile size * update, including: 1. Experiment pipeline 5~7 2. Optimization for pipeline 4 3. Organized instance library * temp save * temp save * Permuted lds layout, sanity and function checked * clang format * Move OOB check from RunRead to RunWrite, for better software pipeline. TODO: agpr spill when NN layout * clangformat * A/B splitpipe scheduler for v3 * Fix two bugs * bug fix * fix a bug in oob check * Example for mixed fp16_fp8 gemm * Clean experimental code blocks * Add mixed precision gemm into profiler * tempsave * optimize m/n major lds layout * Add RRR GEMM mixed precision instances * Optimize f8 matrix transpose * Add test_gemm_universal * A/B spilt schedule for blkpip v5 * Take ds_read2 into iglp scheduling scheme * format * fixed cmake * Add llvm-option into CI cmake flag --------- Co-authored-by: Jing Zhang <jizhan@amd.com>
82 lines
3.6 KiB
CMake
82 lines
3.6 KiB
CMake
add_custom_target(example_gemm_dl)
|
|
|
|
add_example_executable(example_gemm_dl_fp32 gemm_dl_fp32.cpp)
|
|
add_example_dependencies(example_gemm_dl example_gemm_dl_fp32)
|
|
|
|
add_example_executable(example_gemm_dl_fp16 gemm_dl_fp16.cpp)
|
|
add_example_dependencies(example_gemm_dl example_gemm_dl_fp16)
|
|
|
|
add_example_executable(example_gemm_dpp_fp16 gemm_dpp_fp16.cpp)
|
|
|
|
add_example_executable(example_gemm_dl_int8 gemm_dl_int8.cpp)
|
|
add_example_dependencies(example_gemm_dl example_gemm_dl_int8)
|
|
if(USE_BITINT_EXTENSION_INT4)
|
|
add_example_executable(example_gemm_dl_int4 gemm_dl_int4.cpp)
|
|
add_example_dependencies(example_gemm_dl example_gemm_dl_int4)
|
|
endif(USE_BITINT_EXTENSION_INT4)
|
|
|
|
add_custom_target(example_gemm_xdl)
|
|
add_example_executable(example_gemm_xdl_fp16 gemm_xdl_fp16.cpp)
|
|
add_example_dependencies(example_gemm_xdl example_gemm_xdl_fp16)
|
|
|
|
add_example_executable(example_gemm_xdl_fp16_v2 gemm_xdl_fp16_v2.cpp)
|
|
add_example_dependencies(example_gemm_xdl example_gemm_xdl_fp16_v2)
|
|
|
|
add_example_executable(example_gemm_xdl_fp16_v3 gemm_xdl_fp16_v3.cpp)
|
|
add_example_dependencies(example_gemm_xdl example_gemm_xdl_fp16_v3)
|
|
add_example_executable(example_gemm_xdl_fp8_v3 gemm_xdl_fp8_v3.cpp)
|
|
add_example_dependencies(example_gemm_xdl example_gemm_xdl_fp8_v3)
|
|
add_example_executable(example_gemm_xdl_fp16_fp8_v3 gemm_xdl_fp16_fp8_v3.cpp)
|
|
add_example_dependencies(example_gemm_xdl example_gemm_xdl_fp16_fp8_v3)
|
|
|
|
add_example_executable(example_gemm_xdl_wavelet_fp16 gemm_xdl_wavelet_fp16.cpp)
|
|
add_example_dependencies(example_gemm_xdl example_gemm_xdl_wavelet_fp16)
|
|
|
|
add_example_executable(example_gemm_xdl_skip_b_lds_fp16 gemm_xdl_skip_b_lds_fp16.cpp)
|
|
add_example_dependencies(example_gemm_xdl example_gemm_xdl_skip_b_lds_fp16)
|
|
|
|
add_example_executable(example_gemm_xdl_bf16 gemm_xdl_bf16.cpp)
|
|
add_example_dependencies(example_gemm_xdl example_gemm_xdl_bf16)
|
|
|
|
add_example_executable(example_gemm_xdl_bf16_rtn gemm_xdl_bf16_rtn.cpp)
|
|
add_example_dependencies(example_gemm_xdl example_gemm_xdl_bf16_rtn)
|
|
|
|
add_example_executable(example_gemm_xdl_int8 gemm_xdl_int8.cpp)
|
|
add_example_dependencies(example_gemm_xdl example_gemm_xdl_int8)
|
|
|
|
if(USE_BITINT_EXTENSION_INT4)
|
|
add_example_executable(example_gemm_xdl_int4 gemm_xdl_int4.cpp)
|
|
add_example_dependencies(example_gemm_xdl example_gemm_xdl_int4)
|
|
endif(USE_BITINT_EXTENSION_INT4)
|
|
|
|
add_example_executable(example_gemm_xdl_fp64 gemm_xdl_fp64.cpp)
|
|
add_example_dependencies(example_gemm_xdl example_gemm_xdl_fp64)
|
|
|
|
add_example_executable(example_gemm_xdl_streamk gemm_xdl_streamk.cpp)
|
|
|
|
list(APPEND gpu_list gfx90a gfx940 gfx941 gfx942)
|
|
set(target 0)
|
|
foreach(gpu IN LISTS GPU_TARGETS)
|
|
if(gpu IN_LIST gpu_list AND target EQUAL 0)
|
|
add_example_executable(example_gemm_xdl_lds_direct_load_fp32 gemm_xdl_lds_direct_load_fp32.cpp)
|
|
add_example_dependencies(example_gemm_xdl example_gemm_xdl_lds_direct_load_fp32)
|
|
|
|
add_example_executable(example_gemm_xdl_lds_direct_load_fp16 gemm_xdl_lds_direct_load_fp16.cpp)
|
|
add_example_dependencies(example_gemm_xdl example_gemm_xdl_lds_direct_load_fp16)
|
|
set(target 1)
|
|
endif()
|
|
endforeach()
|
|
|
|
add_example_executable(example_gemm_xdl_fp8 gemm_xdl_fp8.cpp)
|
|
add_example_dependencies(example_gemm_xdl example_gemm_xdl_fp8)
|
|
|
|
add_example_executable(example_gemm_xdl_fp8_bf8 gemm_xdl_fp8_bf8.cpp)
|
|
add_example_dependencies(example_gemm_xdl example_gemm_xdl_fp8_bf8)
|
|
|
|
add_example_executable(example_gemm_xdl_fp16_fp8 gemm_xdl_fp16_fp8.cpp)
|
|
add_example_dependencies(example_gemm_xdl example_gemm_xdl_fp16_fp8)
|
|
|
|
add_custom_target(example_gemm_wmma)
|
|
add_example_executable(example_gemm_wmma_fp16 gemm_wmma_fp16.cpp)
|
|
add_example_dependencies(example_gemm_wmma example_gemm_wmma_fp16)
|