Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
6 changes: 5 additions & 1 deletion mlir/test/common_utils/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,18 @@ def get_arch_features(arch: str):
arch_features = None
support_mfma = False
support_wmma = False
support_accel_fp8 = False
major = chip_name[:-2]
minor = chip_name[-2:]
if major == 'gfx9':
if minor in ['08', '0a']:
arch_features = 'mfma|dot|atomic_add|atomic_add_f16'
elif minor == '42':
arch_features = 'mfma|dot|atomic_add|atomic_add_f16|direct_to_lds_32b'
support_accel_fp8 = True
elif minor == '50':
arch_features = 'mfma|dot|atomic_add|atomic_add_f16|atomic_add_bf16|direct_to_lds_32b|direct_to_lds_128b|lds_transpose_load'
support_accel_fp8 = True
elif minor == '06':
arch_features = 'dot'
else:
Expand All @@ -35,13 +38,14 @@ def get_arch_features(arch: str):
arch_features = 'dot|atomic_add|atomic_fmax_f32|wmma'
elif major == 'gfx12':
arch_features = 'dot|atomic_add|atomic_add_f16|atomic_add_bf16|atomic_fmax_f32|wmma'
support_accel_fp8 = True
if arch_features and 'mfma' in arch_features:
support_mfma = True
pass
elif arch_features and 'wmma' in arch_features:
support_wmma = True
pass
return arch_features, support_mfma, support_wmma
return arch_features, support_mfma, support_wmma, support_accel_fp8


def hip_check(call_result):
Expand Down
7 changes: 4 additions & 3 deletions mlir/test/e2e/AttentionNonPowerOfTwoTileSize.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
directory = "AttentionNonPowerOfTwoTileSize"
prefix = "rocmlir-gen"
suffix = "--operation attention --arch %arch -pv %random_data -rand_min 0 -rand_max 1 -rand_type float %rocmlir_gen_flags -relDiff_threshold 0.3 -absDiff_threshold 0.3 -RMS_threshold 0.15 | rocmlir-driver -c | mlir-runner -O2 --shared-libs=%linalg_test_lib_dir/libmlir_rocm_runtime%shlibext,%conv_validation_wrapper_library_dir/libconv-validation-wrappers%shlibext,%linalg_test_lib_dir/libmlir_runner_utils%shlibext,%linalg_test_lib_dir/libmlir_float16_utils%shlibext --entry-point-result=void | FileCheck %s --check-prefix="
suffix = "--operation attention --arch %arch -pv %random_data -rand_min 0 -rand_max 1 -rand_type float %rocmlir_gen_flags -relDiff_threshold 0.5 -absDiff_threshold 0.5 -RMS_threshold 0.3 | rocmlir-driver -c | mlir-runner -O2 --shared-libs=%linalg_test_lib_dir/libmlir_rocm_runtime%shlibext,%conv_validation_wrapper_library_dir/libconv-validation-wrappers%shlibext,%linalg_test_lib_dir/libmlir_runner_utils%shlibext,%linalg_test_lib_dir/libmlir_float16_utils%shlibext --entry-point-result=void | FileCheck %s --check-prefix="

[[axis]]
name = "t"
Expand Down Expand Up @@ -50,9 +50,10 @@ config = "-seq_len_q 128 -seq_len_k 27 -head_dim_qk 64 -head_dim_v 32 --with-att
[[suite.test]]
config = "-seq_len_q 1 -seq_len_k 384 -head_dim_qk 64 -head_dim_v 64 --with-attn-scale --with-attn-bias"

# Currently disabled until https://github.com/ROCm/rocMLIR-internal/issues/2173 is fixed
# causal
[[suite.test]]
config = "-seq_len_q 384 -seq_len_k 384 -head_dim_qk 64 -head_dim_v 64 -causal --with-attn-scale --with-attn-bias"
#[[suite.test]]
#config = "-seq_len_q 384 -seq_len_k 384 -head_dim_qk 64 -head_dim_v 64 -causal --with-attn-scale --with-attn-bias"

