--- include: rocblas_common.yaml include: known_bugs.yaml Definitions: - &size_t_m_n_lda_ldb_ldc - { M: 4096, N: 4096, lda: 1048600, ldb: 4096, ldc: 4096 } - { M: 4096, N: 4096, lda: 4096, ldb: 1048600, ldc: 4096 } - { M: 4096, N: 4096, lda: 4096, ldb: 4096, ldc: 1048600 } - &quick_matrix_size_range - { M: -1, N: 1, lda: 1, ldb: 1, ldc: 1 } # bad n - { M: 2, N: -1, lda: 2, ldb: 2, ldc: 1 } # bad k - { M: 0, N: 3, lda: 3, ldb: 3, ldc: 3 } # n==0 - { M: 3, N: 0, lda: 3, ldb: 3, ldc: 3 } # k==0 - { M: 3, N: 3, lda: 1, ldb: 3, ldc: 3 } # bad lda - { M: 1, N: 3, lda: 1, ldb: 3, ldc: 3 } # bad lda if right - { M: 3, N: 3, lda: 3, ldb: 1, ldc: 3 } # bad ldb - { M: 3, N: 3, lda: 3, ldb: 3, ldc: 1 } # bad ldc - &alpha_beta_quick_range - { alpha: 0.0, alphai: 0.0, beta: 1.0, betai: 0.0 } # quick success - { alpha: 0.0, alphai: 0.0, beta: 2.0, betai: 0.5 } # scale step only - &tiny_matrix_size - { M: 88, N: 100, lda: 200, ldb: 88, ldc: 88 } - &medium_matrix_size_range - { M: 12, N: 33, lda: 33, ldb: 33, ldc: 33 } - { M: 88, N: 100, lda: 200, ldb: 88, ldc: 88 } - { M: 199, N: 290, lda: 290, ldb: 290, ldc: 200 } - &large_matrix_size_range - { M: 2011, N: 253, lda: 2011, ldb: 2011, ldc: 2048 } - { M: 1024, N: 1200, lda: 1200, ldb: 1200, ldc: 1024 } - &alpha_beta_range - { alpha: 1.5, alphai: 1.5, beta: 2.0, betai: 0.0 } - { alpha: -2.0, alphai: 1.0, beta: -1.0, betai: 0.5 } - &alpha_beta - { alpha: 0.5, alphai: 0.5, beta: -0.5, betai: 0.5 } Tests: - name: hemm_bad category: quick function: - hemm_bad_arg - hemm_batched_bad_arg - hemm_strided_batched_bad_arg precision: *single_double_precisions_complex api: [ C, FORTRAN, FORTRAN_64 ] - name: hemm_quick category: quick function: hemm precision: *single_double_precisions_complex uplo: [ U ] side: [ L, R ] matrix_size: *quick_matrix_size_range alpha: [ 0, 1 ] beta: [ 0, 1 ] - name: hemm_NaN category: pre_checkin function: hemm precision: *single_double_precisions_complex uplo: [ U ] side: [ L ] matrix_size: *tiny_matrix_size alpha: [ 2.0, .NaN ] # NaN is converted to 0.0 in test code beta: [ 1.0, .NaN ] - name: hemm_medium category: pre_checkin function: hemm precision: *single_double_precisions_complex uplo: [ U, L ] side: [ L, R ] matrix_size: *medium_matrix_size_range alpha_beta: *alpha_beta_range api: [ C, FORTRAN ] - name: hemm_large category: nightly function: hemm precision: *single_double_precisions_complex uplo: [ U, L ] side: [ L, R ] matrix_size: *large_matrix_size_range pointer_mode_device: false alpha_beta: *alpha_beta_range - name: hemm_size_t category: stress function: hemm precision: *single_precision_complex uplo: [ U, L ] side: [ L, R ] matrix_size: *size_t_m_n_lda_ldb_ldc pointer_mode_host: false alpha: [ 2 ] beta: [ 2 ] gpu_arch: ['90a','942','950'] os_flags: LINUX - name: hemm_grid_y_16 category: nightly function: hemm precision: *single_precision_complex arguments: - { side: L, uplo: L} matrix_size: # - { M: 4, N: 525000, lda: 4, ldb: 4, ldc: 4 } # n > 2^16 * 8 = 524288 # < scal limit < hemm limit # - { M: 4, N: 524000, lda: 4, ldb: 4, ldc: 4 } # n < 2^16 * 8 = 524288 # > scal limit < hemm limit - { M: 4, N: 2097200, lda: 4, ldb: 4, ldc: 4 } # n < 2^16 * 32 = 2097152 # > scal limit > hemm limit alpha: [ 0, 2 ] beta: [ 0, 2 ] # batched - name: hemm_batched_NaN category: pre_checkin function: hemm_batched precision: *double_precision_complex uplo: [ L ] side: [ R ] matrix_size: *tiny_matrix_size alpha: [ 1.0, .NaN ] # NaN is converted to 0.0 in test code beta: [ 0.5, .NaN ] batch_count: [ 2 ] - name: hemm_batched_quick category: quick function: hemm_batched precision: *single_double_precisions_complex uplo: [ U ] side: [ L, R ] matrix_size: *quick_matrix_size_range alpha: [ 0, 1 ] beta: [ 0, 1 ] batch_count: [ 0, 1 ] - name: hemm_batched_medium category: pre_checkin function: hemm_batched precision: *single_double_precisions_complex uplo: [ U, L ] side: [ L, R ] matrix_size: *medium_matrix_size_range alpha_beta: *alpha_beta_range batch_count: [ 1, 7 ] api: [ C, FORTRAN ] - name: hemm_batched_large category: nightly function: hemm_batched precision: *single_double_precisions_complex uplo: [ U, L ] side: [ L, R ] matrix_size: *large_matrix_size_range pointer_mode_device: false alpha_beta: *alpha_beta_range batch_count: [ 2 ] - name: hemm_batched_size_t category: stress function: hemm_batched precision: *single_precision_complex uplo: [ U, L ] side: [ L, R ] matrix_size: *size_t_m_n_lda_ldb_ldc pointer_mode_host: false alpha: [ 2 ] beta: [ 2 ] batch_count: [ 1 ] gpu_arch: ['90a','942','950'] os_flags: LINUX # strided batched - name: hemm_strided_batched_quick category: quick function: hemm_strided_batched precision: *single_double_precisions_complex uplo: [ U ] side: [ L, R ] matrix_size: *quick_matrix_size_range alpha: [ 0, 1 ] beta: [ 0, 1 ] batch_count: [ 0, 1 ] stride_scale: [1] - name: hemm_strided_batched_NaN category: pre_checkin function: hemm_strided_batched precision: *single_precision_complex uplo: [ L ] side: [ R ] matrix_size: *tiny_matrix_size alpha: [ 0.5, .NaN ] # NaN is converted to 0.0 in test code beta: [ 1.0, .NaN ] batch_count: [ 3 ] stride_scale: [1] - name: hemm_strided_batched_medium category: pre_checkin function: hemm_strided_batched precision: *single_double_precisions_complex uplo: [ U, L ] side: [ L, R ] matrix_size: *medium_matrix_size_range alpha_beta: *alpha_beta_range batch_count: [ 1, 7 ] stride_scale: [1] api: [ C, FORTRAN ] - name: hemm_strided_batched_large category: nightly function: hemm_strided_batched precision: *single_double_precisions_complex uplo: [ U, L ] side: [ L, R ] matrix_size: *large_matrix_size_range pointer_mode_host: false alpha_beta: *alpha_beta_range batch_count: [ 2 ] stride_scale: [1] - name: hemm_graph_test category: pre_checkin function: - hemm - hemm_batched - hemm_strided_batched precision: *single_double_precisions_complex uplo: [ U ] side: [ L, R ] matrix_size: - { M: 88, N: 100, lda: 200, ldb: 88, ldc: 88 } alpha_beta: *alpha_beta batch_count: [ 2 ] stride_scale: [1] graph_test: true - name: hemm_repeatability_check category: stress function: - hemm - hemm_batched - hemm_strided_batched precision: *single_double_precisions_complex uplo: [ U ] side: [ L, R ] matrix_size: - { M: 88, N: 100, lda: 200, ldb: 88, ldc: 88 } alpha_beta: *alpha_beta batch_count: [ 2 ] stride_scale: [1] pointer_mode_host: false initialization : hpl atomics_mode: 0 iters: 5 devices: 4 repeatability_check: true - name: hemm_large_batch category: pre_checkin function: - hemm_batched - hemm_strided_batched precision: *single_precision_complex uplo: [ U, L ] side: [ L, R ] matrix_size: - { M: 2, N: 2, lda: 4, ldb: 2, ldc : 4 , batch_count: *c_grid_yz_require_passes } stride_scale: [1] alpha: [ 2 ] beta: [ 2 ] - name: hemm_ILP64_L category: stress api: [C_64] function: - hemm # same code path # - hemm_strided_batched precision: *single_precision_complex uplo: [ U, L ] side: [ L ] matrix_size: - { M: 2, N: 2147483649, lda: 2147483649, ldb: 2 , ldc: 2 } - { M: 4096, N: 2, lda: 4096, ldb: 2147483649, ldc: 4096 } alpha: [ 2 ] beta: [ 2 ] stride_scale: [1] os_flags: LINUX gpu_arch: ['90a','942','950'] # TODO: 32GB/matrix x 3 exceeds current default test limits so remove for now # - name: hemm_ILP64_R # category: stress # api: [C_64] # function: # - hemm # - hemm_strided_batched # precision: *single_precision_complex # arguments: # - { M: 2147483649, N: 2, lda: 2147483649, ldb: 2147483649, ldc: 2147483649 } # N can't be 32-bit for side == R # uplo: [ U, L ] # side: [ R ] # alpha: [ 2 ] # beta: [ 2 ] # stride_scale: [1] # os_flags: LINUX # gpu_arch: ['90a','942','950'] - name: hemm_batched_ILP64 category: stress function: - hemm_batched - hemm_strided_batched precision: *single_precision_complex uplo: [ U, L ] side: [ L, R ] matrix_size: - { M: 2, N: 2, lda: 4, ldb: 2, ldc : 4 , batch_count: *c_grid_yz_require_passes } alpha_beta: *alpha_beta api : [ C_64 ] os_flags: LINUX gpu_arch: ['90a','942','950']