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
3331 lines
80 KiB
YAML
Executable File
3331 lines
80 KiB
YAML
Executable File
---
|
||
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'
|
||
|
||
...
|