# GQA + KV Cache batch=3 + return LSE
[[suite.test]]
Expand Down
3 changes: 3 additions & 0 deletions mlir/test/e2e/GemmVariantsNonPowerOfTwoTileSize.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
if not (config.arch_support_mfma or config.arch_support_wmma):
config.unsupported = True

2 changes: 1 addition & 1 deletion mlir/test/e2e/GemmVariantsNonPowerOfTwoTileSize.toml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ prefix = "--transC="

[[axis]]
name = "data type"
values = ["f16", "bf16", "i8", "fp8_fp8"]
values = ["f16", "bf16", "i8"]
prefix = "-t "

[[axis]]
Expand Down
6 changes: 6 additions & 0 deletions mlir/test/e2e/GemmVariantsNonPowerOfTwoTileSizeFp8.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
if not (config.arch_support_mfma or config.arch_support_wmma):
config.unsupported = True

if not config.arch_support_accel_fp8:
config.unsupported = True

38 changes: 38 additions & 0 deletions mlir/test/e2e/GemmVariantsNonPowerOfTwoTileSizeFp8.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
directory = "GemmVariantsNonPowerOfTwoTileSize"
prefix = "rocmlir-gen"
suffix = "--operation gemm -t fp8_fp8 --arch %arch %pv %random_data %rocmlir_gen_flags | rocmlir-driver -c | mlir-runner -O2 --shared-libs=%linalg_test_lib_dir/libmlir_rocm_runtime%shlibext,%conv_validation_wrapper_library_dir/libconv-validation-wrappers%shlibext,%linalg_test_lib_dir/libmlir_runner_utils%shlibext,%linalg_test_lib_dir/libmlir_float16_utils%shlibext --entry-point-result=void | FileCheck %s --check-prefix="

[[axis]]
name = "transA"
values = ["true", "false"]
prefix = "--transA="

[[axis]]
name = "transB"
values = ["true", "false"]
prefix = "--transB="

[[axis]]
name = "transC"
values = ["true", "false"]
prefix = "--transC="

[[axis]]
name = "perf_config"
values = ["v4:96,96,8,48,48,16,8,1,1,2,1,1", "v4:192,96,8,96,48,16,8,1,1,2,1,1"]
prefix = "--perf_config "

## Gemm variants
[[suite]]
name = "gemm_variants_non_power_of_two_tile_size"

[[suite.test]]
config = "-g 3 -m 1024 -k 769 -n 1024"

[[suite.test]]
config = "-g 1 -m 1024 -k 769 -n 1024"

# Let's make sure the very silly thing works
[[suite.test]]
config = "-g 1 -m 1 -k 1 -n 1"

3 changes: 2 additions & 1 deletion mlir/test/e2e/lit.site.cfg.py.in
Original file line number Diff line number Diff line change
Expand Up @@ -47,12 +47,13 @@ config.arch = ""
config.features = None
config.arch_support_mfma = False
config.arch_support_wmma = False
config.arch_support_accel_fp8 = False
if config.rocm_path:
try:
agents = get_agents()
config.arch = ','.join(agents)
for x in agents:
config.features, config.arch_support_mfma, config.arch_support_wmma = get_arch_features(x)
config.features, config.arch_support_mfma, config.arch_support_wmma, config.arch_support_accel_fp8 = get_arch_features(x)
config.substitutions.append(('%features', config.features))

# Check other features here
Expand Down
3 changes: 2 additions & 1 deletion mlir/test/lit.site.cfg.py.in
Original file line number Diff line number Diff line change
Expand Up @@ -77,14 +77,15 @@ config.no_AMD_GPU = False
config.arch = ""
config.arch_support_mfma = False
config.arch_support_wmma = False
config.arch_support_accel_fp8 = False
config.features = None
if config.rocm_path:
try:
agents = get_agents()
config.arch = ','.join(agents)
for x in agents:
if not config.features:
config.features, config.arch_support_mfma, config.arch_support_wmma = get_arch_features(x)
config.features, config.arch_support_mfma, config.arch_support_wmma, config.arch_support_accel_fp8 = get_arch_features(x)
config.substitutions.append(('%features', config.features))
if not config.arch:
config.no_AMD_GPU = True
Expand Down