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
604 lines
12 KiB
YAML
604 lines
12 KiB
YAML
---
|
|
include: hipsparselt_common.yaml
|
|
include: known_bugs.yaml
|
|
include: spmm_common.yaml
|
|
|
|
Definitions:
|
|
- &alpha_beta_range
|
|
- { alpha: 5, beta: 0 }
|
|
- { alpha: 0, beta: 3 }
|
|
- { alpha: 1, beta: 3 }
|
|
- { alpha: 1, beta: 1 }
|
|
|
|
- &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 }
|
|
|
|
- &deepbench_alpha_beta_range
|
|
- { alpha: 1, beta: 0 }
|
|
- { alpha: 1, beta: 1 }
|
|
|
|
- &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 }
|
|
|
|
|
|
Tests:
|
|
- name: spmm_bad_arg
|
|
category: smoke
|
|
function:
|
|
- spmm_bad_arg: *real_precisions_2b
|
|
transA: N
|
|
transB: N
|
|
|
|
# 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_2b,
|
|
function: spmm, transA: N, transB: N, M: 256, N: 128, K: 64, alpha: [ .NaN, 2 ], beta: [ .NaN, 2 ] }
|
|
|
|
|
|
# Split *real_precisions_2b into *int8 and *nonint8_real_precisions. Since int8 has flags 0,1
|
|
|
|
- name: spmm_small
|
|
category: quick
|
|
function:
|
|
spmm: *real_precisions_2b
|
|
matrix_size: *small_matrix_size_range
|
|
transA_transB: *transA_transB_range
|
|
alpha_beta: *alpha_beta_range
|
|
sparse_b: [true, false]
|
|
alpha_vector_scaling: [true, false]
|
|
|
|
- name: spmm_small
|
|
category: quick
|
|
function:
|
|
spmm: *real_precisions_2b
|
|
matrix_size: *small_matrix_size_range
|
|
transA_transB: *transA_transB_range
|
|
alpha_beta: *alpha_beta_range
|
|
bias_vector: [true]
|
|
bias_stride: [0, -1, 256]
|
|
bias_type: [f32_r, f16_r, bf16_r]
|
|
sparse_b: [true, false]
|
|
alpha_vector_scaling: [true, false]
|
|
|
|
- name: spmm_small
|
|
category: quick
|
|
function:
|
|
spmm: *hpa_half_precision
|
|
matrix_size: *small_matrix_size_range
|
|
transA_transB: *transA_transB_range
|
|
alpha_beta: *alpha_beta_range
|
|
bias_vector: [true, false]
|
|
sparse_b: [true, false]
|
|
alpha_vector_scaling: [true, false]
|
|
gate_residual: [true]
|
|
gpu_arch: '942'
|
|
|
|
- name: spmm_medium
|
|
category: pre_checkin
|
|
function:
|
|
spmm: *real_precisions_2b
|
|
matrix_size: *medium_matrix_size_range
|
|
transA_transB: *transA_transB_range
|
|
alpha_beta: *alpha_beta_range
|
|
sparse_b: [true, false]
|
|
bias_vector: [true]
|
|
bias_stride: [0, -1, 256]
|
|
bias_type: [f32_r, f16_r, bf16_r]
|
|
sparse_b: [true, false]
|
|
alpha_vector_scaling: [true, false]
|
|
search: [true, false]
|
|
|
|
- name: spmm_medium_alt
|
|
category: pre_checkin
|
|
function:
|
|
spmm: *hpa_half_precision
|
|
matrix_size: *medium_matrix_size_range
|
|
transA_transB: *transA_transB_range
|
|
alpha: 1
|
|
beta: 0
|
|
initialization: special
|
|
sparse_b: [true, false]
|
|
|
|
- name: spmm_medium_HMM
|
|
category: HMM
|
|
function:
|
|
spmm: *real_precisions_2b
|
|
matrix_size: *medium_matrix_size_range
|
|
transA: [ N ]
|
|
transB: [ N ]
|
|
alpha: 1
|
|
beta: 1
|
|
HMM: true
|
|
sparse_b: [true, false]
|
|
|
|
- name: spmm_chunk
|
|
category: pre_checkin
|
|
function:
|
|
spmm: *real_precisions_2b
|
|
matrix_size: *chunk_matrix_size_range
|
|
transA_transB: *transA_transB_range
|
|
alpha: 2
|
|
beta: 3
|
|
sparse_b: [true, false]
|
|
|
|
# Split *int8_half_single_precisions into *int8 and *half_single_precisions. Since int8 has flags 0,1
|
|
|
|
- name: spmm_deepbench
|
|
category: nightly
|
|
function:
|
|
spmm: *real_precisions_2b
|
|
matrix_size: *deepbench_sizes
|
|
alpha_beta: *deepbench_alpha_beta_range
|
|
transA_transB: *deepbench_transA_transB_range
|
|
sparse_b: [true, false]
|
|
|
|
- name: spmm_deepbench_alt
|
|
category: nightly
|
|
function:
|
|
spmm: *hpa_half_precision
|
|
matrix_size: *deepbench_sizes
|
|
alpha: 1
|
|
beta: 0
|
|
flags: 4
|
|
initialization: special
|
|
transA_transB: *deepbench_transA_transB_range
|
|
sparse_b: [true, false]
|
|
|
|
- name: resnet50_fwd
|
|
category: nightly
|
|
function:
|
|
spmm: *real_precisions_2b
|
|
transA: N
|
|
transB: N
|
|
matrix_size: *resnet50_fwd_sizes
|
|
alpha: 1
|
|
beta: 0
|
|
sparse_b: [true, false]
|
|
orderA: [C, R]
|
|
orderB: [C, R]
|
|
|
|
- name: resnet50_fwd_alt
|
|
category: nightly
|
|
function:
|
|
spmm: *hpa_half_precision
|
|
transA: N
|
|
transB: N
|
|
matrix_size: *resnet50_fwd_sizes
|
|
alpha: 1
|
|
beta: 0
|
|
initialization: special
|
|
sparse_b: [true, false]
|
|
|
|
- name: resnet50_bwdwrw
|
|
category: nightly
|
|
function:
|
|
spmm: *real_precisions_2b
|
|
transA: T
|
|
transB: N
|
|
matrix_size: *resnet50_bwdwrw_sizes
|
|
alpha: 1
|
|
beta: 1
|
|
sparse_b: [true, false]
|
|
|
|
- name: resnet50_bwddata
|
|
category: nightly
|
|
function:
|
|
spmm: *real_precisions_2b
|
|
transA: N
|
|
transB: T
|
|
matrix_size: *resnet50_bwddata_sizes
|
|
alpha: 1
|
|
beta: 0
|
|
sparse_b: [true, false]
|
|
|
|
- name: inception4_fwd
|
|
category: nightly
|
|
function:
|
|
spmm: *real_precisions_2b
|
|
transA: N
|
|
transB: N
|
|
matrix_size: *inception4_fwd_sizes
|
|
alpha: 1
|
|
beta: 0
|
|
sparse_b: [true, false]
|
|
|
|
- name: inception4_bwdwrw
|
|
category: nightly
|
|
function:
|
|
spmm: *real_precisions_2b
|
|
transA: T
|
|
transB: N
|
|
matrix_size: *inception4_bwdwrw_sizes
|
|
alpha: 1
|
|
beta: 1
|
|
sparse_b: [true, false]
|
|
|
|
- name: inception4_bwddata
|
|
category: nightly
|
|
function:
|
|
spmm: *real_precisions_2b
|
|
transA: N
|
|
transB: T
|
|
matrix_size: *inception4_bwddata_sizes
|
|
alpha: 1
|
|
beta: 0
|
|
sparse_b: [true, false]
|
|
|
|
- name: ctest_bwdwrw
|
|
category: nightly
|
|
function:
|
|
spmm: *real_precisions_2b
|
|
transA: T
|
|
transB: N
|
|
alpha: 1
|
|
beta: 1
|
|
matrix_size: *ctest_bwdwrw_sizes
|
|
sparse_b: [true, false]
|
|
|
|
- name: ctest_fwd
|
|
category: nightly
|
|
function:
|
|
spmm: *real_precisions_2b
|
|
transA: N
|
|
transB: N
|
|
alpha: 1
|
|
beta: 0
|
|
matrix_size: *ctest_fwd_sizes
|
|
sparse_b: [true, false]
|
|
|
|
- name: spmm_8
|
|
category: quick
|
|
function:
|
|
spmm: *real_precisions_2b
|
|
M: 8
|
|
N: 8
|
|
K: 8
|
|
alpha_beta: *alpha_beta_range
|
|
transA_transB: *transA_transB_range
|
|
sparse_b: [true, false]
|
|
|
|
- name: spmm_16
|
|
category: pre_checkin
|
|
function:
|
|
spmm: *real_precisions_2b
|
|
M: 16
|
|
K: 16
|
|
alpha_beta: *alpha_beta_range
|
|
transA_transB: *transA_transB_range
|
|
sparse_b: [true, false]
|
|
|
|
- name: spmm_24
|
|
category: pre_checkin
|
|
function:
|
|
spmm: *real_precisions_2b
|
|
M: 24
|
|
N: 24
|
|
K: 24
|
|
alpha_beta: *alpha_beta_range
|
|
transA_transB: *transA_transB_range
|
|
sparse_b: [true, false]
|
|
|
|
- name: spmm_algo
|
|
category: pre_checkin
|
|
function:
|
|
spmm: *real_precisions_2b
|
|
M: 32
|
|
N: 32
|
|
K: 32
|
|
alpha_beta: *alpha_beta_range
|
|
transA_transB: *transA_transB_range
|
|
spmm_algo: [ 0, 1 ]
|
|
sparse_b: [true, false]
|
|
|
|
- name: spmm_32_8_128
|
|
category: nightly
|
|
function:
|
|
spmm: *real_precisions_2b
|
|
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
|
|
sparse_b: [true, false]
|
|
|
|
|
|
- name: spmm_48_8_128
|
|
category: nightly
|
|
function:
|
|
spmm: *real_precisions_2b
|
|
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
|
|
sparse_b: [true, false]
|
|
|
|
- name: spmm_64_8_128
|
|
category: nightly
|
|
function:
|
|
spmm: *real_precisions_2b
|
|
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
|
|
sparse_b: [true, false]
|
|
|
|
- name: spmm_64_8
|
|
category: quick
|
|
function:
|
|
spmm: *real_precisions_2b
|
|
M: 64
|
|
N: 8
|
|
K: 8
|
|
alpha_beta: *alpha_beta_range
|
|
transA_transB: *transA_transB_range
|
|
sparse_b: [true, false]
|
|
|
|
- name: spmm_8_64
|
|
category: quick
|
|
function:
|
|
spmm: *real_precisions_2b
|
|
M: 8
|
|
N: 8
|
|
K: 64
|
|
alpha_beta: *alpha_beta_range
|
|
transA_transB: *transA_transB_range
|
|
sparse_b: [true, false]
|
|
|
|
|
|
- name: spmm_96
|
|
category: pre_checkin
|
|
function:
|
|
spmm: *real_precisions_2b
|
|
M: 96
|
|
N: 96
|
|
K: 96
|
|
alpha_beta: *alpha_beta_range
|
|
transA_transB: *transA_transB_range
|
|
sparse_b: [true, false]
|
|
|
|
- name: spmm_128
|
|
category: pre_checkin
|
|
function:
|
|
spmm: *real_precisions_2b
|
|
M: 128
|
|
N: 128
|
|
K: 128
|
|
alpha_beta: *alpha_beta_range
|
|
transA_transB: *transA_transB_range
|
|
sparse_b: [true, false]
|
|
|
|
- name: spmm_256
|
|
category: pre_checkin
|
|
function:
|
|
spmm: *real_precisions_2b
|
|
M: 256
|
|
N: 256
|
|
K: 256
|
|
alpha_beta: *alpha_beta_range
|
|
transA_transB: *transA_transB_range
|
|
sparse_b: [true, false]
|
|
|
|
- name: spmm_256_8_16
|
|
category: pre_checkin
|
|
function:
|
|
spmm: *real_precisions_2b
|
|
M: 256
|
|
N: 8
|
|
K: 16
|
|
alpha_beta: *alpha_beta_range
|
|
transA_transB: *transA_transB_range
|
|
sparse_b: [true, false]
|
|
|
|
- name: spmm_16_256_8
|
|
category: pre_checkin
|
|
function:
|
|
spmm: *real_precisions_2b
|
|
M: 16
|
|
N: 256
|
|
K: 8
|
|
alpha_beta: *alpha_beta_range
|
|
transA_transB: *transA_transB_range
|
|
sparse_b: [true, false]
|
|
|
|
- name: spmm_8_16_256
|
|
category: pre_checkin
|
|
function:
|
|
spmm: *real_precisions_2b
|
|
M: 8
|
|
N: 16
|
|
K: 256
|
|
alpha_beta: *alpha_beta_range
|
|
transA_transB: *transA_transB_range
|
|
sparse_b: [true, false]
|
|
|
|
- name: spmm_512
|
|
category: pre_checkin
|
|
function:
|
|
spmm: *real_precisions_2b
|
|
M: 512
|
|
N: 512
|
|
K: 512
|
|
alpha_beta: *alpha_beta_range
|
|
transA_transB: *transA_transB_range
|
|
sparse_b: [true, false]
|
|
|
|
- name: spmm_1024
|
|
category: nightly
|
|
function:
|
|
spmm: *real_precisions_2b
|
|
M: 1024
|
|
N: 1024
|
|
K: 1024
|
|
alpha_beta: *alpha_beta_range
|
|
transA_transB: *transA_transB_range
|
|
sparse_b: [true, false]
|
|
|
|
- name: spmm_bf16
|
|
category: pre_checkin
|
|
function:
|
|
spmm: *hpa_bf16_precision
|
|
transA: T
|
|
transB: N
|
|
alpha: 1
|
|
beta: 0
|
|
matrix_size:
|
|
- { M: 512, N: 512, K: 512 }
|
|
- { M: 1024, N: 1024, K: 1024 }
|
|
- { M: 2048, N: 2048, K: 2048 }
|
|
- { M: 4096, N: 4096, K: 4096 }
|
|
- { M: 960, N: 1024, K: 1024 }
|
|
- { M: 3840, N: 4096, K: 4096 }
|
|
sparse_b: [true, false]
|
|
|
|
- name: spmm_small2
|
|
category: pre_checkin
|
|
transA: N
|
|
transB: N
|
|
function:
|
|
spmm: *real_precisions_2b
|
|
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 ]
|
|
sparse_b: [true, false]
|
|
|
|
- name: spmm_128_activation
|
|
category: pre_checkin
|
|
function:
|
|
spmm: *real_precisions_2b
|
|
M: 128
|
|
N: 128
|
|
K: 128
|
|
transA: N
|
|
transB: N
|
|
alpha: 1
|
|
beta: 0
|
|
activation_type: [ none, relu, abs]
|
|
sparse_b: [true, false]
|
|
|
|
- name: spmm_128_activation_sigmoid
|
|
category: pre_checkin
|
|
function:
|
|
spmm: *activation_sigmoid_tanh_precisions
|
|
M: 128
|
|
N: 128
|
|
K: 128
|
|
transA: N
|
|
transB: N
|
|
alpha: 1
|
|
beta: 0
|
|
activation_type: [sigmoid]
|
|
sparse_b: [true, false]
|
|
|
|
- name: spmm_128_activation_tanh
|
|
category: pre_checkin
|
|
function:
|
|
spmm: *activation_sigmoid_tanh_precisions
|
|
M: 128
|
|
N: 128
|
|
K: 128
|
|
transA: N
|
|
transB: N
|
|
alpha: 1
|
|
beta: 0
|
|
activation_type: [tanh]
|
|
activation_arg1 : [-1.0, 0.0, 0.5, 1.0]
|
|
activation_arg2 : [-1.0, 0.0, 0.5, 1.0, 3.0]
|
|
sparse_b: [true, false]
|
|
|
|
- name: spmm_128_activation_leakyrelu
|
|
category: pre_checkin
|
|
function:
|
|
spmm: *real_precisions_2b
|
|
M: 128
|
|
N: 128
|
|
K: 128
|
|
transA: N
|
|
transB: N
|
|
alpha: 1
|
|
beta: 0
|
|
activation_type: [leakyrelu]
|
|
activation_arg1 : [-1.0, 0.0, 0.5, 1.0]
|
|
sparse_b: [true, false]
|
|
|
|
- name: spmm_128_activation_gelu
|
|
category: pre_checkin
|
|
function:
|
|
spmm: *real_precisions_2b
|
|
M: 128
|
|
N: 128
|
|
K: 128
|
|
transA: N
|
|
transB: N
|
|
alpha: 1
|
|
beta: 0
|
|
activation_type: [gelu]
|
|
activation_arg1 : [-1.0, 0.0, 0.5, 1.0]
|
|
sparse_b: [true, false]
|
|
unit_check: 1
|
|
norm_check: 0
|
|
|
|
- name: spmm_128_activation_clippedrelu
|
|
category: pre_checkin
|
|
function:
|
|
spmm: *real_precisions_2b
|
|
M: 128
|
|
N: 128
|
|
K: 128
|
|
transA: N
|
|
transB: N
|
|
alpha: 1
|
|
beta: 0
|
|
activation_type: clippedrelu
|
|
activation_arg1 : [-1.0, 0.0, 0.5]
|
|
activation_arg2 : [-1.0, 0.0, 0.5, 1.0, 3.0]
|
|
sparse_b: [true, false]
|
|
|
|
- name: aux_plan_assign
|
|
category: smoke
|
|
function:
|
|
aux_plan_assign: *hpa_int8_precision
|
|
M: 128
|
|
N: 128
|
|
K: 128
|
|
transA: T
|
|
transB: N
|
|
alpha: 1
|
|
beta: 0
|
|
sparse_b: [false]
|
|
|
|
- name: spmm_logging
|
|
category: pre_checkin
|
|
function:
|
|
spmm_logging: *hpa_half_precision
|
|
M: 128
|
|
N: 128
|
|
K: 128
|
|
transA: N
|
|
transB: N
|
|
alpha: 1
|
|
beta: 0
|
|
activation_type: clippedrelu
|
|
activation_arg1 : [0.5]
|
|
activation_arg2 : [1.0]
|
|
sparse_b: [false]
|
|
logging: [5]
|
|
...
|