|
|
|
|
@@ -1,84 +1,93 @@
|
|
|
|
|
add_instance_library(device_gemm_instance
|
|
|
|
|
device_gemm_dl_f16_f16_f16_km_kn_mn_instance.cpp
|
|
|
|
|
device_gemm_dl_f16_f16_f16_km_kn_mn_irregular_instance.cpp
|
|
|
|
|
device_gemm_dl_f16_f16_f16_km_nk_mn_instance.cpp
|
|
|
|
|
device_gemm_dl_f16_f16_f16_km_nk_mn_irregular_instance.cpp
|
|
|
|
|
device_gemm_dl_f16_f16_f16_mk_kn_mn_instance.cpp
|
|
|
|
|
device_gemm_dl_f16_f16_f16_mk_kn_mn_irregular_instance.cpp
|
|
|
|
|
device_gemm_dl_f16_f16_f16_mk_nk_mn_instance.cpp
|
|
|
|
|
device_gemm_dl_f16_f16_f16_mk_nk_mn_irregular_instance.cpp
|
|
|
|
|
device_gemm_dl_f32_f32_f32_km_kn_mn_instance.cpp
|
|
|
|
|
device_gemm_dl_f32_f32_f32_km_nk_mn_instance.cpp
|
|
|
|
|
device_gemm_dl_f32_f32_f32_mk_kn_mn_instance.cpp
|
|
|
|
|
device_gemm_dl_f32_f32_f32_mk_nk_mn_instance.cpp
|
|
|
|
|
device_gemm_dl_i8_i8_i8_km_kn_mn_instance.cpp
|
|
|
|
|
device_gemm_dl_i8_i8_i8_km_kn_mn_irregular_instance.cpp
|
|
|
|
|
device_gemm_dl_i8_i8_i8_km_nk_mn_instance.cpp
|
|
|
|
|
device_gemm_dl_i8_i8_i8_km_nk_mn_irregular_instance.cpp
|
|
|
|
|
device_gemm_dl_i8_i8_i8_mk_kn_mn_instance.cpp
|
|
|
|
|
device_gemm_dl_i8_i8_i8_mk_kn_mn_irregular_instance.cpp
|
|
|
|
|
device_gemm_dl_i8_i8_i8_mk_nk_mn_instance.cpp
|
|
|
|
|
device_gemm_dl_i8_i8_i8_mk_nk_mn_irregular_instance.cpp
|
|
|
|
|
device_gemm_xdl_c_shuffle_2_stage_f16_f16_f16_mk_nk_mn_instance.cpp
|
|
|
|
|
device_gemm_xdl_c_shuffle_bf16_bf16_bf16_km_kn_mn_instance.cpp
|
|
|
|
|
device_gemm_xdl_c_shuffle_bf16_bf16_bf16_km_nk_mn_instance.cpp
|
|
|
|
|
device_gemm_xdl_c_shuffle_bf16_bf16_bf16_mk_kn_mn_instance.cpp
|
|
|
|
|
device_gemm_xdl_c_shuffle_bf16_bf16_bf16_mk_nk_mn_instance.cpp
|
|
|
|
|
device_gemm_xdl_c_shuffle_f16_f16_f16_km_kn_mn_instance.cpp
|
|
|
|
|
device_gemm_xdl_c_shuffle_f16_f16_f16_km_nk_mn_instance.cpp
|
|
|
|
|
device_gemm_xdl_c_shuffle_f16_f16_f16_mk_kn_mn_instance.cpp
|
|
|
|
|
device_gemm_xdl_c_shuffle_f16_f16_f16_mk_nk_mn_instance.cpp
|
|
|
|
|
device_gemm_xdl_c_shuffle_f32_f32_f32_km_kn_mn_instance.cpp
|
|
|
|
|
device_gemm_xdl_c_shuffle_f32_f32_f32_km_nk_mn_instance.cpp
|
|
|
|
|
device_gemm_xdl_c_shuffle_f32_f32_f32_mk_kn_mn_instance.cpp
|
|
|
|
|
device_gemm_xdl_c_shuffle_f32_f32_f32_mk_nk_mn_instance.cpp
|
|
|
|
|
device_gemm_xdl_c_shuffle_i8_i8_i8_km_kn_mn_instance.cpp
|
|
|
|
|
device_gemm_xdl_c_shuffle_i8_i8_i8_km_nk_mn_instance.cpp
|
|
|
|
|
device_gemm_xdl_c_shuffle_i8_i8_i8_mk_kn_mn_instance.cpp
|
|
|
|
|
device_gemm_xdl_c_shuffle_i8_i8_i8_mk_nk_mn_instance.cpp
|
|
|
|
|
set(GEMM_INSTANCES)
|
|
|
|
|
if(DTYPES MATCHES "fp64" OR NOT DEFINED DTYPES)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_f64_f64_f64_mk_kn_mn_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_f64_f64_f64_mk_nk_mn_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_f64_f64_f64_km_kn_mn_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_f64_f64_f64_km_nk_mn_instance.cpp)
|
|
|
|
|
endif()
|
|
|
|
|
if(DTYPES MATCHES "fp32" OR NOT DEFINED DTYPES)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_f32_f32_f32_mk_kn_mn_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_f32_f32_f32_mk_nk_mn_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_f32_f32_f32_km_kn_mn_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_f32_f32_f32_km_nk_mn_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_c_shuffle_f32_f32_f32_mk_kn_mn_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_c_shuffle_f32_f32_f32_mk_nk_mn_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_c_shuffle_f32_f32_f32_km_kn_mn_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_c_shuffle_f32_f32_f32_km_nk_mn_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_dl_f32_f32_f32_mk_kn_mn_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_dl_f32_f32_f32_mk_nk_mn_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_dl_f32_f32_f32_km_kn_mn_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_dl_f32_f32_f32_km_nk_mn_instance.cpp)
|
|
|
|
|
endif()
|
|
|
|
|
if(DTYPES MATCHES "fp16" OR NOT DEFINED DTYPES)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_c_shuffle_f16_f16_f16_mk_kn_mn_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_c_shuffle_f16_f16_f16_mk_nk_mn_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_c_shuffle_f16_f16_f16_km_kn_mn_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_c_shuffle_f16_f16_f16_km_nk_mn_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_c_shuffle_2_stage_f16_f16_f16_mk_nk_mn_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_dl_f16_f16_f16_mk_kn_mn_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_dl_f16_f16_f16_mk_kn_mn_irregular_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_dl_f16_f16_f16_mk_nk_mn_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_dl_f16_f16_f16_mk_nk_mn_irregular_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_dl_f16_f16_f16_km_kn_mn_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_dl_f16_f16_f16_km_kn_mn_irregular_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_dl_f16_f16_f16_km_nk_mn_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_dl_f16_f16_f16_km_nk_mn_irregular_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_f16_f16_f16/km_kn_mn_add_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_f16_f16_f16/km_kn_mn_default_pipeline_v1_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_f16_f16_f16/km_kn_mn_default_pipeline_v2_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_f16_f16_f16/km_kn_mn_default_pipeline_v2_opt_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_f16_f16_f16/km_kn_mn_interwave_pipeline_v1_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_f16_f16_f16/km_kn_mn_irregular_default_pipeline_v1_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_f16_f16_f16/km_kn_mn_irregular_default_pipeline_v2_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_f16_f16_f16/km_kn_mn_irregular_interwave_pipeline_v1_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_f16_f16_f16/km_nk_mn_add_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_f16_f16_f16/km_nk_mn_default_pipeline_v1_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_f16_f16_f16/km_nk_mn_default_pipeline_v2_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_f16_f16_f16/km_nk_mn_default_pipeline_v2_opt_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_f16_f16_f16/km_nk_mn_interwave_pipeline_v1_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_f16_f16_f16/km_nk_mn_irregular_default_pipeline_v1_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_f16_f16_f16/km_nk_mn_irregular_default_pipeline_v2_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_f16_f16_f16/km_nk_mn_irregular_interwave_pipeline_v1_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_f16_f16_f16/mk_kn_mn_add_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_f16_f16_f16/mk_kn_mn_default_pipeline_v1_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_f16_f16_f16/mk_kn_mn_default_pipeline_v2_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_f16_f16_f16/mk_kn_mn_default_pipeline_v2_opt_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_f16_f16_f16/mk_kn_mn_interwave_pipeline_v1_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_f16_f16_f16/mk_kn_mn_irregular_default_pipeline_v1_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_f16_f16_f16/mk_kn_mn_irregular_default_pipeline_v2_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_f16_f16_f16/mk_kn_mn_irregular_interwave_pipeline_v1_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_f16_f16_f16/mk_nk_mn_add_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_f16_f16_f16/mk_nk_mn_default_pipeline_v1_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_f16_f16_f16/mk_nk_mn_default_pipeline_v2_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_f16_f16_f16/mk_nk_mn_default_pipeline_v2_opt_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_f16_f16_f16/mk_nk_mn_interwave_pipeline_v1_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_f16_f16_f16/mk_nk_mn_irregular_default_pipeline_v1_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_f16_f16_f16/mk_nk_mn_irregular_default_pipeline_v2_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_f16_f16_f16/mk_nk_mn_irregular_interwave_pipeline_v1_instance.cpp)
|
|
|
|
|
endif()
|
|
|
|
|
if(DTYPES MATCHES "int8" OR NOT DEFINED DTYPES)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_dl_i8_i8_i8_mk_kn_mn_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_dl_i8_i8_i8_mk_kn_mn_irregular_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_dl_i8_i8_i8_mk_nk_mn_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_dl_i8_i8_i8_mk_nk_mn_irregular_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_dl_i8_i8_i8_km_kn_mn_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_dl_i8_i8_i8_km_kn_mn_irregular_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_dl_i8_i8_i8_km_nk_mn_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_dl_i8_i8_i8_km_nk_mn_irregular_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_c_shuffle_i8_i8_i8_mk_kn_mn_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_c_shuffle_i8_i8_i8_mk_nk_mn_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_c_shuffle_i8_i8_i8_km_kn_mn_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_c_shuffle_i8_i8_i8_km_nk_mn_instance.cpp)
|
|
|
|
|
endif()
|
|
|
|
|
if(DTYPES MATCHES "bf16" OR NOT DEFINED DTYPES)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_c_shuffle_bf16_bf16_bf16_mk_kn_mn_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_c_shuffle_bf16_bf16_bf16_mk_nk_mn_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_c_shuffle_bf16_bf16_bf16_km_kn_mn_instance.cpp)
|
|
|
|
|
list(APPEND GEMM_INSTANCES device_gemm_xdl_c_shuffle_bf16_bf16_bf16_km_nk_mn_instance.cpp)
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
device_gemm_xdl_f16_f16_f16/km_kn_mn_add_instance.cpp
|
|
|
|
|
device_gemm_xdl_f16_f16_f16/km_kn_mn_default_pipeline_v1_instance.cpp
|
|
|
|
|
device_gemm_xdl_f16_f16_f16/km_kn_mn_default_pipeline_v2_instance.cpp
|
|
|
|
|
device_gemm_xdl_f16_f16_f16/km_kn_mn_default_pipeline_v2_opt_instance.cpp
|
|
|
|
|
device_gemm_xdl_f16_f16_f16/km_kn_mn_interwave_pipeline_v1_instance.cpp
|
|
|
|
|
device_gemm_xdl_f16_f16_f16/km_kn_mn_irregular_default_pipeline_v1_instance.cpp
|
|
|
|
|
device_gemm_xdl_f16_f16_f16/km_kn_mn_irregular_default_pipeline_v2_instance.cpp
|
|
|
|
|
device_gemm_xdl_f16_f16_f16/km_kn_mn_irregular_interwave_pipeline_v1_instance.cpp
|
|
|
|
|
device_gemm_xdl_f16_f16_f16/km_nk_mn_add_instance.cpp
|
|
|
|
|
device_gemm_xdl_f16_f16_f16/km_nk_mn_default_pipeline_v1_instance.cpp
|
|
|
|
|
device_gemm_xdl_f16_f16_f16/km_nk_mn_default_pipeline_v2_instance.cpp
|
|
|
|
|
device_gemm_xdl_f16_f16_f16/km_nk_mn_default_pipeline_v2_opt_instance.cpp
|
|
|
|
|
device_gemm_xdl_f16_f16_f16/km_nk_mn_interwave_pipeline_v1_instance.cpp
|
|
|
|
|
device_gemm_xdl_f16_f16_f16/km_nk_mn_irregular_default_pipeline_v1_instance.cpp
|
|
|
|
|
device_gemm_xdl_f16_f16_f16/km_nk_mn_irregular_default_pipeline_v2_instance.cpp
|
|
|
|
|
device_gemm_xdl_f16_f16_f16/km_nk_mn_irregular_interwave_pipeline_v1_instance.cpp
|
|
|
|
|
device_gemm_xdl_f16_f16_f16/mk_kn_mn_add_instance.cpp
|
|
|
|
|
device_gemm_xdl_f16_f16_f16/mk_kn_mn_default_pipeline_v1_instance.cpp
|
|
|
|
|
device_gemm_xdl_f16_f16_f16/mk_kn_mn_default_pipeline_v2_instance.cpp
|
|
|
|
|
device_gemm_xdl_f16_f16_f16/mk_kn_mn_default_pipeline_v2_opt_instance.cpp
|
|
|
|
|
device_gemm_xdl_f16_f16_f16/mk_kn_mn_interwave_pipeline_v1_instance.cpp
|
|
|
|
|
device_gemm_xdl_f16_f16_f16/mk_kn_mn_irregular_default_pipeline_v1_instance.cpp
|
|
|
|
|
device_gemm_xdl_f16_f16_f16/mk_kn_mn_irregular_default_pipeline_v2_instance.cpp
|
|
|
|
|
device_gemm_xdl_f16_f16_f16/mk_kn_mn_irregular_interwave_pipeline_v1_instance.cpp
|
|
|
|
|
device_gemm_xdl_f16_f16_f16/mk_nk_mn_add_instance.cpp
|
|
|
|
|
device_gemm_xdl_f16_f16_f16/mk_nk_mn_default_pipeline_v1_instance.cpp
|
|
|
|
|
device_gemm_xdl_f16_f16_f16/mk_nk_mn_default_pipeline_v2_instance.cpp
|
|
|
|
|
device_gemm_xdl_f16_f16_f16/mk_nk_mn_default_pipeline_v2_opt_instance.cpp
|
|
|
|
|
device_gemm_xdl_f16_f16_f16/mk_nk_mn_interwave_pipeline_v1_instance.cpp
|
|
|
|
|
device_gemm_xdl_f16_f16_f16/mk_nk_mn_irregular_default_pipeline_v1_instance.cpp
|
|
|
|
|
device_gemm_xdl_f16_f16_f16/mk_nk_mn_irregular_default_pipeline_v2_instance.cpp
|
|
|
|
|
device_gemm_xdl_f16_f16_f16/mk_nk_mn_irregular_interwave_pipeline_v1_instance.cpp
|
|
|
|
|
|
|
|
|
|
device_gemm_xdl_f32_f32_f32_km_kn_mn_instance.cpp
|
|
|
|
|
device_gemm_xdl_f32_f32_f32_km_nk_mn_instance.cpp
|
|
|
|
|
device_gemm_xdl_f32_f32_f32_mk_kn_mn_instance.cpp
|
|
|
|
|
device_gemm_xdl_f32_f32_f32_mk_nk_mn_instance.cpp
|
|
|
|
|
device_gemm_xdl_f64_f64_f64_km_kn_mn_instance.cpp
|
|
|
|
|
device_gemm_xdl_f64_f64_f64_km_nk_mn_instance.cpp
|
|
|
|
|
device_gemm_xdl_f64_f64_f64_mk_kn_mn_instance.cpp
|
|
|
|
|
device_gemm_xdl_f64_f64_f64_mk_nk_mn_instance.cpp
|
|
|
|
|
)
|
|
|
|
|
add_instance_library(device_gemm_instance ${GEMM_INSTANCES})
|
|
|
|
|
|
|
|
|
|
set(ENABLE_PIPELINE_V2_OPT OFF)
|
|
|
|
|
|
|
|
|
|
|