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

367 lines
12 KiB
YAML

---
include: rocblas_common.yaml
include: known_bugs.yaml
Definitions:
- &size_t_xy_range
- { N: 1048600, incx: 4096, incy: 1 }
- { N: 1048600, incx: 1, incy: 4096 }
# TODO add back when workaround for OpenBLAS on windows negative overflow failures
#- { N: 1048600, incx: -4096, incy: 1 }
#- { N: 1048600, incx: 1, incy: -4096 }
- &incx_incy_range
- { incx: 1, incy: 1 }
- { incx: 1, incy: 2 }
- { incx: 2, incy: 1 }
- { incx: 1, incy: -1 }
- { incx: -1, incy: 1 }
- { incx: -3, incy: -3 }
- { incx: 0, incy: 1 }
- { incx: 0, incy: 0 }
# - { incx: 1, incy: 0 } # Indeterminate when y is output
- &size_t_pos_neg_xy_range
- { N: 4, incx: *c_pos_x2_overflow_int32, incy: 1 } # small operation count, should overflow x
- { N: 4, incx: *c_neg_x2_overflow_int32, incy: 1 } # small operation count, should overflow x
- { N: 4, incx: 1, incy: *c_pos_x2_overflow_int32 } # small operation count, should overflow y
- { N: 4, incx: 1, incy: *c_neg_x2_overflow_int32 } # small operation count, should overflow y
- &incx_incy_range_y_output
- { incx: 1, incy: 1 }
- { incx: 2, incy: 1 }
- { incx: 1, incy: -3 }
- { incx: -1, incy: 1 }
- { incx: 0, incy: 1 }
# - { incx: 0, incy: 0 } # Indeterminate for axpy
# - { incx: 1, incy: 0 } # Indeterminate when y is output
- &incx_incy_range_small
- { incx: 1, incy: 1 }
- { incx: -3, incy: 2 }
- &alpha_beta_range
- { alpha: 1.0, beta: 0.0, alphai: 0.5, betai: 1.0 }
- { alpha: 2.0, beta: -1.0, alphai: 1.0, betai: 1.0 }
- { alpha: 0.0, beta: 0.0, alphai: 0.0, betai: 0.0 }
- &alpha_beta_range_small
- { alpha: 0.5, beta: 0.5, alphai: 0.5, betai: 1.0 }
Tests:
# for bad_arg no arguments should be used by test code
- name: blas1_bad_arg
category: quick
api: [ C, FORTRAN, FORTRAN_64 ]
function:
- axpy_bad_arg: *half_single_precisions_complex_real
- axpy_ex_bad_arg: *bfloat_half_single_double_complex_real_precisions
- axpy_batched_bad_arg: *half_single_precisions_complex_real
- axpy_batched_ex_bad_arg: *bfloat_half_single_double_complex_real_precisions
- axpy_strided_batched_bad_arg: *half_single_precisions_complex_real
- axpy_strided_batched_ex_bad_arg: *bfloat_half_single_double_complex_real_precisions
# fortran
- name: blas1_with_alpha
category: quick
N: [ -1, 0, 64, 257 ]
incx_incy: *incx_incy_range_small
alpha_beta: *alpha_beta_range
api: FORTRAN
function:
- axpy: *half_single_precisions_complex_real
- axpy_ex: *bfloat_half_single_double_complex_real_precisions
- name: blas1_batched_with_alpha
category: quick
N: [ -1, 0, 64 ]
incx_incy: *incx_incy_range_small
alpha_beta: *alpha_beta_range
batch_count: [-1, 0, 5]
api: FORTRAN
function:
- axpy_batched: *half_single_precisions_complex_real
- axpy_batched_ex: *bfloat_half_single_double_complex_real_precisions
- name: blas1_strided_batched_with_alpha
category: quick
N: [ -1, 0, 64 ]
incx_incy: *incx_incy_range_small
alpha_beta: *alpha_beta_range
batch_count: [-1, 0, 5]
stride_scale: [1, 2]
api: FORTRAN
function:
- axpy_strided_batched: *half_single_precisions_complex_real
- axpy_strided_batched_ex: *bfloat_half_single_double_complex_real_precisions
# quick
- name: blas1_with_alpha_HMM
category: HMM
N: [ 5, 33792 ]
incx_incy: *incx_incy_range_y_output
alpha_beta: *alpha_beta_range
function:
- axpy: *half_single_precisions_complex_real
HMM: true
- name: blas1_with_alpha
category: quick
N: [ 5, 33792 ]
incx_incy: *incx_incy_range_y_output
alpha_beta: *alpha_beta_range
function:
- axpy: *half_single_precisions_complex_real
- axpy_ex: *bfloat_half_single_double_complex_real_precisions
- name: axpy_ex_compute_check
category: quick
N: [1]
incx: 1
incy: 1
alpha: -1.001
function:
- axpy_ex: *hpa_half_precision
- name: blas1_batched_with_alpha
category: quick
N: [ 5, 33792 ]
incx_incy: *incx_incy_range_y_output
alpha_beta: *alpha_beta_range
batch_count: [-1, 0, 5]
function:
- axpy_batched: *half_single_precisions_complex_real
- axpy_batched_ex: *bfloat_half_single_double_complex_real_precisions
- name: blas1_strided_batched_with_alpha
category: quick
N: [ 5, 33792 ]
incx_incy: *incx_incy_range_y_output
batch_count: [-1, 0, 5]
stride_scale: [ 1 ]
alpha_beta: *alpha_beta_range
function:
- axpy_strided_batched: *half_single_precisions_complex_real
- axpy_strided_batched_ex: *bfloat_half_single_double_complex_real_precisions
# pre_checkin
- name: blas1_axpy_internal_api
category: pre_checkin
N: [ 1000 ]
incx_incy: *incx_incy_range_small
alpha: [ 1 ]
stride_scale: [ 1 ]
lda: *c_pos_overflow_int32 # lda, ldb used for internal api offset args
ldb: *c_pos_overflow_int32
function:
- axpy: *single_precision
pointer_mode_device: false
api: [ INTERNAL, INTERNAL_64 ]
- name: blas1_axpy_large_batch
category: stress
N: [ 4 ]
incx_incy: *incx_incy_range_small
alpha: [ 1 ]
batch_count: [ *c_grid_yz_require_passes ]
stride_scale: [ 1 ]
function:
- axpy_batched_ex: *half_precision
- axpy_batched: *single_precision
- axpy_strided_batched_ex: *half_precision
- axpy_strided_batched: *single_precision
- name: blas1_with_alpha
category: pre_checkin
N: [ 5007 ]
incx_incy: *incx_incy_range_small
alpha_beta: *alpha_beta_range
function:
- axpy_ex: *bfloat_half_single_double_complex_real_precisions
- name: blas1_batched_with_alpha
category: pre_checkin
N: [ 5000 ]
incx_incy: *incx_incy_range_small
alpha_beta: *alpha_beta_range
batch_count: [3]
function:
- axpy_batched_ex: *bfloat_half_single_double_complex_real_precisions
- name: blas1_strided_batched_with_alpha
category: pre_checkin
N: [ 5001 ]
incx_incy: *incx_incy_range_small
alpha_beta: *alpha_beta_range
batch_count: [2]
stride_scale: [ 2 ]
function:
- axpy_strided_batched_ex: *bfloat_half_single_double_complex_real_precisions
- name: axpy_multi_gpu
category: multi_gpu
N: [ 50007 ]
incx_incy: *incx_incy_range_small
threads_streams: *common_threads_streams
alpha_beta: *alpha_beta_range
devices: [0, 2, 4]
function:
- axpy_ex: *bfloat_half_single_double_complex_real_precisions
# nightly
- name: blas1_with_alpha
category: nightly
N: [ 1000000 ]
incx_incy: *incx_incy_range_small
alpha_beta: *alpha_beta_range
function:
- axpy_ex: *bfloat_half_single_double_complex_real_precisions
pointer_mode_host: false
- name: axpy_multi_threads_streams
category: nightly
N: [ 50007 ]
incx_incy: *incx_incy_range_small
threads_streams: *common_threads_streams
alpha_beta: *alpha_beta_range
function:
- axpy_ex: *bfloat_half_single_double_complex_real_precisions
pointer_mode_device: false
- name: blas1_batched_with_alpha
category: nightly
N: [ 400000 ]
incx_incy: *incx_incy_range_small
alpha_beta: *alpha_beta_range
batch_count: [ 2, 11 ]
function:
- axpy_batched_ex: *bfloat_half_single_double_complex_real_precisions
- name: blas1_strided_batched_with_alpha
category: nightly
N: [ 300001 ]
incx_incy: *incx_incy_range_small
alpha_beta: *alpha_beta_range
batch_count: [ 3, 13 ]
stride_scale: [ 1 ]
function:
- axpy_strided_batched_ex: *bfloat_half_single_double_complex_real_precisions
- name: blas1_size_t
category: stress
matrix_size: *size_t_pos_neg_xy_range
alpha: [ 2 ]
pointer_mode_host: false
function:
- axpy_ex: *half_precision
# axpy shared kernels for axpy_ex so only testing size_t with axpy_ex and half
# batched kernel only for batch_count > 8192, so large incx incy not practical
# all other precisions optimized kernels only for incx == incy == 1
os_flags: LINUX
# all GPU for now
# pre_checkin - 64-bit (pre_checkin only testing interface, not 64-bit sizes)
- name: axpy_ILP64
category: pre_checkin
N: [ 64 ]
incx_incy: *incx_incy_range_small
alpha_beta: *alpha_beta_range_small
api: [ FORTRAN_64 ]
function:
- axpy: *half_single_precisions_complex_real
- axpy_ex: *bfloat_half_single_double_complex_real_precisions
- axpy_batched: *half_single_precisions_complex_real
- axpy_batched_ex: *bfloat_half_single_double_complex_real_precisions
- axpy_strided_batched: *half_single_precisions_complex_real
- axpy_strided_batched_ex: *bfloat_half_single_double_complex_real_precisions
- name: axpy_ILP64
category: stress
arguments:
- { N: 2147483649, incx: 1, incy: 1, batch_count: 1 }
- { N: 2147483649, incx: -1, incy: -1, batch_count: 1 }
- { N: 2, incx: 2147483649, incy: 1, batch_count: 1 }
- { N: 2, incx: 1, incy: 2147483649, batch_count: 1 }
- { N: 2, incx: 1, incy: 1, stride_x: 2, stride_y: 2, batch_count: *c_grid_yz_require_passes }
- { N: 2, incx: -2147483649, incy: 1, batch_count: 1 }
- { N: 2, incx: 1, incy: -2147483649, batch_count: 1 }
alpha_beta: *alpha_beta_range_small
api: [ C_64 ]
os_flags: [ LINUX ]
function:
- axpy: *single_precision
- axpy_ex: *single_precision
- axpy_batched: *single_precision
- axpy_batched_ex: *single_precision
- axpy_strided_batched: *single_precision
- axpy_strided_batched_ex: *single_precision
# Per-batch alpha (scalar vector / alpha striding) - device pointer mode only
- name: axpy_stride_alpha
category: pre_checkin
N: [ 64, 257 ]
incx_incy: *incx_incy_range_small
alpha_beta: *alpha_beta_range
batch_count: [ 3 ]
stride_scale: [ 2 ] # for strided_batched x/y stride
alpha_beta_stride: true
stride_c: [ 1, 2 ] # alpha stride
pointer_mode_host: false
function:
- axpy_batched: *half_single_precisions_complex_real
- axpy_strided_batched: *half_single_precisions_complex_real
- name: axpy_ex_stride_alpha
category: pre_checkin
N: [ 64, 257 ]
incx_incy: *incx_incy_range_small
alpha_beta: *alpha_beta_range
batch_count: [ 3 ]
stride_scale: [ 2 ] # for strided_batched x/y stride
alpha_beta_stride: true
stride_c: [ 1, 2 ] # alpha stride
pointer_mode_host: false
function:
- axpy_batched_ex: *bfloat_half_single_double_complex_real_precisions
- axpy_strided_batched_ex: *bfloat_half_single_double_complex_real_precisions
- axpy_batched_ex: *hpa_half_float_alpha
- axpy_strided_batched_ex: *hpa_half_float_alpha
- name: blas1_nan_check
category: pre_checkin
arguments: *blas1_nan_common_args
function:
- axpy: *half_single_precisions_complex_real
- axpy_batched: *half_single_precisions_complex_real
- axpy_strided_batched: *half_single_precisions_complex_real
- axpy_ex: *bfloat_half_single_double_complex_real_precisions
- axpy_batched_ex: *bfloat_half_single_double_complex_real_precisions
- axpy_strided_batched_ex: *bfloat_half_single_double_complex_real_precisions
- name: blas1_graph_check
category: pre_checkin
arguments: *blas1_graph_test_common_args
function:
- axpy: *half_single_precisions_complex_real
- axpy_batched: *half_single_precisions_complex_real
- axpy_strided_batched: *half_single_precisions_complex_real
- axpy_ex: *bfloat_half_single_double_complex_real_precisions
- axpy_batched_ex: *bfloat_half_single_double_complex_real_precisions
- axpy_strided_batched_ex: *bfloat_half_single_double_complex_real_precisions
- name: blas1_repeatability_check
category: stress
arguments: *blas1_repeatability_common_args
function:
- axpy: *half_single_precisions_complex_real
- axpy_batched: *half_single_precisions_complex_real
- axpy_strided_batched: *half_single_precisions_complex_real
- axpy_ex: *bfloat_half_single_double_complex_real_precisions
- axpy_batched_ex: *bfloat_half_single_double_complex_real_precisions
- axpy_strided_batched_ex: *bfloat_half_single_double_complex_real_precisions
...