# ######################################################################## # Copyright (C) 2019-2026 Advanced Micro Devices, Inc. All rights Reserved. # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal # in the Software without restriction, including without limitation the rights # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell # copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. # # ######################################################################## --- include: rocsparse_common.yaml Definitions: - &alpha_range_quick - { alpha: 1.0, alphai: 1.0 } - &alpha_range_checkin - { alpha: 2.0, alphai: 0.5 } - { alpha: 0.0, alphai: 1.5 } - &alpha_range_nightly - { alpha: 0.0, alphai: 1.5 } - { alpha: 2.0, alphai: 0.0 } - { alpha: 3.0, alphai: 1.5 } - &beta_range_quick - { beta: 1.0, betai: 1.0 } - &beta_range_checkin - { beta: 0.0, betai: 1.5 } - { beta: 3.0, betai: 1.0 } - &beta_range_nightly - { beta: 0.0, betai: 1.5 } - { beta: 3.0, betai: 1.5 } - { beta: -0.5, betai: 1.0 } Tests: # C = alpha * A * B - name: csrgemm_mult category: quick function: csrgemm precision: *single_double_precisions_complex_real M: [50] N: [13] K: [50] alpha_alphai: *alpha_range_quick beta: [-99.0] transA: [rocsparse_operation_none] transB: [rocsparse_operation_none] baseA: [rocsparse_index_base_zero] baseB: [rocsparse_index_base_zero] baseC: [rocsparse_index_base_zero] matrix: [rocsparse_matrix_zero] - name: csrgemm_mult category: quick function: csrgemm precision: *single_double_precisions_complex_real M: [50, 300] N: [13, 300] K: [50, 254] alpha_alphai: *alpha_range_quick beta: [-99.0] transA: [rocsparse_operation_none] transB: [rocsparse_operation_none] baseA: [rocsparse_index_base_one] baseB: [rocsparse_index_base_one] baseC: [rocsparse_index_base_one] matrix: [rocsparse_matrix_random] - name: csrgemm_mult_file category: quick function: csrgemm precision: *single_double_precisions M: 1 N: [13, 300] K: 1 alpha_alphai: *alpha_range_quick beta: [-99.0] transA: [rocsparse_operation_none] transB: [rocsparse_operation_none] baseA: [rocsparse_index_base_zero] baseB: [rocsparse_index_base_zero] baseC: [rocsparse_index_base_one] matrix: [rocsparse_matrix_file_rocalution] filename: [nos1, nos2, nos3, nos4, nos5, nos6, nos7] - name: csrgemm_mult_file category: quick function: csrgemm precision: *single_double_precisions_complex M: 1 N: [21, 300] K: 1 alpha_alphai: *alpha_range_quick beta: [-99.0] transA: [rocsparse_operation_none] transB: [rocsparse_operation_none] baseA: [rocsparse_index_base_zero] baseB: [rocsparse_index_base_one] baseC: [rocsparse_index_base_one] matrix: [rocsparse_matrix_file_rocalution] filename: [qc2534, mplate] - name: csrgemm_bad_arg category: pre_checkin function: csrgemm_bad_arg precision: *single_double_precisions_complex_real - name: csrgemm_mult category: pre_checkin function: csrgemm precision: *single_double_precisions_complex_real M: [8, 1799] N: [8, 2000] K: [0, 1942, 9848] alpha_alphai: *alpha_range_checkin beta: [-99.0] transA: [rocsparse_operation_none] transB: [rocsparse_operation_none] baseA: [rocsparse_index_base_zero] baseB: [rocsparse_index_base_zero] baseC: [rocsparse_index_base_zero] matrix: [rocsparse_matrix_random] - name: csrgemm_mult_file category: pre_checkin function: csrgemm precision: *single_double_precisions M: 1 N: [8, 2000] K: 1 alpha_alphai: *alpha_range_checkin beta: [-99.0] transA: [rocsparse_operation_none] transB: [rocsparse_operation_none] baseA: [rocsparse_index_base_one] baseB: [rocsparse_index_base_one] baseC: [rocsparse_index_base_one] matrix: [rocsparse_matrix_file_rocalution] filename: [mc2depi, ASIC_320k, scircuit, mac_econ_fwd500, nos1, nos3, nos5, nos7] - name: csrgemm_mult_file category: pre_checkin function: csrgemm precision: *single_double_precisions_complex M: 1 N: [8, 2000] K: 1 alpha_alphai: *alpha_range_checkin beta: [-99.0] transA: [rocsparse_operation_none] transB: [rocsparse_operation_none] baseA: [rocsparse_index_base_zero] baseB: [rocsparse_index_base_zero] baseC: [rocsparse_index_base_zero] matrix: [rocsparse_matrix_file_rocalution] filename: [mplate, Chevron2, Chevron3] # Coverage gap tests: high intermediate products per row (develop vs reduced_ci) # Semi-dense matrices to trigger group sizes 4-6 (1K-8K intermediates) - name: csrgemm_mult_high_intermediates category: pre_checkin function: csrgemm precision: *double_only_precisions M: [128] N: [128] K: [256] percentage: [0.4] alpha_alphai: *alpha_range_checkin beta: [-99.0] transA: [rocsparse_operation_none] transB: [rocsparse_operation_none] baseA: [rocsparse_index_base_zero] baseB: [rocsparse_index_base_zero] baseC: [rocsparse_index_base_zero] matrix_init_kind: [rocsparse_matrix_init_kind_tunedavg] matrix: [rocsparse_matrix_random] - name: csrgemm_mult category: nightly function: csrgemm precision: *single_double_precisions_complex_real M: [5000] N: [2619, 2588] K: [442, 42312, 743434] alpha_alphai: *alpha_range_nightly beta: [-99.0] transA: [rocsparse_operation_none] transB: [rocsparse_operation_none] baseA: [rocsparse_index_base_zero] baseB: [rocsparse_index_base_zero] baseC: [rocsparse_index_base_zero] matrix: [rocsparse_matrix_random] - name: csrgemm_mult_file category: nightly function: csrgemm precision: *single_double_precisions M: 1 N: [2619, 2588] K: 1 alpha_alphai: *alpha_range_nightly beta: [-99.0] transA: [rocsparse_operation_none] transB: [rocsparse_operation_none] baseA: [rocsparse_index_base_zero] baseB: [rocsparse_index_base_zero] baseC: [rocsparse_index_base_zero] matrix: [rocsparse_matrix_file_rocalution] filename: [amazon0312, Chebyshev4, webbase-1M] # bibd_22_8: dense combinatorial-design pattern — single-precision csrgemm # accumulates enough round-off here to marginally exceed the strict f32 # tolerance (~4% over) on several GPUs. Relax with a small tolerance multiplier. - name: csrgemm_mult_file category: nightly function: csrgemm precision: *single_double_precisions M: 1 N: [2619, 2588] K: 1 alpha_alphai: *alpha_range_nightly beta: [-99.0] transA: [rocsparse_operation_none] transB: [rocsparse_operation_none] baseA: [rocsparse_index_base_zero] baseB: [rocsparse_index_base_zero] baseC: [rocsparse_index_base_zero] matrix: [rocsparse_matrix_file_rocalution] tolm: 4 filename: [bibd_22_8] - name: csrgemm_mult_file category: nightly function: csrgemm precision: *double_only_precisions M: 1 N: [2619, 2588] K: 1 alpha_alphai: *alpha_range_nightly beta: [-99.0] transA: [rocsparse_operation_none] transB: [rocsparse_operation_none] baseA: [rocsparse_index_base_zero] baseB: [rocsparse_index_base_zero] baseC: [rocsparse_index_base_zero] matrix: [rocsparse_matrix_file_rocalution] filename: [scircuit, sme3Dc, shipsec1, rma10] - name: csrgemm_mult_file category: nightly function: csrgemm precision: *single_double_precisions_complex M: 1 N: [2411, 3492] K: 1 alpha_alphai: *alpha_range_nightly beta: [-99.0] transA: [rocsparse_operation_none] transB: [rocsparse_operation_none] baseA: [rocsparse_index_base_zero] baseB: [rocsparse_index_base_zero] baseC: [rocsparse_index_base_zero] matrix: [rocsparse_matrix_file_rocalution] filename: [Chevron4] # C = beta * D - name: csrgemm_scale category: quick function: csrgemm precision: *single_double_precisions_complex_real M: [300] N: [243] alpha: [-99.0] beta_betai: *beta_range_quick baseC: [rocsparse_index_base_one] baseD: [rocsparse_index_base_zero] matrix: [rocsparse_matrix_zero] - name: csrgemm_scale category: quick function: csrgemm precision: *single_double_precisions_complex_real M: [8] N: [8, 12] alpha: [-99.0] beta_betai: *beta_range_quick baseC: [rocsparse_index_base_zero] baseD: [rocsparse_index_base_zero] matrix: [rocsparse_matrix_random] - name: csrgemm_scale_file category: quick function: csrgemm precision: *single_double_precisions M: 1 N: 1 alpha: [-99.0] beta_betai: *beta_range_quick baseC: [rocsparse_index_base_one] baseD: [rocsparse_index_base_one] matrix: [rocsparse_matrix_file_rocalution] filename: [nos1, nos2, nos3, nos4, nos5, nos6, nos7] - name: csrgemm_scale_file category: quick function: csrgemm precision: *single_double_precisions_complex M: 1 N: 1 alpha: [-99.0] beta_betai: *beta_range_quick baseC: [rocsparse_index_base_zero] baseD: [rocsparse_index_base_one] matrix: [rocsparse_matrix_file_rocalution] filename: [qc2534, mplate] - name: csrgemm_scale category: pre_checkin function: csrgemm precision: *single_double_precisions_complex_real M: [8, 932] N: [8, 784] alpha: [-99.0] beta_betai: *beta_range_checkin baseC: [rocsparse_index_base_zero] baseD: [rocsparse_index_base_zero] matrix: [rocsparse_matrix_random] - name: csrgemm_scale_file category: pre_checkin function: csrgemm precision: *single_double_precisions M: 1 N: 1 alpha: [-99.0] beta_betai: *beta_range_checkin baseC: [rocsparse_index_base_one] baseD: [rocsparse_index_base_one] matrix: [rocsparse_matrix_file_rocalution] filename: [rma10, ASIC_320k, mc2depi, scircuit, mac_econ_fwd500, nos1, nos3, nos5, nos7] - name: csrgemm_scale_file category: pre_checkin function: csrgemm precision: *single_double_precisions_complex M: 1 N: 1 alpha: [-99.0] beta_betai: *beta_range_checkin baseC: [rocsparse_index_base_zero] baseD: [rocsparse_index_base_zero] matrix: [rocsparse_matrix_file_rocalution] filename: [mplate, Chevron2, Chevron3] - name: csrgemm_scale category: nightly function: csrgemm precision: *single_double_precisions_complex_real M: [5000] N: [1516, 4208] alpha: [-99.0] beta_betai: *beta_range_nightly baseC: [rocsparse_index_base_zero] baseD: [rocsparse_index_base_zero] matrix: [rocsparse_matrix_random] - name: csrgemm_scale_file category: nightly function: csrgemm precision: *single_double_precisions M: 1 N: 1 alpha: [-99.0] beta_betai: *beta_range_nightly baseC: [rocsparse_index_base_zero] baseD: [rocsparse_index_base_zero] matrix: [rocsparse_matrix_file_rocalution] filename: [bibd_22_8, bmwcra_1, amazon0312, Chebyshev4, sme3Dc, webbase-1M, shipsec1] - name: csrgemm_scale_file category: nightly function: csrgemm precision: *single_double_precisions_complex M: 1 N: 1 alpha: [-99.0] beta_betai: *beta_range_nightly baseC: [rocsparse_index_base_zero] baseD: [rocsparse_index_base_zero] matrix: [rocsparse_matrix_file_rocalution] filename: [Chevron4] # C = alpha * A * B + beta * D - name: csrgemm_mult_scale category: quick function: csrgemm precision: *single_double_precisions_complex_real M: [300] N: [300] K: [300] alpha_alphai: *alpha_range_quick beta_betai: *beta_range_quick baseA: [rocsparse_index_base_zero] baseB: [rocsparse_index_base_one] baseC: [rocsparse_index_base_zero] baseD: [rocsparse_index_base_one] matrix: [rocsparse_matrix_zero] - name: csrgemm_mult_scale category: quick function: csrgemm precision: *single_double_precisions_complex_real M: [300] N: [300] K: [300] alpha_alphai: *alpha_range_quick beta_betai: *beta_range_quick baseA: [rocsparse_index_base_one] baseB: [rocsparse_index_base_zero] baseC: [rocsparse_index_base_one] baseD: [rocsparse_index_base_zero] matrix: [rocsparse_matrix_random] - name: csrgemm_mult_scale_file category: quick function: csrgemm precision: *single_double_precisions M: 1 N: [13, 222] K: 1 alpha_alphai: *alpha_range_quick beta_betai: *beta_range_quick baseA: [rocsparse_index_base_zero] baseB: [rocsparse_index_base_zero] baseC: [rocsparse_index_base_one] baseD: [rocsparse_index_base_one] matrix: [rocsparse_matrix_file_rocalution] filename: [nos1, nos2, nos3, nos4, nos5, nos6, nos7] - name: csrgemm_mult_scale_file category: quick function: csrgemm precision: *single_double_precisions_complex M: 1 N: [21, 45] K: 1 alpha_alphai: *alpha_range_quick beta_betai: *beta_range_quick baseA: [rocsparse_index_base_one] baseB: [rocsparse_index_base_one] baseC: [rocsparse_index_base_zero] baseD: [rocsparse_index_base_zero] matrix: [rocsparse_matrix_file_rocalution] filename: [qc2534, mplate] - name: csrgemm_mult_scale_file category: pre_checkin function: csrgemm precision: *single_double_precisions M: 1 N: [276] K: 1 alpha_alphai: *alpha_range_checkin beta_betai: *beta_range_checkin baseA: [rocsparse_index_base_zero] baseB: [rocsparse_index_base_zero] baseC: [rocsparse_index_base_one] baseD: [rocsparse_index_base_zero] matrix: [rocsparse_matrix_file_rocalution] filename: [rma10, ASIC_320k, mc2depi, scircuit, mac_econ_fwd500, webbase-1M, shipsec1] - name: csrgemm_mult_scale_file category: nightly function: csrgemm precision: *single_double_precisions M: 1 N: [120] K: 1 alpha_alphai: *alpha_range_nightly beta_betai: *beta_range_nightly baseA: [rocsparse_index_base_zero] baseB: [rocsparse_index_base_zero] baseC: [rocsparse_index_base_zero] baseD: [rocsparse_index_base_one] matrix: [rocsparse_matrix_file_rocalution] filename: [bibd_22_8, bmwcra_1, amazon0312, Chebyshev4, sme3Dc]