Files
TheRock/rocm-libraries/projects/hipblaslt/clients/tests/data/matmul_gtest.yaml
T
derek.holloway 7502bf64a4
CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
Flatten subprojects into a single base monorepo
2026-09-02 16:34:47 -07:00

3331 lines
80 KiB
YAML
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
include: hipblaslt_common.yaml
include: known_bugs.yaml
include: matmul_common.yaml
Definitions:
- &alpha_beta_range
- { alpha: 5, beta: 0 }
- { alpha: 0, beta: 3 }
- { alpha: 1, beta: 3 }
- { alpha: 1, beta: 1 }
- &complex_alpha_beta_range
- { alpha: 1, alphai: 0, beta: 0, betai: 0 } # Standard
- { alpha: 0, alphai: 0, beta: 1, betai: 0 } # Pure C (Alpha Zero)
- { alpha: 0, alphai: 1, beta: 0, betai: 0 } # Imaginary Alpha
- { alpha: 1, alphai: 0, beta: 0, betai: 1 } # Imaginary Beta
- { alpha: 0, alphai: 2, beta: 0, betai: 0 } # Optimization Trap (Real=0)
- { alpha: 1, alphai: 1, beta: 1, betai: -1 } # Cancellation/Signs
- { alpha: 2, alphai: 3, beta: 4, betai: 5 } # General
- &complex_alpha_beta_range_small
- { alpha: 1, alphai: 0, beta: 0, betai: 1 } # Imaginary Beta
- { alpha: 2, alphai: 3, beta: 4, betai: 5 } # General
- &alpha_beta_range_small
- { alpha: 2, alphai: 2, beta: -1.0, betai: 2.0 }
- &transA_transB_range
- { transA: N, transB: N }
- { transA: N, transB: T }
- { transA: T, transB: N }
- { transA: T, transB: T }
- &complex_transA_transB_range
- { transA: N, transB: N }
- { transA: N, transB: T }
- { transA: T, transB: N }
- { transA: T, transB: T }
- { transA: C, transB: N }
- { transA: N, transB: C }
- { transA: C, transB: C }
- &complex_transA_transB_range_small
- { transA: T, transB: C }
- { transA: C, transB: N }
- { transA: C, transB: C }
- &deepbench_alpha_beta_range
- { alpha: 1, beta: 0 }
- { alpha: 1, beta: 1 }
- &integer_exact_alpha_beta
- { alpha: 2.0, beta: 0.0 }
- { alpha: 2.0, beta: -2.0 }
- &deepbench_transA_transB_range
- { transA: N, transB: N }
- { transA: N, transB: T }
- { transA: T, transB: N }
- &ldd_transA_transB_range
- { transA: N, transB: N }
- { transA: N, transB: T }
- { transA: T, transB: N }
- { transA: T, transB: T }
- &conjugate_transA_transB_range
- { transA: T, transB: C }
- { transA: C, transB: T }
- { transA: N, transB: C }
- { transA: C, transB: N }
- { transA: C, transB: C }
- &swizzleA_strideA_support
- {}
- { stride_a: 0 }
- &swizzleB_strideB_support
- {}
- { stride_b: 0 }
Tests:
- name: matmul_bad_arg
category: pre_checkin
function:
- matmul_bad_arg: *real_precisions
transA: N
transB: N
fortran: [ false, true ]
# Added this test to mimic the rocblas test quick_gemm_batched_bad_arg_f32_r_bad_arg_F
# which passes alpha, A and B as 0 but beta as non-zero with valid C and D.
- name: matmul_general_batch_bad_arg
category: pre_checkin
function:
- matmul_mul: *real_precisions
transA: N
transB: N
batch_count: 3
batch_mode: 1
alpha: 0
beta: 1
matrix_size:
- { M: 128, N: 128, K: 0 }
# Tests confirm no NaN propagation when alpha = 0, 2 and beta = 0. Value .NaN is converted into zero
- {name: alpha_beta_zero_NaN, category: pre_checkin, precision: *real_precisions,
function: matmul, transA: N, transB: N, M: 256, N: 128, K: 64, alpha: [ .NaN, 2 ], beta: [ .NaN, 2 ] }
# ROCM-1545: hipblasLtMatmul with INF inputs and computeType HIPBLAS_COMPUTE_32F_FAST_TF32
# returns NaN on gfx950 (MI355). This test expects correct behavior (no NaN in output).
- {name: matmul_tf32_inf_ROCM1545, category: pre_checkin, precision: *xf32_precision,
function: matmul, transA: N, transB: N, M: 64, N: 64, K: 64, alpha: 1.0, beta: 0.0,
initialization: inf }
# Smoke: norm_dist_one_special (Gaussian fill + one FP special); batch_count 2 exercises packed strided buffers.
- {name: matmul_norm_dist_one_special_smoke, category: quick, precision: *real_precisions,
function: matmul, transA: N, transB: N, M: 32, N: 32, K: 32, alpha: 1.0, beta: 0.0,
batch_count: 2, initialization: norm_dist_one_special }
- name: matmul_one
category: quick
function:
matmul: *real_precisions
matrix_size: *one_matrix_size_range
transA_transB: *transA_transB_range
alpha: [ 0.0, 1.0 ]
beta: [ 0.0, 2.0 ]
- name: matmul_small
category: quick
function:
- matmul: *real_precisions
- matmul: *real_precisions_gemm_only
matrix_size: *small_matrix_size_range
transA_transB: *transA_transB_range
alpha_beta: *alpha_beta_range
c_equal_d: [false, true]
batch_mode: [0, 1]
batch_count: [1, 3]
# FP16 I/O + FP32 compute: full-matrix probe for internal FP32 accumulation (rocBLAS-style near-max A, ±2 pairs in B).
# Mirrors matmul_integer_exact_* matrix_size / category / batch / gpu_arch; NN only (probe does not support transposes).
# Odd K skipped at runtime.
- name: matmul_fp16_accumulator_probe_one
category: quick
function:
matmul: *hpa_half_precision
matrix_size: *one_matrix_size_range
transA: N
transB: N
alpha: 1.0
beta: 0.0
initialization: fp16_accumulator_probe
unit_check: 1
- name: matmul_fp16_accumulator_probe_small
category: quick
function:
matmul: *hpa_half_precision
matrix_size: *small_matrix_size_range
transA: N
transB: N
alpha: 1.0
beta: 0.0
initialization: fp16_accumulator_probe
unit_check: 1
- name: matmul_fp16_accumulator_probe_medium
category: pre_checkin
function:
matmul: *hpa_half_precision
matrix_size: *medium_matrix_size_range
transA: N
transB: N
alpha: 1.0
beta: 0.0
initialization: fp16_accumulator_probe
unit_check: 1
- name: matmul_fp16_accumulator_probe_batch_medium
category: pre_checkin
function:
matmul: *hpa_half_precision
matrix_size: *medium_matrix_size_range
transA: N
transB: N
alpha: 1.0
beta: 0.0
batch_count: 10
initialization: fp16_accumulator_probe
unit_check: 1
- name: matmul_fp16_accumulator_probe_chunk
category: pre_checkin
function:
matmul: *hpa_half_precision
matrix_size: *chunk_matrix_size_range
transA: N
transB: N
alpha: 1.0
beta: 0.0
initialization: fp16_accumulator_probe
unit_check: 1
- name: matmul_fp16_accumulator_probe_grid_limit_real
category: nightly
function:
matmul: *hpa_half_precision
matrix_size: *grid_limit_matrix_size_real
transA: N
transB: N
alpha: 1.0
beta: 0.0
initialization: fp16_accumulator_probe
unit_check: 1
gpu_arch: '120[0-1]'
- name: matmul_fp16_accumulator_probe_deepbench
category: nightly
function:
matmul: *hpa_half_precision
matrix_size: *deepbench_sizes
transA: N
transB: N
alpha: 1.0
beta: 0.0
initialization: fp16_accumulator_probe
unit_check: 1
# Integer-exact: A,C in [0,1,2], B ±[0,1,2]; alpha=2, beta in {0,-2} (D = 2 A*B or 2 A*B - 2 C). Exact GPU vs CPU.
# On gfx11, integer_exact is skipped at runtime for fp16/bf16 A only; f32/f64 still run (see testing_matmul.hpp).
# TF32x1 (f32 A+B, compute input bf16) runs only on gfx950 where solutions exist (see matmul_integer_exact_tf32x1_gfx950 below).
- name: matmul_integer_exact_one
category: quick
function:
matmul: *real_precisions
matrix_size: *one_matrix_size_range
transA_transB: *transA_transB_range
alpha_beta: *integer_exact_alpha_beta
initialization: integer_exact
unit_check: 1
- name: matmul_integer_exact_small
category: quick
function:
matmul: *real_precisions
matrix_size: *small_matrix_size_range
transA_transB: *transA_transB_range
alpha_beta: *integer_exact_alpha_beta
initialization: integer_exact
unit_check: 1
- name: matmul_integer_exact_medium
category: pre_checkin
function:
matmul: *real_precisions
matrix_size: *medium_matrix_size_range
transA_transB: *transA_transB_range
alpha_beta: *integer_exact_alpha_beta
initialization: integer_exact
unit_check: 1
- name: matmul_integer_exact_batch_medium
category: pre_checkin
function:
matmul: *real_precisions
matrix_size: *medium_matrix_size_range
transA_transB: *transA_transB_range
alpha_beta: *integer_exact_alpha_beta
batch_count: 10
initialization: integer_exact
unit_check: 1
- name: matmul_integer_exact_chunk
category: pre_checkin
function:
matmul: *real_precisions
matrix_size: *chunk_matrix_size_range
transA_transB: *transA_transB_range
alpha_beta: *integer_exact_alpha_beta
initialization: integer_exact
unit_check: 1
- name: matmul_integer_exact_grid_limit_real
category: nightly
function:
matmul: *real_precisions
matrix_size: *grid_limit_matrix_size_real
transA_transB: *transA_transB_range
alpha_beta: *integer_exact_alpha_beta
initialization: integer_exact
unit_check: 1
gpu_arch: '120[0-1]'
- name: matmul_integer_exact_grid_limit_double
category: nightly
function:
matmul: *double_precision
matrix_size: *grid_limit_matrix_size_double
transA_transB: *transA_transB_range
alpha_beta: *integer_exact_alpha_beta
initialization: integer_exact
unit_check: 1
api_method: [0, 2]
gpu_arch: '120[0-1]'
- name: matmul_integer_exact_deepbench
category: nightly
function:
- matmul: *real_precisions
- matmul: *real_precisions_gemm_only
matrix_size: *deepbench_sizes
alpha_beta: *integer_exact_alpha_beta
transA_transB: *deepbench_transA_transB_range
initialization: integer_exact
unit_check: 1
# Integer-exact + TF32x1 (f32 A+B, compute input bf16). gfx950 only. Sizes match matmul_gemm_f32_fast_bf16.
# Omit TT: TF32x1 often has no solution for both-transposed on gfx950 (CI saw 21× NO solution, all TT).
- name: matmul_integer_exact_tf32x1_gfx950
category: quick
function:
matmul: *real_precisions_tf32x1_only
matrix_size:
- { M: 128, N: 128, K: 128 }
- { M: 131, N: 131, K: 131 }
- { M: 1024, N: 1024, K: 1024 }
- { M: 1031, N: 1031, K: 1031 }
transA_transB:
- { transA: N, transB: N }
- { transA: N, transB: T }
- { transA: T, transB: N }
alpha_beta: *integer_exact_alpha_beta
initialization: integer_exact
unit_check: 1
gpu_arch: '950'
- name: matmul_conj_small
category: quick
function:
- matmul: *real_precisions
- matmul: *real_precisions_gemm_only
matrix_size: *small_matrix_size_range
transA_transB: *conjugate_transA_transB_range
alpha_beta: *alpha_beta_range_small
c_equal_d: [false, true]
- name: matmul_medium
category: pre_checkin
function:
- matmul: *real_precisions
- matmul: *real_precisions_gemm_only
matrix_size: *medium_matrix_size_range
transA_transB: *transA_transB_range
alpha_beta: *alpha_beta_range
- name: matmul_medium_complex
category: pre_checkin
function:
- matmul: *complex_precisions
matrix_size: *medium_matrix_size_range
transA_transB: *complex_transA_transB_range
alpha_beta: *complex_alpha_beta_range
gpu_arch: '9(42|50)'
- name: matmul_batch_medium
category: pre_checkin
function:
- matmul: *real_precisions
- matmul: *real_precisions_gemm_only
matrix_size: *medium_matrix_size_range
transA_transB: *transA_transB_range
alpha_beta: *alpha_beta_range
batch_count: 10
- name: matmul_batch_medium_complex
category: pre_checkin
function:
- matmul: *complex_precisions
matrix_size: *medium_matrix_size_range
transA_transB: *complex_transA_transB_range
alpha_beta: *complex_alpha_beta_range
batch_count: 10
gpu_arch: '9(42|50)'
- name: matmul_medium_HMM
category: HMM
function:
- matmul: *real_precisions
- matmul: *real_precisions_gemm_only
matrix_size: *medium_matrix_size_range
transA: [ N ]
transB: [ N ]
alpha: 1
beta: 1
HMM: true
- name: matmul_chunk
category: pre_checkin
function:
- matmul: *real_precisions
- matmul: *real_precisions_gemm_only
matrix_size: *chunk_matrix_size_range
transA_transB: *transA_transB_range
alpha: 2
beta: 3
- name: matmul_grid_limit_real
category: nightly
function:
matmul: *real_precisions
matrix_size: *grid_limit_matrix_size_real
transA_transB: *transA_transB_range
alpha: 1
beta: 0
gpu_arch: '120[0-1]'
- name: matmul_grid_limit_real_1b
category: nightly
function:
matmul: *real_precisions_1b
matrix_size: *grid_limit_matrix_size_real
transA_transB: *transA_transB_range
alpha: 1
beta: 0
gpu_arch: '120[0-1]'
- name: matmul_grid_limit_double
category: nightly
function:
matmul: *double_precision
matrix_size: *grid_limit_matrix_size_double
transA_transB: *transA_transB_range
alpha: 1
beta: 0
api_method: [0, 2]
gpu_arch: '120[0-1]'
- name: matmul_deepbench
category: nightly
function:
- matmul: *real_precisions
- matmul: *real_precisions_gemm_only
matrix_size: *deepbench_sizes
alpha_beta: *deepbench_alpha_beta_range
transA_transB: *deepbench_transA_transB_range
batch_mode: [0, 1]
batch_count: [1, 3]
- name: resnet50_fwd
category: nightly
function:
matmul: *real_precisions
transA: N
transB: N
matrix_size: *resnet50_fwd_sizes
alpha: 1
beta: 0
- name: resnet50_bwdwrw
category: nightly
function:
matmul: *real_precisions
transA: T
transB: N
matrix_size: *resnet50_bwdwrw_sizes
alpha: 1
beta: 1
- name: resnet50_bwddata
category: nightly
function:
matmul: *real_precisions
transA: N
transB: T
matrix_size: *resnet50_bwddata_sizes
alpha: 1
beta: 0
- name: inception4_fwd
category: nightly
function:
matmul: *real_precisions
transA: N
transB: N
matrix_size: *inception4_fwd_sizes
alpha: 1
beta: 0
- name: inception4_bwdwrw
category: nightly
function:
matmul: *real_precisions
transA: T
transB: N
matrix_size: *inception4_bwdwrw_sizes
alpha: 1
beta: 1
- name: inception4_bwddata
category: nightly
function:
matmul: *real_precisions
transA: N
transB: T
matrix_size: *inception4_bwddata_sizes
alpha: 1
beta: 0
- name: ctest_bwdwrw
category: nightly
function:
matmul: *real_precisions
transA: T
transB: N
alpha: 1
beta: 1
matrix_size: *ctest_bwdwrw_sizes
- name: ctest_fwd
category: nightly
function:
matmul: *real_precisions
transA: N
transB: N
alpha: 1
beta: 0
matrix_size: *ctest_fwd_sizes
- name: matmul_8
category: quick
function:
matmul: *real_precisions
M: 8
N: 8
K: 8
alpha_beta: *alpha_beta_range
transA_transB: *transA_transB_range
- name: matmul_16
category: pre_checkin
function:
matmul: *real_precisions
M: 16
K: 16
alpha_beta: *alpha_beta_range
transA_transB: *transA_transB_range
- name: matmul_16_complex
category: pre_checkin
function:
matmul: *complex_precisions
M: 16
K: 16
alpha_beta: *complex_alpha_beta_range
transA_transB: *complex_transA_transB_range
gpu_arch: '9(42|50)'
- name: matmul_24
category: pre_checkin
function:
matmul: *real_precisions
M: 24
N: 24
K: 24
alpha_beta: *alpha_beta_range
transA_transB: *transA_transB_range
- name: matmul_algo
category: pre_checkin
function:
matmul: *real_precisions
M: 32
N: 32
K: 32
alpha_beta: *alpha_beta_range
transA_transB: *transA_transB_range
matmul_algo: [ 0, 1 ]
- name: matmul_32_8_128
category: nightly
function:
matmul: *real_precisions
M: [8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 120, 128]
N: 32
K: 32
alpha_beta: *alpha_beta_range
transA_transB: *transA_transB_range
- name: matmul_32_8_128_complex
category: nightly
function:
matmul: *complex_precisions
M: [8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 120, 128]
N: 32
K: 32
alpha_beta: *complex_alpha_beta_range
transA_transB: *complex_transA_transB_range
gpu_arch: '9(42|50)'
- name: matmul_48_8_128
category: nightly
function:
matmul: *real_precisions
M: 48
N: [8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 120, 128]
K: 48
alpha_beta: *alpha_beta_range
transA_transB: *transA_transB_range
- name: matmul_64_8_128
category: nightly
function:
matmul: *real_precisions
M: 64
N: 64
K: [16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 120, 128]
alpha_beta: *alpha_beta_range
transA_transB: *transA_transB_range
- name: matmul_64_8
category: quick
function:
matmul: *real_precisions
M: 64
N: 8
K: 8
alpha_beta: *alpha_beta_range
transA_transB: *transA_transB_range
- name: matmul_8_64
category: quick
function:
matmul: *real_precisions
M: 8
N: 8
K: 64
alpha_beta: *alpha_beta_range
transA_transB: *transA_transB_range
- name: matmul_96
category: pre_checkin
function:
matmul: *real_precisions
M: 96
N: 96
K: 96
alpha_beta: *alpha_beta_range
transA_transB: *transA_transB_range
- name: matmul_128
category: pre_checkin
function:
matmul: *real_precisions
M: 128
N: 128
K: 128
alpha_beta: *alpha_beta_range
transA_transB: *transA_transB_range
- name: matmul_128_streamk
category: pre_checkin
function:
matmul: *real_precisions
M: 128
N: 128
K: 128
alpha_beta: *alpha_beta_range
transA_transB: *transA_transB_range
tensile_solution_selection_method: 2
- name: matmul_256
category: pre_checkin
function:
matmul: *real_precisions
M: 256
N: 256
K: 256
alpha_beta: *alpha_beta_range
transA_transB: *transA_transB_range
- name: matmul_256_8_16
category: pre_checkin
function:
matmul: *real_precisions
M: 256
N: 8
K: 16
alpha_beta: *alpha_beta_range
transA_transB: *transA_transB_range
- name: matmul_16_256_8
category: pre_checkin
function:
matmul: *real_precisions
M: 16
N: 256
K: 8
alpha_beta: *alpha_beta_range
transA_transB: *transA_transB_range
- name: matmul_8_16_256
category: pre_checkin
function:
matmul: *real_precisions
M: 8
N: 16
K: 256
alpha_beta: *alpha_beta_range
transA_transB: *transA_transB_range
- name: matmul_512
category: pre_checkin
function:
matmul: *real_precisions
M: 512
N: 512
K: 512
alpha_beta: *alpha_beta_range
transA_transB: *transA_transB_range
- name: matmul_1024
category: nightly
function:
matmul: *real_precisions
M: 1024
N: 1024
K: 1024
alpha_beta: *alpha_beta_range
transA_transB: *transA_transB_range
- name: matmul_bf16
category: quick
function:
matmul: *hpa_bf16_precision
transA: T
transB: N
alpha: 1
beta: 0
matrix_size:
- { M: 512, N: 512, K: 512 }
- { M: 960, N: 1024, K: 1024 }
- { M: 1024, N: 1024, K: 1024 }
- name: matmul_k0
category: pre_checkin
function:
matmul: *real_precisions
M: 4
N: 4
K: 0
alpha_beta: *alpha_beta_range
transA_transB: *transA_transB_range
#OCP F8
- name: matmul_f8_bf8_dst_fp32
category: pre_checkin
function:
matmul: *real_precisions_1b_dst_f32
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0.0, 2.0 ]
scaleA: [ 0, 1]
scaleB: [ 0, 1]
#bias_vector: [0, 1]
bias_type: bf16_r
unit_check: 1
gpu_arch: '(950|1250)'
- name: matmul_f8_bf8_dst_bf16
category: pre_checkin
function:
matmul: *real_precisions_1b_dst_bf16
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0.0, 2.0 ]
scaleA: [ 0, 1]
scaleB: [ 0, 1]
#bias_vector: [0, 1]
bias_type: bf16_r
unit_check: 1
gpu_arch: '(950|1250)'
- name: matmul_f8_dst_bf16
category: pre_checkin
function:
matmul: *f8_precision_dst_bf16
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0.0, 2.0 ]
scaleA: [ 0, 1]
scaleB: [ 0, 1]
bias_vector: [0, 1]
bias_type: [f32_r, bf16_r]
unit_check: 1
gpu_arch: '(950|1250)'
- name: matmul_f8_bf8_dst_f16
category: pre_checkin
function:
matmul: *real_precisions_1b_dst_f16
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0.0, 2.0 ]
scaleA: [ 0, 1]
scaleB: [ 0, 1]
#bias_vector: [0, 1]
bias_type: bf16_r
unit_check: 1
gpu_arch: '(950|1250)'
- name: matmul_bf16_fp32dst
category: quick
function:
matmul: *hpa_half_bf16_fp32dst_precision
transA_transB: *deepbench_transA_transB_range
alpha: 1
beta: 0
matrix_size:
- { M: 512, N: 512, K: 512 }
- { M: 960, N: 1024, K: 1024 }
- { M: 1024, N: 1024, K: 1024 }
gpu_arch: '(90a|942|1250)'
- name: matmul_bf16_fp32dst_edge
category: quick
function:
matmul: *hpa_half_bf16_fp32dst_precision
transA_transB: *deepbench_transA_transB_range
alpha: 1
beta: 0
matrix_size:
- { M: 1, N: 1, K: 1 }
- { M: 127, N: 127, K: 127 }
- { M: 128, N: 128, K: 128 }
gpu_arch: '1250'
- name: matmul_small2
category: pre_checkin
transA: N
transB: N
function:
matmul: *real_precisions
matrix_size:
- { M: 512, N: 512, K: 512 }
- { M: 960, N: 1024, K: 1024 }
- { M: 1024, N: 1024, K: 1024 }
alpha: [ 0.0, 0.5, 1.0 ]
beta: [ 0.0, 0.5, 1.0 ]
- name: matmul_bias_relu
category: pre_checkin
function:
matmul: *real_precisions
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0.0, 2.0 ]
activation_type: relu
bias_vector: [0, 1]
unit_check: 1
- name: matmul_bias_sigmoid
category: pre_checkin
function:
matmul: *real_precisions
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0.0, 2.0 ]
activation_type: sigmoid
bias_vector: [0, 1]
unit_check: 1
- name: matmul_bias_relu_streamk
category: pre_checkin
function:
- matmul: *hpa_half_precision
- matmul: *single_precision
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0.0, 2.0 ]
activation_type: relu
bias_vector: [0, 1]
unit_check: 1
tensile_solution_selection_method: 2
- name: matmul_bias_gelu
category: pre_checkin
function:
matmul: *real_precisions
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0.0, 2.0 ]
activation_type: gelu
bias_vector: [0, 1]
unit_check: 0
norm_check: 1
- name: matmul_bias_swish
category: pre_checkin
function:
matmul: *real_precisions
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0.0, 2.0 ]
activation_type: swish
bias_vector: [0, 1]
unit_check: 0
norm_check: 1
- name: matmul_bias_clamp
category: pre_checkin
function:
matmul: *real_precisions
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0.0, 2.0 ]
activation_type: clamp
activation_arg1: -1.5
activation_arg2: 1.5
bias_vector: [0, 1]
unit_check: 0
norm_check: 1
- name: matmul_bias_only
category: pre_checkin
function:
matmul: *real_precisions
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0.0, 2.0 ]
bias_vector: 1
unit_check: 1
- name: matmul_bias_type
category: pre_checkin
function:
matmul: *real_precisions_2b
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0.0, 2.0 ]
bias_vector: 1
bias_type: [default, f32_r]
unit_check: 1
- name: matmul_bias_fp16_gfx120x_tt
category: pre_checkin
function:
matmul: *hpa_half_precision
M: 128
N: 128
K: 128
transA: T
transB: T
alpha: 1
beta: 2.0
activation_type: gelu
bias_vector: 1
unit_check: 0
norm_check: 1
gpu_arch: '120[0-1]'
- name: matmul_fallback_compute_fp16
category: pre_checkin
function:
matmul: *hpa_half_precisions_compute_fp16
M: [4096, 129]
N: [4096, 129]
K: [4096, 129]
transA: N
transB: N
gpu_arch: '[^1]{2}\d{1,2}'
- name: matmul_fallback_compute_fp16_gfx11
category: pre_checkin
function:
matmul: *hpa_half_precisions_compute_fp16
M: [4096, 129]
N: [4096, 129]
K: [4096, 129]
transA: N
transB: N
norm_check: 1
unit_check: 0
gpu_arch: '110?'
- name: matmul_fallback_equality_NN
category: pre_checkin
function:
matmul: *hpa_half_precision
matrix_size:
- { M: 1104 , N: 1 , K: 4608 }
- { M: 1104 , N: 16 , K: 4608 }
- { M: 1104 , N: 1335, K: 4608 }
- { M: 1104 , N: 1408, K: 4608 }
- { M: 4608 , N: 1 , K: 320 }
- { M: 4608 , N: 16 , K: 320 }
- { M: 4608 , N: 1335, K: 320 }
- { M: 4608 , N: 1408, K: 320 }
- { M: 16 , N: 1 , K: 4608 }
- { M: 16 , N: 16 , K: 4608 }
- { M: 16 , N: 1335, K: 4608 }
- { M: 16 , N: 1408, K: 4608 }
- { M: 768 , N: 1 , K: 4608 }
- { M: 768 , N: 16 , K: 4608 }
- { M: 768 , N: 1335, K: 4608 }
- { M: 768 , N: 1408, K: 4608 }
- { M: 4608 , N: 1 , K: 768 }
- { M: 4608 , N: 16 , K: 768 }
- { M: 4608 , N: 1335, K: 768 }
- { M: 4608 , N: 1408, K: 768 }
- { M: 320 , N: 8192, K: 320 }
- { M: 640 , N: 2048, K: 640 }
- { M: 320 , N: 8192, K: 1280 }
- { M: 1280 , N: 512 , K: 1280 }
- { M: 10240, N: 512 , K: 1280 }
- { M: 2560 , N: 8192, K: 320 }
- { M: 5120 , N: 2048, K: 640 }
- { M: 1280 , N: 512 , K: 5120 }
- { M: 640 , N: 2048, K: 2560 }
- { M: 320 , N: 154 , K: 768 }
- { M: 1280 , N: 154 , K: 768 }
transA: N
transB: N
alpha: 1
beta: [ 0.0, 2.0 ]
- name: matmul_equality_NN_bias_vector_dst_fp16_32
category: pre_checkin
function:
matmul: *hpa_half_precisions_fp_16_32_dst
matrix_size:
- { M: 1104 , N: 1 , K: 4608 }
- { M: 1104 , N: 16 , K: 4608 }
- { M: 1104 , N: 1335, K: 4608 }
- { M: 1104 , N: 1408, K: 4608 }
- { M: 4608 , N: 1 , K: 320 }
- { M: 4608 , N: 16 , K: 320 }
- { M: 4608 , N: 1335, K: 320 }
- { M: 4608 , N: 1408, K: 320 }
- { M: 16 , N: 1 , K: 4608 }
- { M: 16 , N: 16 , K: 4608 }
- { M: 16 , N: 1335, K: 4608 }
- { M: 16 , N: 1408, K: 4608 }
- { M: 768 , N: 1 , K: 4608 }
- { M: 768 , N: 16 , K: 4608 }
- { M: 768 , N: 1335, K: 4608 }
- { M: 768 , N: 1408, K: 4608 }
- { M: 4608 , N: 1 , K: 768 }
- { M: 4608 , N: 16 , K: 768 }
- { M: 4608 , N: 1335, K: 768 }
- { M: 4608 , N: 1408, K: 768 }
transA: N
transB: N
alpha: [ 1.0, 2.0 ]
beta: [ 0.0, 2.0 ]
bias_vector: [0, 1]
scaleAlpha_vector: [0, 1]
- name: matmul_bf16_Custom_Equality
category: pre_checkin
transA: T
transB: N
function:
matmul: *real_precisions
matrix_size:
- { M: 7168, N: 2, K: 8192 }
- { M: 3584, N: 2, K: 8192 }
- { M: 1280, N: 2, K: 8192 }
- { M: 1280, N: 2, K: 8192 }
alpha: 1
beta: [ 0.0, 2.0 ]
- name: matmul_bias_vector_dst_fp16_32
category: pre_checkin
function:
matmul: *hpa_half_precisions_fp_16_32_dst
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA_transB: *transA_transB_range
alpha: [ 1.0, 2.0 ]
beta: [ 0.0, 2.0 ]
bias_vector: [0, 1]
scaleAlpha_vector: [0, 1]
- name: matmul_f8_bf8_fnuz_dst_fp32
category: pre_checkin
function:
matmul: *real_precisions_1b_fnuz_dst_f32
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0.0, 2.0 ]
scaleA: [ 0, 1]
scaleB: [ 0, 1]
bias_vector: [0, 1]
bias_type: bf16_r
unit_check: 1
gpu_arch: '942'
- name: matmul_input_fp16_computeIn_bf16
category: pre_checkin
function:
matmul: *hpa_half_fp16dst_bf16computeIn_precision
matrix_size:
- { M: 1, N: 1, K: 1 }
- { M: 1, N: 1, K: 512 }
- { M: 1, N: 1024, K: 512 }
- { M: 1024, N: 1, K: 512 }
- { M: 128, N: 128, K: 128 }
- { M: 128, N: 128, K: 129 }
- { M: 128, N: 129, K: 128 }
- { M: 128, N: 129, K: 129 }
- { M: 129, N: 128, K: 128 }
- { M: 129, N: 128, K: 129 }
- { M: 129, N: 129, K: 128 }
- { M: 129, N: 129, K: 129 }
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0, 2 ]
bias_vector: [0, 1]
scaleAlpha_vector: [0, 1]
bias_type: [f16_r, f32_r]
unit_check: 1
gpu_arch: '90a'
- name: matmul_input_fp16_computeIn_fp8_fnuz
category: pre_checkin
function:
matmul: *real_precisions_intermeddiate_f8_fnuz
matrix_size:
- { M: 1, N: 1, K: 1 }
- { M: 1, N: 1, K: 512 }
- { M: 1, N: 1024, K: 512 }
- { M: 1024, N: 1, K: 512 }
- { M: 128, N: 128, K: 128 }
- { M: 128, N: 128, K: 129 }
- { M: 128, N: 129, K: 128 }
- { M: 128, N: 129, K: 129 }
- { M: 129, N: 128, K: 128 }
- { M: 129, N: 128, K: 129 }
- { M: 129, N: 129, K: 128 }
- { M: 129, N: 129, K: 129 }
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0, 2 ]
bias_vector: [0, 1]
bias_type: [f16_r, f32_r]
unit_check: 1
gpu_arch: '942'
- name: matmul_f8_bf8_fnuz_dst_fp16
category: pre_checkin
function:
matmul: *real_precisions_1b_fnuz_dst_f16
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0.0, 2.0 ]
scaleA: [ 0, 1]
scaleB: [ 0, 1]
bias_vector: [0, 1]
bias_type: f16_r
unit_check: 1
gpu_arch: '942'
- name: matmul_f8_bf8_fnuz_dst_bf16
category: pre_checkin
function:
matmul: *real_precisions_1b_fnuz_dst_bf16
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0.0, 2.0 ]
scaleA: [ 0, 1]
scaleB: [ 0, 1]
bias_vector: [0, 1]
bias_type: bf16_r
unit_check: 1
gpu_arch: '942'
- name: matmul_f8_fnuz_dst_bf16_scale_ab_vec
category: pre_checkin
function:
matmul: *f8_fnuz_precision_dst_bf16
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA: T
transB: N
alpha: 1
beta: [ 0.0, 2.0 ]
scaleA: [2]
scaleB: [2]
bias_vector: [0, 1]
bias_type: bf16_r
unit_check: 1
gpu_arch: '942'
- name: matmul_stride_lt_ld
category: pre_checkin
function:
matmul: *xf32_precision
M: 41
N: 128
K: 6
lda: 106266
ldb: 2267008
ldc: 41
ldd: 41
stride_a: 6
stride_b: 128
stride_c: 5248
stride_d: 5248
batch_count: 17711
transA: T
transB: T
alpha: 1
beta: 2.0
bias_vector: 1
bias_type: f32_r
unit_check: 0
iters: 1
cold_iters: 1
gpu_arch: '950'
- name: matmul_swizzleA
category: pre_checkin
function:
matmul: *real_precisions_swizzleA_support
arguments: *swizzleA_strideA_support
M: [128, 129]
N: [128, 129]
K: [128, 129]
lda: [129, 2440]
batch_count: [1, 5]
transA: T
transB: N
alpha: 1
beta: [ 0.0, 2.0 ]
bias_vector: [0, 1]
unit_check: 1
gpu_arch: '942'
- name: matmul_extapi_swizzleA
category: pre_checkin
function:
matmul: *real_precisions_swizzleA_support
arguments: *swizzleA_strideA_support
M: [128, 129]
N: [128, 129]
K: [128, 129]
lda: [129, 2440]
batch_count: [1, 5]
transA: T
transB: N
use_ext: [1]
use_ext_setproblem: [0, 1]
alpha: 1
beta: [ 0.0, 2.0 ]
bias_vector: [0, 1]
unit_check: 1
gpu_arch: '942'
- name: matmul_swizzleB
category: pre_checkin
function:
matmul: *real_precisions_swizzleB_support
arguments: *swizzleB_strideB_support
M: [128, 129]
N: [128, 129]
K: [128, 129]
ldb: [129, 2440]
batch_count: [1, 5]
transA: T
transB: N
alpha: 1
beta: [ 0.0, 2.0 ]
bias_vector: [0, 1]
unit_check: 1
gpu_arch: '942'
- name: matmul_extapi_swizzleB
category: pre_checkin
function:
matmul: *real_precisions_swizzleB_support
arguments: *swizzleB_strideB_support
M: [128, 129]
N: [128, 129]
K: [128, 129]
ldb: [129, 2440]
batch_count: [1, 5]
transA: T
transB: N
use_ext: [1]
use_ext_setproblem: [0, 1]
alpha: 1
beta: [ 0.0, 2.0 ]
bias_vector: [0, 1]
unit_check: 1
gpu_arch: '942'
### GFX12 FP8
- name: matmul_f8_bf8_dst_fp32_gfx12
category: pre_checkin
function:
matmul: *real_precisions_1b_dst_f32
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0.0, 2.0 ]
scaleA: [ 0, 1]
scaleB: [ 0, 1]
bias_vector: [0, 1]
bias_type: bf16_r
unit_check: 0
norm_check: 1
gpu_arch: '(120[0-1]|1250)'
- name: matmul_f8_bf8_dst_fp16_gfx12
category: pre_checkin
function:
matmul: *real_precisions_1b_dst_f16
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0.0, 2.0 ]
scaleA: [ 0, 1]
scaleB: [ 0, 1]
bias_vector: [0, 1]
bias_type: f16_r
unit_check: 1
gpu_arch: '(120[0-1]|1250)'
- name: matmul_f8_bf8_dst_bf16_gfx12
category: pre_checkin
function:
matmul: *real_precisions_1b_dst_bf16
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0.0, 2.0 ]
scaleA: [ 0, 1]
scaleB: [ 0, 1]
bias_vector: [0, 1]
bias_type: bf16_r
unit_check: 1
gpu_arch: '(120[0-1]|1250)'
#scale ab vector//no solution
# scaleA: [2]
# scaleB: [2]
- name: matmul_real_1b_dst_f8_SCDInt1_gfx12
category: pre_checkin
function:
matmul: *real_precisions_1b_dst_f8
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0.0, 2.0 ]
scaleA: [0, 1]
scaleB: [0, 1]
scaleC: [0] # will use default value '1'
scaleD: [0] # will use default value '1'
bias_vector: [0, 1]
bias_type: f16_r
unit_check: 1
gpu_arch: '(120[0-1]|1250)'
- name: matmul_real_1b_dst_f8_SCDNotInt_gfx12
category: pre_checkin
function:
matmul: *real_precisions_1b_dst_f8
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0.0, 2.0 ]
scaleA: [0, 1]
scaleB: [0, 1]
scaleC: [1] # will use random value from 0.0 to 1.0
scaleD: [1] # will use random value from 0.0 to 1.0
bias_vector: [0, 1]
bias_type: f16_r
unit_check: 1
gpu_arch: '(120[0-1]|1250)'
- name: matmul_one_real_precisions_1b_gfx12
category: quick
function:
matmul: *real_precisions_1b
matrix_size: *one_matrix_size_range
transA_transB: *transA_transB_range
alpha: [ 0.0, 1.0 ]
beta: [ 0.0, 2.0 ]
gpu_arch: '(120[0-1]|1250)'
- name: matmul_one_integer_precisions_i8_gfx12
category: quick
function:
matmul: *integer_precisions_i8
matrix_size: *one_matrix_size_range
transA_transB: *transA_transB_range
alpha: [ 0.0, 1.0 ]
beta: [ 0.0, 2.0 ]
gpu_arch: '120[0-1]'
### END
- name: matmul_real_1b_fnuz_dst_f8_fnuz_SCDInt1
category: pre_checkin
function:
matmul: *real_precisions_1b_fnuz_dst_f8_fnuz
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0.0, 2.0 ]
scaleA: [0, 1]
scaleB: [0, 1]
scaleC: [0] # will use default value '1'
scaleD: [0] # will use default value '1'
bias_vector: [0, 1]
bias_type: f16_r
unit_check: 1
gpu_arch: '942'
- name: matmul_real_1b_fnuz_dst_1b_fnuz_smallsize
category: pre_checkin
function:
matmul: *real_precisions_1b_fnuz_dst_1b_fnuz
matrix_size:
- { M: 1, N: 1, K: 1 }
- { M: 1, N: 1, K: 127 }
- { M: 1, N: 127, K: 127 }
- { M: 2, N: 127, K: 127 }
- { M: 3, N: 127, K: 127 }
- { M: 127, N: 1, K: 127 }
- { M: 127, N: 2, K: 127 }
- { M: 127, N: 3, K: 127 }
- { M: 1, N: 1, K: 128 }
- { M: 1, N: 128, K: 128 }
- { M: 2, N: 128, K: 128 }
- { M: 3, N: 128, K: 128 }
- { M: 128, N: 1, K: 128 }
- { M: 128, N: 2, K: 128 }
- { M: 128, N: 3, K: 128 }
- { M: 1, N: 1, K: 129 }
- { M: 1, N: 129, K: 129 }
- { M: 2, N: 129, K: 129 }
- { M: 3, N: 129, K: 129 }
- { M: 129, N: 1, K: 129 }
- { M: 129, N: 2, K: 129 }
- { M: 129, N: 3, K: 129 }
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0.0, 2.0 ]
scaleA: [0, 1]
scaleB: [0, 1]
scaleC: [0]
scaleD: [0]
bias_vector: [0, 1]
bias_type: f32_r
unit_check: 1
gpu_arch: '942'
#TODO: extend to all f8 transpose and datatype if necessary
- name: matmul_real_f8_fnuz_dst_fp32
category: pre_checkin
function:
matmul: *f8_fnuz_precision_dst_fp32
matrix_size:
- { M: 1, N: 1, K: 1 }
- { M: 1, N: 1, K: 127 }
- { M: 1, N: 127, K: 127 }
- { M: 2, N: 127, K: 127 }
- { M: 3, N: 127, K: 127 }
- { M: 127, N: 1, K: 127 }
- { M: 127, N: 2, K: 127 }
- { M: 127, N: 3, K: 127 }
- { M: 1, N: 1, K: 128 }
- { M: 1, N: 128, K: 128 }
- { M: 2, N: 128, K: 128 }
- { M: 3, N: 128, K: 128 }
- { M: 128, N: 1, K: 128 }
- { M: 128, N: 2, K: 128 }
- { M: 128, N: 3, K: 128 }
- { M: 1, N: 1, K: 129 }
- { M: 1, N: 129, K: 129 }
- { M: 2, N: 129, K: 129 }
- { M: 3, N: 129, K: 129 }
- { M: 129, N: 1, K: 129 }
- { M: 129, N: 2, K: 129 }
- { M: 129, N: 3, K: 129 }
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0.0, 2.0 ]
scaleA: [0, 1]
scaleB: [0, 1]
scaleC: [0]
scaleD: [0]
bias_vector: [0, 1]
bias_type: f32_r
unit_check: 1
gpu_arch: '942'
- name: matmul_real_1b_fnuz_dst_f8_fnuz_SCDNotInt
category: pre_checkin
function:
matmul: *real_precisions_1b_fnuz_dst_f8_fnuz
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0.0, 2.0 ]
scaleA: [0, 1]
scaleB: [0, 1]
scaleC: [1] # will use random value from 0.0 to 1.0
scaleD: [1] # will use random value from 0.0 to 1.0
bias_vector: [0, 1]
bias_type: f16_r
unit_check: 0
norm_check: 1
gpu_arch: '942'
- name: matmul_real_1b_fnuz_dst_1b_fnuz_amaxD
category: pre_checkin
function:
matmul: *real_precisions_1b_fnuz_dst_1b_fnuz
M: [127, 129]
N: [127, 129]
K: [127, 129]
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0.0]
bias_vector: [0, 1]
bias_type: f16_r
scaleA: [1]
scaleB: [1]
scaleD: [1]
amaxD: [1]
activation_type: [none, relu]
unit_check: 1
gpu_arch: '942'
- name: matmul_real_1b_fnuz_dst_bf8_fnuz_SCDInt1
category: pre_checkin
function:
matmul: *real_precisions_1b_fnuz_dst_bf8_fnuz
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0.0, 2.0 ]
scaleA: [0, 1]
scaleB: [0, 1]
scaleC: [0] # will use default value '1'
scaleD: [0] # will use default value '1'
bias_vector: [0,1]
bias_type: f16_r
unit_check: 1
gpu_arch: '942'
- name: matmul_real_1b_fnuz_dst_bf8_fnuz_SCDNotInt
category: pre_checkin
function:
matmul: *real_precisions_1b_fnuz_dst_bf8_fnuz
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0.0, 2.0 ]
scaleA: [0, 1]
scaleB: [0, 1]
scaleC: [1] # will use random value from 0.0 to 1.0
scaleD: [1] # will use random value from 0.0 to 1.0
bias_vector: [0, 1]
bias_type: f16_r
unit_check: 0
norm_check: 1
gpu_arch: '942'
- name: matmul_fallback_equality_NN_batch16
category: pre_checkin
function:
matmul: *hpa_half_precision
matrix_size:
- { M: 40 , N: 4096, K: 4096 }
- { M: 80 , N: 1024, K: 1024 }
- { M: 40 , N: 4096, K: 77 }
- { M: 80 , N: 1024, K: 77 }
- { M: 160 , N: 256 , K: 256 }
transA: N
transB: N
alpha: 1
beta: [ 0.0, 2.0 ]
batch_count: 16
- name: matmul_fallback_equality_TN_batch16
category: pre_checkin
function:
matmul: *hpa_half_precision
matrix_size:
- { M: 4096, N: 4096, K: 40 }
- { M: 1024, N: 1024, K: 80 }
- { M: 77 , N: 1024, K: 80 }
- { M: 77 , N: 4096, K: 40 }
- { M: 77 , N: 256 , K: 160 }
transA: T
transB: N
alpha: 1
beta: [ 0.0, 2.0 ]
batch_count: 16
- name: matmul_groupedgemm_specific_sizes
category: pre_checkin
function:
matmul: *hpa_half_precisions_fp_16_32_dst
matrix_size:
- { M: 4096, N: 4096, K: 40 }
- { M: 1024, N: 1024, K: 80 }
- { M: 77 , N: 1024, K: 80 }
- { M: 77 , N: 4096, K: 40 }
- { M: 77 , N: 256 , K: 160 }
transA_transB: *transA_transB_range
grouped_gemm: [1, 5]
alpha: 1
beta: [ 0.0, 2.0 ]
unit_check: 1
algo_method: [2]
gpu_arch_exclude: '11\d{2}|120\d{1}'
- name: matmul_groupedgemm
category: pre_checkin
function:
matmul: *hpa_half_precisions_fp_16_32_dst
M: [127, 129]
N: [127, 129]
K: [127, 129]
transA_transB: *transA_transB_range
grouped_gemm: [1, 7]
alpha: 1
beta: [ 0.0, 2.0 ]
unit_check: 1
algo_method: [0, 2]
gpu_arch_exclude: '11\d{2}|120\d{1}'
- name: matmul_groupedgemm_f8_fnuz
category: pre_checkin
function:
matmul: *f8_fnuz_precision_dst_fp16
M: [127, 129]
N: [127, 129]
K: [127, 129]
transA_transB:
- { transA: T, transB: N }
grouped_gemm: [2]
alpha: 1
beta: [ 0.0, 2.0 ]
unit_check: 1
algo_method: [2]
gpu_arch: '942'
- name: matmul_groupedgemm_bf16
category: pre_checkin
function:
matmul: *hpa_bf16_precision
M: [127, 129]
N: [127, 129]
K: [127, 129]
transA_transB: *transA_transB_range
grouped_gemm: [2]
alpha: 1
beta: [ 0.0, 2.0 ]
unit_check: 1
algo_method: [2]
gpu_arch: '942'
- name: matmul_groupedgemm_xf32
category: pre_checkin
function:
matmul: *xf32_precision
M: [127, 129]
N: [127, 129]
K: [127, 129]
transA_transB: *transA_transB_range
grouped_gemm: [2]
alpha: 1
beta: [ 0.0, 2.0 ]
unit_check: 1
algo_method: [2]
gpu_arch: '942'
- name: matmul_groupedgemm_zero_n
category: pre_checkin
function:
matmul: *hpa_half_precision
M: [127, 129]
N: [127, 0]
K: [127, 129]
transA_transB: *transA_transB_range
grouped_gemm: [1, 7]
alpha: 1
beta: [ 0.0, 2.0 ]
unit_check: 1
algo_method: [2]
gpu_arch_exclude: '1[1-2]\d{2}'
- name: matmul_extapi_groupedgemm
category: pre_checkin
function:
matmul: *hpa_half_precision
M: [127, 129]
N: [127, 129]
K: [127, 129]
transA_transB: *transA_transB_range
grouped_gemm: [2]
use_ext_setproblem: [0, 1]
algo_method: [2]
alpha: 1
beta: [ 0.0, 2.0 ]
unit_check: 1
gpu_arch_exclude: '1[1-2]\d{2}'
- name: matmul_extapi_groupedgemm
category: pre_checkin
function:
matmul: *hpa_half_precision
M: [127, 129]
N: [127, 129]
K: [127, 129]
transA_transB: *transA_transB_range
grouped_gemm: [2]
use_ext_setproblem: [1]
algo_method: [2]
use_user_args: 1
alpha: 1
beta: [ 0.0, 2.0 ]
unit_check: 1
gpu_arch_exclude: '1[1-2]\d{2}'
- name: matmul_bias_gelu_aux_fp16
category: pre_checkin
function:
matmul: *hpa_half_precision
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0.0, 2.0 ]
use_e: 1
activation_type: gelu
bias_vector: [0, 1]
unit_check: 0
norm_check: 1
- name: matmul_bias_gelu_aux_fp8_fnuz_TN
category: pre_checkin
function:
matmul: *f8_fnuz_precision_dst_f8_fnuz
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA: T
transB: N
alpha: 1
beta: [ 0.0, 2.0 ]
use_e: 1
activation_type: gelu
bias_vector: [0, 1]
bias_type: f16_r
unit_check: 0
norm_check: 1
gpu_arch: '942'
- name: matmul_bias_gelu_f16aux_fp8_fnuz_TN
category: pre_checkin
function:
matmul: *f8_fnuz_precision_dst_f8_fnuz
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA: T
transB: N
alpha: 1
beta: [ 0.0, 2.0 ]
use_e: 1
aux_type: f16_r
activation_type: gelu
bias_vector: [0, 1]
bias_type: f16_r
unit_check: 0
norm_check: 1
gpu_arch: '942'
- name: matmul_bias_gelu_aux_fp8_fnuz_scale_ab_TN
category: pre_checkin
function:
matmul: *f8_fnuz_precision_dst_f8_fnuz
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA: T
transB: N
alpha: 1
beta: [ 0.0, 2.0 ]
use_e: 1
activation_type: gelu
bias_vector: [0, 1]
bias_type: f16_r
scaleA: [1]
scaleB: [1]
unit_check: 0
norm_check: 1
gpu_arch: '942'
- name: matmul_bias_gelu_f16aux_fp8_fnuz_scale_ab_TN
category: pre_checkin
function:
matmul: *f8_fnuz_precision_dst_f8_fnuz
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA: T
transB: N
alpha: 1
beta: [ 0.0, 2.0 ]
use_e: 1
aux_type: f16_r
activation_type: gelu
bias_vector: [0, 1]
bias_type: f16_r
scaleA: [1]
scaleB: [1]
unit_check: 0
norm_check: 1
gpu_arch: '942'
- name: matmul_bias_gelu_f16aux_fp8_fnuz_amaxD_TN
category: pre_checkin
function:
matmul: *f8_fnuz_precision_dst_f8_fnuz
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA: T
transB: N
alpha: 1
beta: [ 0.0, 2.0 ]
use_e: 1
aux_type: f16_r
activation_type: gelu
bias_vector: [0, 1]
bias_type: f16_r
scaleA: [1]
scaleB: [1]
scaleD: [1]
amaxD: [1]
unit_check: 0
norm_check: 1
gpu_arch: '942'
- name: matmul_dgelu_fp16
category: pre_checkin
function:
matmul: *hpa_half_precision
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0.0, 2.0 ]
use_e: 1
gradient: 1
activation_type: gelu
unit_check: 1
gpu_arch_exclude: '11\d\d|12[^5]\d'
- name: matmul_drelu_fp16
category: pre_checkin
function:
matmul: *hpa_half_precision
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0.0, 2.0 ]
use_e: 1
gradient: 1
activation_type: relu
unit_check: 1
gpu_arch_exclude: '11\d\d|12[^5]\d'
- name: matmul_bias_stride
category: pre_checkin
function:
matmul: *real_precisions
matrix_size:
- {M: 128, N: 128, K: 128, bias_stride: 128}
- {M: 128, N: 128, K: 128, bias_stride: 150}
- {M: 129, N: 129, K: 129, bias_stride: 129}
- {M: 129, N: 129, K: 129, bias_stride: 250}
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0.0, 2.0 ]
bias_vector: [0, 1]
activation_type: [relu, none]
batch_count: [1, 5]
gpu_arch_exclude: '11\d\d|12[^5]\d'
- name: matmul_dgelu_bias
category: pre_checkin
function:
matmul: *hpa_half_precision
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0.0, 2.0 ]
use_e: 1
gradient: 1
activation_type: gelu
bias_vector: 1
bias_type: f32_r
unit_check: 0
norm_check: 1
gpu_arch_exclude: '11\d\d|12[^5]\d'
- name: matmul_dgelu_bias_bf16
category: pre_checkin
function:
matmul: *hpa_bf16_precision
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0.0, 2.0 ]
use_e: 1
gradient: 1
activation_type: gelu
bias_vector: 1
bias_type: f32_r
unit_check: 0
norm_check: 1
gpu_arch: '1250'
- name: matmul_drelu_bf16
category: pre_checkin
function:
matmul: *hpa_bf16_precision
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0.0, 2.0 ]
use_e: 1
gradient: 1
activation_type: relu
unit_check: 0
norm_check: 1
gpu_arch: '1250'
- name: matmul_dgelu_bf16
category: pre_checkin
function:
matmul: *hpa_bf16_precision
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0.0, 2.0 ]
use_e: 1
gradient: 1
activation_type: gelu
unit_check: 0
norm_check: 1
gpu_arch: '1250'
- name: matmul_drelu_bias_fp16
category: pre_checkin
function:
matmul: *hpa_half_precision
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0.0, 2.0 ]
use_e: 1
gradient: 1
activation_type: relu
bias_vector: 1
bias_type: f32_r
unit_check: 0
norm_check: 1
gpu_arch_exclude: '11\d\d|12[^5]\d'
- name: matmul_drelu_bias_bf16
category: pre_checkin
function:
matmul: *hpa_bf16_precision
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0.0, 2.0 ]
use_e: 1
gradient: 1
activation_type: relu
bias_vector: 1
bias_type: f32_r
unit_check: 0
norm_check: 1
gpu_arch: '1250'
- name: matmul_bgradb_f8_bf8_fnuz_dst_fp32
category: pre_checkin
function:
matmul: *real_precisions_1b_fnuz_dst_f32
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0.0, 2.0 ]
gradient: 1
bias_vector: 1
bias_type: f32_r
bias_source: b
scaleA: [ 0, 1]
scaleB: [ 0, 1]
unit_check: 1
gpu_arch: '942'
- name: matmul_bgrada_f16
category: pre_checkin
function:
matmul: *hpa_half_precision
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0.0, 2.0 ]
gradient: 1
bias_vector: 1
bias_type: f32_r
bias_source: a
unit_check: 1
gpu_arch_exclude: '11\d\d|12[^5]\d'
- name: matmul_bgrada_bf16
category: pre_checkin
function:
matmul: *hpa_bf16_precision
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0.0, 2.0 ]
gradient: 1
bias_vector: 1
bias_type: f32_r
bias_source: a
unit_check: 1
gpu_arch: '1250'
- name: matmul_bias_gelu_aux_fp32
category: pre_checkin
function:
matmul: *single_precision
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0.0, 2.0 ]
use_e: 1
activation_type: gelu
bias_vector: [0, 1]
unit_check: 0
norm_check: 1
gpu_arch: '942'
- name: matmul_dgelu_fp32
category: pre_checkin
function:
matmul: *single_precision
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0.0, 2.0 ]
use_e: 1
gradient: 1
activation_type: gelu
unit_check: 0
norm_check: 1
gpu_arch: '942'
- name: matmul_drelu_fp32
category: pre_checkin
function:
matmul: *single_precision
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0.0, 2.0 ]
use_e: 1
gradient: 1
activation_type: relu
unit_check: 0
norm_check: 1
gpu_arch: '942'
- name: matmul_bgradb_fp32
category: pre_checkin
function:
matmul: *single_precision
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0.0, 2.0 ]
gradient: 1
bias_vector: 1
bias_type: f32_r
bias_source: b
unit_check: 1
gpu_arch: '942'
- name: matmul_bias_gelu_aux_bf16_TN
category: pre_checkin
function:
matmul: *hpa_bf16_precision
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA: T
transB: N
alpha: 1
beta: [ 0.0, 2.0 ]
use_e: 1
activation_type: gelu
bias_vector: [0, 1]
bias_type: bf16_r
unit_check: 0
norm_check: 1
gpu_arch: '9(42|50)'
- name: matmul_dgelu_bf16_NN
category: pre_checkin
function:
matmul: *hpa_bf16_precision
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA: N
transB: N
alpha: 1
beta: [ 0.0, 2.0 ]
use_e: 1
gradient: 1
activation_type: gelu
unit_check: 0
norm_check: 1
gpu_arch: '942'
- name: matmul_bgradb_bf16_NT
category: pre_checkin
function:
matmul: *hpa_bf16_precision
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA: N
transB: T
alpha: 1
beta: [ 0.0, 2.0 ]
gradient: 1
bias_vector: 1
bias_type: bf16_r
bias_source: b
unit_check: 1
gpu_arch: '942'
- name: matmul_bgradb_bf16_NT
category: pre_checkin
function:
matmul: *hpa_bf16_precision
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA: N
transB: T
alpha: 1
beta: [ 0.0, 2.0 ]
gradient: 1
bias_vector: 1
bias_type: [bf16_r, f32_r]
bias_source: b
unit_check: 1
gpu_arch: '1250'
- name: matmul_bgradb_f16
category: pre_checkin
function:
matmul: *hpa_half_precision
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0.0, 2.0 ]
gradient: 1
bias_vector: 1
bias_type: [f16_r, f32_r]
bias_source: b
unit_check: 1
gpu_arch_exclude: '11\d\d|12[^5]\d'
- name: matmul_bgradb_16_f32d_NT
category: pre_checkin
function:
matmul:
- {a_type: f16_r, b_type: f16_r, c_type: f32_r, d_type: f32_r, compute_type: c_f32_r, scale_type: f32_r }
- {a_type: bf16_r, b_type: bf16_r, c_type: f32_r, d_type: f32_r, compute_type: c_f32_r, scale_type: f32_r }
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA: N
transB: T
alpha: 1
beta: [ 0.0, 2.0 ]
gradient: 1
bias_vector: 1
bias_type: f32_r
bias_source: b
unit_check: 1
gpu_arch: '942'
- name: matmul_extapi_algo_method_gemm
category: pre_checkin
function:
matmul: *hpa_half_precision
M: [127, 129]
N: [127, 129]
K: [127, 129]
transA_transB: *transA_transB_range
algo_method: [1, 2]
alpha: 1
beta: [ 0.0, 2.0 ]
unit_check: 1
- name: matmul_extapi_gemm
category: pre_checkin
function:
matmul: *hpa_half_precision
M: [127, 129]
N: [127, 129]
K: [127, 129]
transA_transB: *transA_transB_range
use_ext: [1]
use_ext_setproblem: [0, 1]
algo_method: [0, 1, 2]
alpha: 1
beta: [ 0.0, 2.0 ]
unit_check: 1
- name: matmul_gemm_xf32
category: pre_checkin
function:
matmul: *xf32_precision
matrix_size:
- { M: 128, N: 128, K: 128 }
- { M: 131, N: 131, K: 131 }
- { M: 1024, N: 1024, K: 1024 }
- { M: 1031, N: 1031, K: 1031 }
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0.0, 2.0 ]
unit_check: 1
gpu_arch: '(9(42|50)|1250)'
- name: matmul_gemm_f32_fast_bf16
category: pre_checkin
function:
matmul: *single_precision_bf16computeIn_precision
matrix_size:
- { M: 128, N: 128, K: 128 }
- { M: 131, N: 131, K: 131 }
- { M: 1024, N: 1024, K: 1024 }
- { M: 1031, N: 1031, K: 1031 }
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0.0, 2.0 ]
norm_check: 1
unit_check: 0
gpu_arch: '950'
- name: matmul_one_double
category: quick
function:
matmul: *double_precision
matrix_size: *one_matrix_size_range
transA_transB: *transA_transB_range
alpha: [1.0, 2.0]
beta: [ 0.0, 2.0 ]
unit_check: 1
gpu_arch: '1250'
- name: matmul_gemm_double
category: pre_checkin
function:
matmul: *double_precision
matrix_size:
- { M: 128, N: 128, K: 1024 }
- { M: 4608, N: 1335, K: 640 }
transA_transB: *transA_transB_range
alpha: [1.0, 2.0]
beta: [ 0.0, 2.0 ]
unit_check: 1
gpu_arch: '9(0a|4[0-2])'
# Regression: int32 alpha 1065353216 (== float 1.0 bits) once crashed kernel selection.
# unit_check off: alpha overflows int32 math; the guard is API success, not numerics.
- name: matmul_gemm_i8_dst_i32_alpha_float_bits
category: pre_checkin
function:
matmul: *i8_precision_dst_i32
matrix_size:
- { M: 131, N: 131, K: 131 }
transA_transB: *transA_transB_range
alpha: 1065353216
beta: 0
unit_check: 0
gpu_arch: '9(42|50)'
- name: matmul_gemm_i8_dst_i32
category: pre_checkin
function:
matmul: *i8_precision_dst_i32
matrix_size:
- { M: 1, N: 131, K: 131 }
- { M: 131, N: 1, K: 131 }
- { M: 128, N: 128, K: 128 }
- { M: 131, N: 131, K: 131 }
- { M: 1024, N: 1024, K: 1024 }
- { M: 1031, N: 1031, K: 1031 }
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0, 2 ]
unit_check: 1
gpu_arch: '9(0a|50)'
- name: matmul_gemm_i8_dst_i32_94x
category: pre_checkin
function:
matmul: *i8_precision_dst_i32
matrix_size:
- { M: 1, N: 131, K: 131 }
- { M: 131, N: 1, K: 131 }
- { M: 128, N: 128, K: 128 }
- { M: 131, N: 131, K: 131 }
- { M: 1024, N: 1024, K: 1024 }
- { M: 1031, N: 1031, K: 1031 }
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0, 2 ]
scaleAlpha_vector: [0, 1]
activation_type: relu
unit_check: 1
gpu_arch: '942'
- name: matmul_gemm_i8_dst_i8
category: pre_checkin
function:
matmul: *i8_precision_dst_i8
matrix_size:
- { M: 128, N: 128, K: 128 }
- { M: 131, N: 131, K: 131 }
- { M: 1024, N: 1024, K: 1024 }
- { M: 1031, N: 1031, K: 1031 }
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0, 2 ]
unit_check: 1
gpu_arch: '9(0a|50)'
- name: matmul_gemm_i8_dst_i8_94x
category: pre_checkin
function:
matmul: *i8_precision_dst_i8
matrix_size:
- { M: 128, N: 128, K: 128 }
- { M: 131, N: 131, K: 131 }
- { M: 1024, N: 1024, K: 1024 }
- { M: 1031, N: 1031, K: 1031 }
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0, 2 ]
scaleAlpha_vector: [0, 1]
activation_type: relu
unit_check: 1
gpu_arch: '942'
- name: matmul_gemm_i8_dst_i8_1xxx
category: pre_checkin
function:
matmul: *i8_precision_dst_i8
matrix_size:
- { M: 128, N: 128, K: 128 }
- { M: 131, N: 131, K: 131 }
- { M: 1024, N: 1024, K: 1024 }
- { M: 1031, N: 1031, K: 1031 }
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0, 2 ]
scaleAlpha_vector: [0, 1]
activation_type: relu
unit_check: 1
gpu_arch: '1[1-2]\d{2}'
- name: matmul_gemm_i8_dst_i32_1xxx
category: pre_checkin
function:
matmul: *i8_precision_dst_i32
matrix_size:
- { M: 128, N: 128, K: 128 }
- { M: 131, N: 131, K: 131 }
- { M: 1024, N: 1024, K: 1024 }
- { M: 1031, N: 1031, K: 1031 }
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0, 2 ]
scaleAlpha_vector: [0, 1]
activation_type: relu
unit_check: 1
gpu_arch: '1[1-2]\d{2}'
- name: matmul_gemm_mix_precisions
category: pre_checkin
function:
matmul: *real_mix_precisions_fnuz
matrix_size:
M: [127, 129]
N: [127, 129]
K: [127, 129]
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0, 2 ]
use_ext: [1]
use_ext_setproblem: [0, 1]
bias_vector: 1
bias_type: [f32_r]
unit_check: 1
gpu_arch: '942'
- name: matmul_gemm_mix_precisions2
category: pre_checkin
function:
matmul: *real_mix_precisions_fnuz
matrix_size:
- { M: 1, N: 1, K: 1 }
- { M: 1, N: 1, K: 127 }
- { M: 1, N: 127, K: 127 }
- { M: 2, N: 127, K: 127 }
- { M: 3, N: 127, K: 127 }
- { M: 127, N: 1, K: 127 }
- { M: 127, N: 2, K: 127 }
- { M: 127, N: 3, K: 127 }
- { M: 1, N: 1, K: 128 }
- { M: 1, N: 128, K: 128 }
- { M: 2, N: 128, K: 128 }
- { M: 3, N: 128, K: 128 }
- { M: 128, N: 1, K: 128 }
- { M: 128, N: 2, K: 128 }
- { M: 128, N: 3, K: 128 }
- { M: 1, N: 1, K: 129 }
- { M: 1, N: 129, K: 129 }
- { M: 2, N: 129, K: 129 }
- { M: 3, N: 129, K: 129 }
- { M: 129, N: 1, K: 129 }
- { M: 129, N: 2, K: 129 }
- { M: 129, N: 3, K: 129 }
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0, 2 ]
use_ext: [1]
use_ext_setproblem: [1]
bias_vector: 1
bias_type: [f32_r]
unit_check: 1
gpu_arch: '942'
- name: matmul_gemm_mix_precisions_fp8_fnuz
category: pre_checkin
function:
matmul: *real_mix_precisions_fp8_fnuz
M: [127, 129]
N: [127, 129]
K: [127, 129]
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0.0, 2.0 ]
scaleA: [0,1]
scaleB: [0,1]
scaleC: [0,1]
scaleD: [0,1]
use_ext: [1]
use_ext_setproblem: [1]
bias_vector: 1
bias_type: [f32_r]
unit_check: 1
gpu_arch: '942'
- name: matmul_gemm_amaxAB_mix_precisions_fp8_fnuz
category: pre_checkin
function:
matmul: *real_mix_precisions_fp8_fnuz
M: [127, 129]
N: [127, 129]
K: [127, 129]
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0.0, 2.0 ]
scaleA: [0,1]
scaleB: [0,1]
amaxScaleA: [0, 1]
amaxScaleB: [0, 1]
use_ext: [1]
use_ext_setproblem: [1]
bias_vector: 1
bias_type: [f32_r]
unit_check: 1
gpu_arch: '942'
- name: matmul_extapi_algo_method_tuning_gsu_gemm_only
category: pre_checkin
function:
matmul: *hpa_half_precision
matrix_size:
- { M: 128, N: 128, K: 65536 }
transA_transB: *transA_transB_range
algo_method: [2]
use_ext: [1]
use_ext_setproblem: [0]
gsu_vector: [[0], [1], [4], [7], [38]]
alpha: 1
beta: 2.0
unit_check: 1
gpu_arch: '9(42|50)'
- name: matmul_extapi_algo_method_tuning_gsu_gemm_only_1250
category: pre_checkin
function:
matmul: *hpa_half_precision
matrix_size:
- { M: 128, N: 128, K: 65536 }
transA_transB: *transA_transB_range
algo_method: [2]
use_ext: [1]
use_ext_setproblem: [0]
gsu_vector: [[0], [1], [4], [7]]
alpha: 1
beta: 2.0
unit_check: 1
gpu_arch: '1250'
- name: matmul_extapi_algo_method_tuning_wgm
category: pre_checkin
function:
matmul: *hpa_half_precision
matrix_size:
- { M: 4096, N: 4096, K: 40 }
- { M: 1024, N: 1024, K: 80 }
transA_transB: *transA_transB_range
algo_method: [2]
use_ext: [1]
use_ext_setproblem: [0]
grouped_gemm: [0]
wgm_vector: [[0], [4], [9], [16]]
alpha: 1
beta: 2.0
unit_check: 1
- name: matmul_extapi_algo_method_grouped_gemm_tuning_wgm
category: pre_checkin
function:
matmul: *hpa_half_precision
matrix_size:
- { M: 4096, N: 4096, K: 40 }
- { M: 1024, N: 1024, K: 80 }
transA_transB: *transA_transB_range
algo_method: [2]
use_ext: [1]
use_ext_setproblem: [0]
grouped_gemm: [2]
wgm_vector: [[0], [4], [9], [16]]
alpha: 1
beta: 2.0
unit_check: 1
gpu_arch_exclude: '1[1-2]\d{2}'
- name: matmul_heuristic_all_solutions_no_workspace
category: nightly
function:
matmul: *real_precisions
matrix_size:
- { M: 128, N: 128, K: 2048 }
algo_method: [0,1]
transA_transB: *transA_transB_range
alpha: 1
beta: 1
requested_solution_num: -1
user_allocated_workspace: [0]
unit_check: 1
- name: matmul_heuristic_all_solutions
category: nightly
function:
matmul: *real_precisions
matrix_size:
- { M: 128, N: 128, K: 2048 }
- { M: 127, N: 127, K: 2047 }
algo_method: [0,1]
transA_transB: *transA_transB_range
alpha: 1
beta: [0,1]
requested_solution_num: -1
unit_check: 1
- name: matmul_heuristic_all_solutions_real_1byte_fnuz
category: nightly
function:
matmul: *real_precisions_1b_fnuz
matrix_size:
- { M: 128, N: 128, K: 2048 }
- { M: 127, N: 127, K: 2047 }
algo_method: [0,1]
transA_transB: *transA_transB_range
alpha: 1
beta: [0,1]
requested_solution_num: -1
unit_check: 1
gpu_arch: '942'
- name: matmul_large_nt_f8_bf8_dst_f8_bf8_f16_bf16_f32_gfx942
category: pre_checkin
function:
matmul:
- *f8_fnuz_precision_dst_f8_fnuz
- *f8_fnuz_precision_dst_fp16
- *f8_fnuz_precision_dst_bf16
- *f8_fnuz_precision_dst_fp32
- *bf8_fnuz_precision_dst_bf8_fnuz
- *bf8_fnuz_precision_dst_fp16
- *bf8_fnuz_precision_dst_bf16
- *bf8_fnuz_precision_dst_fp32
matrix_size:
- { M: 4096, N: 4096, K: 2048 }
transA: N
transB: T
alpha: [1.0, 2.0]
beta: [ 0.0, 2.0 ]
scaleA: [ 0, 1]
scaleB: [ 0, 1]
bias_vector: [0, 1]
bias_type: f32_r
unit_check: 1
gpu_arch: '942'
- name: matmul_large_nt_f64_dst_f64_gfx942
category: pre_checkin
function:
matmul: *double_precision
matrix_size:
- { M: 4096, N: 4096, K: 2048 }
transA: N
transB: T
alpha: [1.0, 2.0]
beta: [ 0.0, 2.0 ]
unit_check: 1
gpu_arch: '942'
- name: matmul_mx_datatypes
category: pre_checkin
function:
matmul: *real_precisions_mx
M: [128, 96, 64]
N: [128, 96, 64]
K: [128]
transA: T
transB: N
alpha: 1.5
beta: 2.0
initialization: hpl
unit_check: 0
norm_check: 1
gpu_arch: '950'
- name: matmul_mx_large
category: pre_checkin
function:
matmul:
- { a_type: f8_r, b_type: f8_r, c_type: f16_r, d_type: f16_r, compute_type: c_f32_r, scaleA: 3, scaleB: 3, scale_type: f32_r}
- { a_type: f8_r, b_type: f4_r, c_type: f16_r, d_type: f16_r, compute_type: c_f32_r, scaleA: 3, scaleB: 3, scale_type: f32_r}
- { a_type: f4_r, b_type: f4_r, c_type: f16_r, d_type: f16_r, compute_type: c_f32_r, scaleA: 3, scaleB: 3, scale_type: f32_r}
- { a_type: f6_r, b_type: f6_r, c_type: f16_r, d_type: f16_r, compute_type: c_f32_r, scaleA: 3, scaleB: 3, scale_type: f32_r}
M: [4096]
N: [4096]
K: [16384]
transA: T
transB: N
alpha: 1.0
beta: 0.0
initialization: trig_float
unit_check: 0
norm_check: 1
gpu_arch: '950'
- name: matmul_mx_all_kernels
category: nightly
function:
matmul:
- { a_type: f8_r, b_type: f8_r, c_type: f16_r, d_type: f16_r, compute_type: c_f32_r, scaleA: 3, scaleB: 3, scale_type: f32_r}
- { a_type: f8_r, b_type: f4_r, c_type: f16_r, d_type: f16_r, compute_type: c_f32_r, scaleA: 3, scaleB: 3, scale_type: f32_r}
- { a_type: f4_r, b_type: f4_r, c_type: f16_r, d_type: f16_r, compute_type: c_f32_r, scaleA: 3, scaleB: 3, scale_type: f32_r}
- { a_type: f6_r, b_type: f6_r, c_type: f16_r, d_type: f16_r, compute_type: c_f32_r, scaleA: 3, scaleB: 3, scale_type: f32_r}
M: [3072]
N: [3072]
K: [16384]
transA: T
transB: N
alpha: 1.0
beta: 0.0
initialization: trig_float
unit_check: 0
norm_check: 1
requested_solution_num: 10
gpu_arch: '950'
- name: matmul_mx_solution_index
category: pre_checkin
function:
matmul:
- { a_type: f8_r, b_type: f8_r, c_type: f16_r, d_type: f16_r, compute_type: c_f32_r, scaleA: 3, scaleB: 3, scale_type: f32_r}
- { a_type: f6_r, b_type: f6_r, c_type: f32_r, d_type: f32_r, compute_type: c_f32_r, scaleA: 3, scaleB: 3, scale_type: f32_r}
- { a_type: f4_r, b_type: f4_r, c_type: f32_r, d_type: f32_r, compute_type: c_f32_r, scaleA: 3, scaleB: 3, scale_type: f32_r}
M: [256]
N: [256]
K: [256]
transA: T
transB: N
alpha: 1.0
beta: 0.0
initialization: hpl
unit_check: 0
norm_check: 1
algo_method: [2]
solution_index: 0x82040404 # Workgroup tile size = 128x128x128
gpu_arch: '950'
- name: matmul_mx_multiple_kernels
category: pre_checkin
function:
matmul:
- { a_type: f8_r, b_type: f8_r, c_type: f16_r, d_type: f16_r, compute_type: c_f32_r, scaleA: 3, scaleB: 3, scale_type: f32_r}
- { a_type: f6_r, b_type: f6_r, c_type: f32_r, d_type: f32_r, compute_type: c_f32_r, scaleA: 3, scaleB: 3, scale_type: f32_r}
- { a_type: f4_r, b_type: f4_r, c_type: f32_r, d_type: f32_r, compute_type: c_f32_r, scaleA: 3, scaleB: 3, scale_type: f32_r}
M: [256]
N: [256]
K: [256]
transA: T
transB: N
alpha: 1.0
beta: 0.0
initialization: hpl
unit_check: 0
norm_check: 1
requested_solution_num: 3
gpu_arch: '950'
- name: matmul_relu_clamp_useE
category: pre_checkin
function:
matmul:
- {a_type: f32_r, b_type: f32_r, c_type: f32_r, d_type: f32_r, compute_type: c_f32_r, scale_type: f32_r }
- {a_type: f16_r, b_type: f16_r, c_type: f16_r, d_type: f16_r, compute_type: c_f32_r, scale_type: f32_r }
- {a_type: f16_r, b_type: f16_r, c_type: f32_r, d_type: f32_r, compute_type: c_f32_r, scale_type: f32_r }
- {a_type: bf16_r, b_type: bf16_r, c_type: bf16_r, d_type: bf16_r, compute_type: c_f32_r, scale_type: f32_r }
- {a_type: bf16_r, b_type: bf16_r, c_type: f32_r, d_type: f32_r, compute_type: c_f32_r, scale_type: f32_r }
M: [128, 129]
N: [128, 129]
K: [128, 129]
transA_transB: *transA_transB_range
alpha: 1
beta: [ 0.0, 2.0 ]
use_e: 1
activation_type: [relu, clamp]
activation_arg1: -1.5
activation_arg2: 1.5
bias_vector: [0, 1]
bias_type: f32_r
scaleAlpha_vector: 1
norm_check: 1
unit_check: 0
gpu_arch: '942'
# 1x32x512x512x256 [NCDHW], OC = 1
- name: matmul_conv3d_kernels
category: pre_checkin
function:
matmul:
- { a_type: f32_r, b_type: f32_r, c_type: f32_r, d_type: f32_r, compute_type: f32_r, scale_type: f32_r }
matrix_size:
- { M: 67108864, N: 1, K: 32 }
transA: N
transB: N
alpha: 1.0
beta: 0.0
gpu_arch: '9(0a|42)'
###############################################################################
# 32-bit / size_t overflow coverage (AIHPBLAS-3806).
#
# These cases catch INT32 element-index overflow (element index > 2^31 - 1) in
# the TensileLite addressing path -- the silent output-store correctness defect
# ROCM-26455, reproduced by the bf16 gate below. They are modeled after
# rocBLAS's gemm_size_t tests: M/N/K stay moderate while a leading dimension or
# batch stride is inflated so the output (or input) element index crosses 2^31.
# Full unit_check is used so both memory faults AND silent corruption are caught.
#
# Memory note: these allocate several GiB. On GPUs without enough memory the
# harness reports the allocation failure as a skip (CHECK_DEVICE_ALLOCATION),
# so the cases are safe to keep enabled; they only run for real on large-memory
# parts. Gated to the gfx9 data-center arches where the defect manifests.
###############################################################################
# Systematic element-index overflow sweep (f32), rotating the
# oversized leading dimension across A, B and the output C/D.
- name: matmul_size_t_index_overflow
category: stress
function:
matmul: *single_precision
matrix_size: *size_t_index_overflow
transA: [ N, T ]
transB: [ N, T ]
alpha: 2.0
beta: 4.0
initialization: integer_exact
unit_check: 1
gpu_arch: '9(0a|42|50)'
# Same sweep in f16 and bf16 (bf16 is the precision of the ROCM-26455 defect). This sweep
# stays on rand_int rather than integer_exact: an input-side leading-dimension
# overflow needs the oversized ld multiplied by K (transA=N / transB=T), which
# requires K=2048, but integer_exact deliberately caps 16-bit at K<=512 for exact
# representability and would skip the whole sweep. The bit-exact integer_exact
# path covers the output-side defect via matmul_size_t_output_overflow_bf16_ROCM26455.
- name: matmul_size_t_index_overflow_hpa
category: stress
function:
matmul:
- *hpa_half_precision
- *hpa_bf16_precision
matrix_size: *size_t_index_overflow
transA: [ N, T ]
transB: [ N, T ]
alpha: 2.0
beta: 4.0
initialization: rand_int
unit_check: 1
gpu_arch: '9(0a|42|50)'
# Concrete ROCM-26455 reproducer: bf16, transA=N / transB=T, with bias and
# a scaleAlpha vector (the Cijk_Ailk_Bjlk_BBS_BH_Bias_HA_S_SAV kernel family),
# driven onto an oversized output leading dimension so the output buffer index
# crosses 2^31 -> silent wrong results (a correctness defect in the output-store
# address path). When the
# output-store fix lands this case FAILs pre-fix / PASSes post-fix; until then it
# is registered in known_bugs.yaml (skipped on the affected gfx942/gfx950 arches)
# so the reproducer can land ahead of the fix -- remove that known_bugs entry to
# re-activate it as an enforced bit-exact gate. integer_exact initialization fills
# A/B/C with {0,1,2} and bias/scaleAlphaVec with small integers, keeping the whole
# epilogue integer-valued so the harness can demand a bit-exact (tol=0) match.
# K=256 stays under the 16-bit exact-representability cap.
- name: matmul_size_t_output_overflow_bf16_ROCM26455
category: pre_checkin
function:
matmul: *hpa_bf16_precision
matrix_size: *size_t_output_overflow
transA: N
transB: T
alpha: 1.0
beta: 0.0
bias_vector: 1
bias_type: f32_r
scaleAlpha_vector: 1
initialization: integer_exact
unit_check: 1
gpu_arch: '9(42|50)'
# Strided-batched output: inflate stride_c/stride_d so stride * bpe crosses 2^31
# for the per-batch base offset, while the per-batch compute stays at 64x64x64.
# For bf16 (bpe = 2), stride = 1073741824 (2^30) -> 2^31 bytes for batch index 1.
- name: matmul_size_t_batch_stride_overflow
category: stress
function:
matmul: *hpa_bf16_precision
matrix_size:
- { M: 64, N: 64, K: 64, lda: 64, ldb: 64, ldc: 64, ldd: 64,
stride_a: 4096, stride_b: 4096, stride_c: 1073741824, stride_d: 1073741824 }
batch_count: 2
transA: N
transB: T
alpha: 1.0
beta: 0.0
initialization: integer_exact
unit_check: 1
gpu_arch: '9(0a|42|50)'
- name: matmul_96_complex
category: pre_checkin
function:
matmul: *complex_precisions
M: 96
N: 96
K: 96
alpha_beta: *complex_alpha_beta_range_small
transA_transB: *complex_transA_transB_range_small
gpu_arch: '9(42|50)'
- name: matmul_256_8_16_complex
category: pre_checkin
function:
matmul: *complex_precisions
M: 256
N: 8
K: 16
alpha_beta: *complex_alpha_beta_range_small
transA_transB: *complex_transA_transB_range_small
gpu_arch: '9(42|50)'
- name: matmul_2001_5431_3004_complex
category: pre_checkin
function:
matmul: *complex_precisions
M: 2001
N: 5431
K: 3004
alpha_beta: *complex_alpha_beta_range_small
transA_transB: *complex_transA_transB_range_small
gpu_arch: '9(42|50)'
- name: matmul_1093_141_7011_complex
category: pre_checkin
function:
matmul: *complex_precisions
M: 1093
N: 141
K: 7011
alpha_beta: *complex_alpha_beta_range_small
transA_transB: *complex_transA_transB_range_small
gpu_arch: '9(42|50)'
- name: matmul_4097_2187_2653_complex
category: pre_checkin
function:
matmul: *complex_precisions
M: 4096
N: 2187
K: 2653
alpha_beta: *complex_alpha_beta_range_small
transA_transB: *complex_transA_transB_range_small
gpu_arch: '9(42|50)'
- name: matmul_one_bf16_fp32dst_precision_gfx90a
category: quick
function:
matmul:
- { a_type: bf16_r, b_type: bf16_r, c_type: f32_r, d_type: f32_r, compute_type: c_f32_r, scale_type: f32_r}
matrix_size: *one_matrix_size_range
transA_transB: *transA_transB_range
alpha: [ 0.0, 1.0 ]
beta: [ 0.0, 1.0 ]
gpu_arch: '90a'
- name: matmul_multithread_stream
category: nightly
function:
- matmul: *real_precisions
- matmul: *real_precisions_gemm_only
matrix_size: *medium_matrix_size_range
transA_transB: *transA_transB_range
alpha_beta: *alpha_beta_range
threads_streams: *common_threads_streams
gpu_arch: '9(42|50)'
# Subtile MXFP4 tests (gfx950)
# All use preswizzled scales (scaleA/B: 1001 = Block_32_UE8M0_32_8_EXT)
# Build: ./install.sh -dck -a gfx950
# Run: ./hipblaslt-test --gtest_filter="*subtile_fp4*"
# Basic correctness — BF16 + F16 output, batched
- name: matmul_subtile_fp4_basic
category: quick
function:
matmul:
- { a_type: f4_r, b_type: f4_r, c_type: bf16_r, d_type: bf16_r, compute_type: c_f32_r, scaleA: 1001, scaleB: 1001, scale_type: f32_r}
- { a_type: f4_r, b_type: f4_r, c_type: f16_r, d_type: f16_r, compute_type: c_f32_r, scaleA: 1001, scaleB: 1001, scale_type: f32_r}
M: [128, 256, 4096]
N: [128, 256, 4096]
K: [256, 512]
transA: T
transB: N
alpha: 1.0
beta: 0.0
batch_count: [1, 2, 3]
initialization: trig_float
unit_check: 0
norm_check: 1
requested_solution_num: 1
gpu_arch: '950'
# Edge cases — k*64, non-multiple-of-32 (mult of 16)
- name: matmul_subtile_fp4_edges
category: pre_checkin
function:
matmul:
- { a_type: f4_r, b_type: f4_r, c_type: bf16_r, d_type: bf16_r, compute_type: c_f32_r, scaleA: 1001, scaleB: 1001, scale_type: f32_r}
- { a_type: f4_r, b_type: f4_r, c_type: f16_r, d_type: f16_r, compute_type: c_f32_r, scaleA: 1001, scaleB: 1001, scale_type: f32_r}
M: [48, 64, 112, 192, 320, 448]
N: [48, 64, 112, 192, 320, 448]
K: [256]
transA: T
transB: N
alpha: 1.0
beta: 0.0
batch_count: [1, 2]
initialization: trig_float
unit_check: 0
norm_check: 1
requested_solution_num: 1
gpu_arch: '950'
# Odd and non-multiple-of-16 sizes
- name: matmul_subtile_fp4_odd
category: pre_checkin
function:
matmul:
- { a_type: f4_r, b_type: f4_r, c_type: bf16_r, d_type: bf16_r, compute_type: c_f32_r, scaleA: 1001, scaleB: 1001, scale_type: f32_r}
- { a_type: f4_r, b_type: f4_r, c_type: f16_r, d_type: f16_r, compute_type: c_f32_r, scaleA: 1001, scaleB: 1001, scale_type: f32_r}
matrix_size:
- { M: 17, N: 33, K: 256 }
- { M: 63, N: 63, K: 256 }
- { M: 97, N: 129, K: 256 }
- { M: 33, N: 128, K: 256 }
- { M: 128, N: 33, K: 256 }
- { M: 50, N: 100, K: 256 }
- { M: 66, N: 128, K: 256 }
- { M: 128, N: 66, K: 256 }
- { M: 160, N: 160, K: 256 }
- { M: 288, N: 288, K: 256 }
- { M: 33, N: 65, K: 256 }
transA: T
transB: N
alpha: 1.0
beta: 0.0
batch_count: [1, 2]
initialization: trig_float
unit_check: 0
norm_check: 1
requested_solution_num: 1
gpu_arch: '950'
# Large DepthU (K multiple of 512)
- name: matmul_subtile_fp4_large_du
category: pre_checkin
function:
matmul:
- { a_type: f4_r, b_type: f4_r, c_type: bf16_r, d_type: bf16_r, compute_type: c_f32_r, scaleA: 1001, scaleB: 1001, scale_type: f32_r}
- { a_type: f4_r, b_type: f4_r, c_type: f16_r, d_type: f16_r, compute_type: c_f32_r, scaleA: 1001, scaleB: 1001, scale_type: f32_r}
M: [128, 256, 192, 320]
N: [128, 256, 192, 320]
K: [512, 1024]
transA: T
transB: N
alpha: 1.0
beta: 0.0
batch_count: [1, 2]
initialization: trig_float
unit_check: 0
norm_check: 1
requested_solution_num: 1
gpu_arch: '950'
# K multiple of 32 (tail loop) — preswizzled scales 1001
- name: matmul_subtile_fp4_k32_multiple
category: pre_checkin
function:
matmul:
- { a_type: f4_r, b_type: f4_r, c_type: bf16_r, d_type: bf16_r, compute_type: c_f32_r, scaleA: 1001, scaleB: 1001, scale_type: f32_r}
- { a_type: f4_r, b_type: f4_r, c_type: f16_r, d_type: f16_r, compute_type: c_f32_r, scaleA: 1001, scaleB: 1001, scale_type: f32_r}
- { a_type: f4_r, b_type: f4_r, c_type: f32_r, d_type: f32_r, compute_type: c_f32_r, scaleA: 1001, scaleB: 1001, scale_type: f32_r}
M: [128, 256]
N: [128, 256]
K: [32, 64, 96, 128, 160, 192, 224, 288, 320]
transA: T
transB: N
alpha: 1.0
beta: 0.0
batch_count: [1, 2]
initialization: trig_float
unit_check: 0
norm_check: 1
requested_solution_num: 1
gpu_arch: '950'
# F32 output — full tiles, edges, batched
- name: matmul_subtile_fp4_f32_output
category: pre_checkin
function:
matmul:
- { a_type: f4_r, b_type: f4_r, c_type: f32_r, d_type: f32_r, compute_type: c_f32_r, scaleA: 1001, scaleB: 1001, scale_type: f32_r}
M: [48, 128, 192, 256, 320]
N: [48, 128, 192, 256, 320]
K: [256, 512]
transA: T
transB: N
alpha: 1.0
beta: 0.0
batch_count: [1, 2, 3]
initialization: trig_float
unit_check: 0
norm_check: 1
requested_solution_num: 1
gpu_arch: '950'
# F32 output — odd/non-aligned sizes
- name: matmul_subtile_fp4_f32_output_odd
category: pre_checkin
function:
matmul:
- { a_type: f4_r, b_type: f4_r, c_type: f32_r, d_type: f32_r, compute_type: c_f32_r, scaleA: 1001, scaleB: 1001, scale_type: f32_r}
matrix_size:
- { M: 17, N: 33, K: 256 }
- { M: 63, N: 63, K: 256 }
- { M: 50, N: 100, K: 256 }
- { M: 66, N: 66, K: 256 }
transA: T
transB: N
alpha: 1.0
beta: 0.0
batch_count: [1, 2]
initialization: trig_float
unit_check: 0
norm_check: 1
requested_solution_num: 1
gpu_arch: '950'
# Bias — BF16, F16, F32 output
# TODO: activation_type [relu, gelu] fails with batch_count > 1 for some sizes — kernel bug
- name: matmul_subtile_fp4_bias
category: nightly
function:
matmul:
- { a_type: f4_r, b_type: f4_r, c_type: bf16_r, d_type: bf16_r, compute_type: c_f32_r, scaleA: 1001, scaleB: 1001, scale_type: f32_r}
- { a_type: f4_r, b_type: f4_r, c_type: f16_r, d_type: f16_r, compute_type: c_f32_r, scaleA: 1001, scaleB: 1001, scale_type: f32_r}
- { a_type: f4_r, b_type: f4_r, c_type: f32_r, d_type: f32_r, compute_type: c_f32_r, scaleA: 1001, scaleB: 1001, scale_type: f32_r}
M: [128, 192]
N: [128, 192]
K: [256]
transA: T
transB: N
alpha: 1.0
beta: [0.0, 2.0]
bias_vector: 1
batch_count: [1, 2]
initialization: trig_float
unit_check: 0
norm_check: 1
requested_solution_num: 1
gpu_arch: '950'
# ScaleAlphaVec + bias + activations
- name: matmul_subtile_fp4_scaleAlphaVec
category: nightly
function:
matmul:
- { a_type: f4_r, b_type: f4_r, c_type: bf16_r, d_type: bf16_r, compute_type: c_f32_r, scaleA: 1001, scaleB: 1001, scale_type: f32_r}
- { a_type: f4_r, b_type: f4_r, c_type: f16_r, d_type: f16_r, compute_type: c_f32_r, scaleA: 1001, scaleB: 1001, scale_type: f32_r}
- { a_type: f4_r, b_type: f4_r, c_type: f32_r, d_type: f32_r, compute_type: c_f32_r, scaleA: 1001, scaleB: 1001, scale_type: f32_r}
M: [128, 192]
N: [128, 192]
K: [256]
transA: T
transB: N
alpha: 1.0
beta: [0.0, 2.0]
bias_vector: 1
scaleAlpha_vector: 1
activation_type: [none, relu, gelu, sigmoid, swish]
initialization: uniform_01
unit_check: 0
norm_check: 1
requested_solution_num: 1
gpu_arch: '950'
# TODO: clamp activation not applied by GPU for FP4 subtile — hipblaslt dispatch
# finds a solution but ignores HIPBLASLT_EPILOGUE_CLAMP_EXT. GPU output is unclamped
# while CPU reference correctly clamps. Not a test bug — library dispatch issue.
# Asymmetric M/N
- name: matmul_subtile_fp4_asymmetric
category: pre_checkin
function:
matmul:
- { a_type: f4_r, b_type: f4_r, c_type: bf16_r, d_type: bf16_r, compute_type: c_f32_r, scaleA: 1001, scaleB: 1001, scale_type: f32_r}
- { a_type: f4_r, b_type: f4_r, c_type: f16_r, d_type: f16_r, compute_type: c_f32_r, scaleA: 1001, scaleB: 1001, scale_type: f32_r}
matrix_size:
- { M: 192, N: 256, K: 256 }
- { M: 256, N: 192, K: 256 }
- { M: 48, N: 128, K: 256 }
- { M: 128, N: 48, K: 256 }
- { M: 64, N: 4096, K: 256 }
- { M: 4096, N: 64, K: 256 }
transA: T
transB: N
alpha: 1.0
beta: 0.0
initialization: trig_float
unit_check: 0
norm_check: 1
requested_solution_num: 1
gpu_arch: '950'
# Large sizes + multiple solutions (nightly)
- name: matmul_subtile_fp4_large
category: nightly
function:
matmul:
- { a_type: f4_r, b_type: f4_r, c_type: bf16_r, d_type: bf16_r, compute_type: c_f32_r, scaleA: 1001, scaleB: 1001, scale_type: f32_r}
- { a_type: f4_r, b_type: f4_r, c_type: f16_r, d_type: f16_r, compute_type: c_f32_r, scaleA: 1001, scaleB: 1001, scale_type: f32_r}
- { a_type: f4_r, b_type: f4_r, c_type: f32_r, d_type: f32_r, compute_type: c_f32_r, scaleA: 1001, scaleB: 1001, scale_type: f32_r}
M: [3072, 4096]
N: [3072, 4096]
K: [16384]
transA: T
transB: N
alpha: 1.0
beta: 0.0
initialization: trig_float
unit_check: 0
norm_check: 1
requested_solution_num: 10
gpu_arch: '950'
...