mirror of
https://github.com/ROCm/composable_kernel.git
synced 2026-05-25 15:24:39 +00:00
* Add Gemm fp8xint4 example and kernel, function pass.
* Init Gemm_fp8xint4 Bpreshuffle
* Added gemm_fp8xint4_Bpreshuffle files, function not checked yet
* General fix.
* fp8xint4 bpreshuffle function pass
* fix.
* init b preshuffle dequant in VGPR.
* fix bug, function pass.
* move b thread dequant copy to blockwise.
* fix bug, function now passes.
* modified the tile size to 256, 128x128x128.
* fixed a bug.
* Initial int4 moe, compile pass, function not check.
* fix bug in moe_gemm1.cpp, now function pass.
* test expert = 8 and function pass.
* Added moe_pk_i4_gemm2, function pass.
* Added b preshuffle pipeline v3 support.
* fixed merge issue. fp8xint4 and fp8xint4_bpreshuffle function pass.
* Split the blockwise pipeline for fp8xint4.
* commit missing files
* opt gemm2 to 2x2 wave
* fix swizzle = false
* update int4 moe with latest input changes.
* update tile size.
* enable pipeline v3.
* fix nswizzle = true
* commit a version for compiler debug.
* Updated transfer_v3r1_gather to support pk_i4_t type.
* for int4 moe2 for type_convert support.
* remove some values between mfma instructions.
* fix int4 moe
* Updated transfer_v3r1_gather to support pk_i4_t type.
* i4 support lds multiple shuffle
* fixed int4 moe tflops calculation.
* Modified CshuffleCShuffleMXdlPerWavePerShuffle to 1 to suit C multiple shuffle
* updated gemm2.
* change int4 moe example names
* fix and format code.
* format.
* format codes.
* update fp8xint4 example tile size.
* add <unordered_map> header
* fixed.
* format.
* Added conditional compilation for int4 -> fp8 conversion kernels
---------
Co-authored-by: mtgu0705 <mtgu@amd.com>
Co-authored-by: coderfeli <coderfeli@163.com>
[ROCm/composable_kernel commit: 0db7c8f0b2]
106 lines
4.9 KiB
CMake
Executable File
106 lines
4.9 KiB
CMake
Executable File
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_streamk_v3 gemm_xdl_fp16_streamk_v3.cpp)
|
|
add_example_dependencies(example_gemm_xdl example_gemm_xdl_fp16_streamk_v3)
|
|
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_executable(example_gemm_xdl_fp16_pk_i4_v3 gemm_xdl_fp16_pk_i4_v3.cpp)
|
|
add_example_executable(example_gemm_xdl_fp16_pk_i4_v3_b_scale gemm_xdl_fp16_pk_i4_v3_b_scale.cpp)
|
|
add_example_executable(example_gemm_xdl_bf16_pk_i4_v3 gemm_xdl_bf16_pk_i4_v3.cpp)
|
|
add_example_dependencies(example_gemm_xdl example_gemm_xdl_fp16_fp8_v3)
|
|
add_example_executable(example_gemm_xdl_bf16_v3 gemm_xdl_bf16_v3.cpp)
|
|
add_example_dependencies(example_gemm_xdl example_gemm_xdl_bf16_v3)
|
|
|
|
list(APPEND gpu_list gfx942 gfx950)
|
|
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_fp8_pk_i4_bpreshuffle_v3 gemm_xdl_fp8_pk_i4_bpreshuffle_v3.cpp)
|
|
add_example_executable(example_gemm_xdl_fp8_pk_i4_v3 gemm_xdl_fp8_pk_i4_v3.cpp)
|
|
set(target 1)
|
|
endif()
|
|
endforeach()
|
|
|
|
add_example_executable(example_gemm_xdl_bf16_streamk_v3 gemm_xdl_bf16_streamk_v3.cpp)
|
|
add_example_dependencies(example_gemm_xdl example_gemm_xdl_bf16_streamk_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_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 gfx942 gfx950)
|
|
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_fp8_streamk_v3 gemm_xdl_fp8_streamk_v3.cpp)
|
|
add_example_dependencies(example_gemm_xdl example_gemm_xdl_fp8_streamk_v3)
|
|
|
|
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)
|
|
add_example_executable(example_gemm_wmma_bf16 gemm_wmma_bf16.cpp)
|
|
add_example_dependencies(example_gemm_wmma example_gemm_wmma_bf16)
|
|
add_example_executable(example_gemm_wmma_int8 gemm_wmma_int8.cpp)
|
|
add_example_dependencies(example_gemm_wmma example_gemm_wmma_int8)
|