Files
TheRock/rocm-libraries/projects/rocblas/clients/gtest/blas1_gtest.yaml.new
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

1156 lines
43 KiB
Plaintext

---
include: rocblas_common.yaml
include: known_bugs.yaml
Definitions:
- &size_t_x_range
- { N: 1073741900, incx: 4 } # N * incx will overflow uint32_t and int32_t
- &N_range
- [ -1, 0, 5, 10, 500, 1000, 1024, 1025, 7111, 10000, 33792 ]
- &incx_range_small
- [1, 2]
- &incx_range
- [-1, 0, 1, 2]
- &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
- &incx_incy_range_x_y_output
- { incx: 1, incy: 1 }
- { incx: 1, incy: 2 }
- { incx: 2, incy: 1 }
- { incx: 1, incy: -1 }
- { incx: -3, incy: 1 }
- { incx: -3, incy: -3 }
# - { incx: 0, incy: 0 } # Indeterminate for swap
# - { incx: 0, incy: 1 } # Indeterminate when x is output (swap)
# - { incx: 1, incy: 0 } # Indeterminate when y is output
- &incx_incy_range_y_output
- { incx: 1, incy: 1 }
- { incx: 1, incy: 2 }
- { incx: 2, incy: 1 }
- { incx: 1, incy: -3 }
- { incx: -1, incy: 1 }
- { incx: -3, incy: -3 }
- { 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: -3 }
- &alpha_beta_range
- { alpha: 1.0, beta: 0.0 }
- { alpha: 2.0, beta: -1.0 }
- { alpha: 0.0, beta: 0.0 }
- &alphai_betai_range
- { alphai: 0.0 }
- { alphai: 1.0}
- { alphai: 2.0 }
- &complex_alpha_range_small
- { alpha: 4.0, alphai: 0.0 }
- { alpha: 0.0, alphai: 4.0 }
- { alpha: 3.0, alphai: -2.0 }
Tests:
# All functions with no parameters to scan over
- name: blas1
category: quick
api: [ C, FORTRAN ]
function:
- rotg: *rotg_precisions
- rotg_batched: *rotg_precisions
- rotg_strided_batched: *rotg_precisions
alpha_beta: # using alpha and beta in place of a and b
- { alpha: 0.0, beta: 0.0 , alphai: 0.0, betai: 0.0} # using alpha and beta in place of a and b
- { alpha: 1.0, beta: 2.0 , alphai: 0.0, betai: 0.0}
- { alpha: 1.1, beta: 0.0 , alphai: 0.1, betai: 0.0}
- { alpha: 0.0, beta: 1.2 , alphai: 0.0, betai: 0.2}
- { alpha: -1.3, beta: 1.4 , alphai: 0.3, betai: -0.4}
- { alpha: 1.6, beta: -1.5 , alphai: -0.6, betai: 0.5}
- name: blas1
category: quick
api: [ C, FORTRAN ]
function:
- rotg: *rotg_precisions
- rotmg: *single_double_precisions
- name: blas1_batched
category: quick
batch_count: [-1, 0, 5]
api: [ C, FORTRAN ]
function:
- rotg_batched: *rotg_precisions
- rotmg_batched: *single_double_precisions
- name: blas1_strided_batched
category: quick
batch_count: [-1, 0, 5]
stride_scale: [ 1.5 ]
api: [ C, FORTRAN ]
function:
- rotg_strided_batched: *rotg_precisions
- rotmg_strided_batched: *single_double_precisions
# All functions with alpha and incx and incy
# fortran
- name: blas1_with_alpha
category: quick
N: [ -1, 0, 64 ]
incx_incy: *incx_incy_range_small
alpha_beta: *alpha_beta_range
alphai_betai: *alphai_betai_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
alphai_betai: *alphai_betai_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
alphai_betai: *alphai_betai_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: [ -1, 0, 5, 33792 ]
incx_incy: *incx_incy_range_y_output
alpha_beta: *alpha_beta_range
alphai_betai: *alphai_betai_range
function:
- axpy: *half_single_precisions_complex_real
HMM: true
- name: blas1_with_alpha
category: quick
N: [ -1, 0, 5, 33792 ]
incx_incy: *incx_incy_range_y_output
alpha_beta: *alpha_beta_range
alphai_betai: *alphai_betai_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: [ -1, 0, 5, 33792 ]
incx_incy: *incx_incy_range_y_output
alpha_beta: *alpha_beta_range
alphai_betai: *alphai_betai_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: [ -1, 0, 5, 33792 ]
incx_incy: *incx_incy_range_y_output
batch_count: [-1, 0, 5]
stride_scale: [ 1 ]
alpha_beta: *alpha_beta_range
alphai_betai: *alphai_betai_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_large_batch
category: pre_checkin
N: [ 7, 1000 ]
incx_incy: *incx_incy_range_small
alpha: [ 0, 1 ]
batch_count: [ 8193 ]
stride_scale: [ 1 ]
function:
- axpy_batched: *single_precision
- axpy_strided_batched: *single_precision
- name: blas1_with_alpha
category: pre_checkin
N: [ 50007, 1049600 ]
incx_incy: *incx_incy_range_small
alpha_beta: *alpha_beta_range
alphai_betai: *alphai_betai_range
function:
- axpy_ex: *bfloat_half_single_double_complex_real_precisions
- name: blas1_batched_with_alpha
category: pre_checkin
N: [ 50000, 1049600 ]
incx_incy: *incx_incy_range_small
alpha_beta: *alpha_beta_range
alphai_betai: *alphai_betai_range
batch_count: [2]
function:
- axpy_batched_ex: *bfloat_half_single_double_complex_real_precisions
- name: blas1_strided_batched_with_alpha
category: pre_checkin
N: [ 50000, 1049600 ]
incx_incy: *incx_incy_range_small
alpha_beta: *alpha_beta_range
alphai_betai: *alphai_betai_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, 1049600 ]
incx_incy: *incx_incy_range_small
threads_streams: *common_threads_streams
alpha_beta: *alpha_beta_range
alphai_betai: *alphai_betai_range
devices: [0, 2, 4]
function:
- axpy_ex: *bfloat_half_single_double_complex_real_precisions
# nightly
- name: blas1_with_alpha
category: nightly
N: [ 4000000 ]
incx_incy: *incx_incy_range_small
alpha_beta: *alpha_beta_range
alphai_betai: *alphai_betai_range
function:
- axpy_ex: *bfloat_half_single_double_complex_real_precisions
- name: axpy_multi_threads_streams
category: nightly
N: [ 50007, 1049600 ]
incx_incy: *incx_incy_range_small
threads_streams: *common_threads_streams
alpha_beta: *alpha_beta_range
alphai_betai: *alphai_betai_range
function:
- axpy_ex: *bfloat_half_single_double_complex_real_precisions
- name: blas1_batched_with_alpha
category: nightly
N: [ 400000 ]
incx_incy: *incx_incy_range_small
alpha_beta: *alpha_beta_range
alphai_betai: *alphai_betai_range
batch_count: [ 2, 4, 10, 12 ]
function:
- axpy_batched_ex: *bfloat_half_single_double_complex_real_precisions
- name: blas1_strided_batched_with_alpha
category: nightly
N: [ 400000 ]
incx_incy: *incx_incy_range_small
alpha_beta: *alpha_beta_range
alphai_betai: *alphai_betai_range
batch_count: [ 2, 4, 10, 12 ]
stride_scale: [ 1 ]
function:
- axpy_strided_batched_ex: *bfloat_half_single_double_complex_real_precisions
# All functions with alpha and incx but no incy
# fortran
- name: scal_blas1_with_alpha
category: quick
N: [ -1, 0, 64 ]
incx: *incx_range_small
alpha_beta: *alpha_beta_range
alphai_betai: *alphai_betai_range
api: FORTRAN
function:
- scal: *single_double_precisions_complex_real
- scal: *scal_single_double_complex_real_alpha_complex_out
- scal_ex: *scal_ex_bfloat_half_single_double_complex_real_precisions
- scal_ex: *scal_ex_single_double_complex_real_alpha_complex_out
#
- name: blas1_batched_with_alpha
category: quick
N: [ -1, 0, 64 ]
incx: *incx_range_small
alpha_beta: *alpha_beta_range
alphai_betai: *alphai_betai_range
batch_count: [-1, 0, 5]
api: FORTRAN
function:
- scal_batched: *single_double_precisions_complex_real
- scal_batched: *scal_single_double_complex_real_alpha_complex_out
- scal_batched_ex: *scal_ex_bfloat_half_single_double_complex_real_precisions
- scal_batched_ex: *scal_ex_single_double_complex_real_alpha_complex_out
- name: blas1_strided_batched_with_alpha
category: quick
N: [ -1, 0, 64 ]
incx: *incx_range_small
alpha_beta: *alpha_beta_range
alphai_betai: *alphai_betai_range
batch_count: [-1, 0, 5]
stride_scale: [1, 2]
api: FORTRAN
function:
- scal_strided_batched: *single_double_precisions_complex_real
- scal_strided_batched: *scal_single_double_complex_real_alpha_complex_out
- scal_strided_batched_ex: *scal_ex_bfloat_half_single_double_complex_real_precisions
- scal_strided_batched_ex: *scal_ex_single_double_complex_real_alpha_complex_out
# quick
- name: blas1_with_alpha
category: quick
N: *N_range
incx: *incx_range
alpha_beta: *alpha_beta_range
alphai_betai: *alphai_betai_range
function:
- scal: *single_double_precisions_complex_real
- scal: *scal_single_double_complex_real_alpha_complex_out
- scal_ex: *scal_ex_bfloat_half_single_double_complex_real_precisions
- scal_ex: *scal_ex_single_double_complex_real_alpha_complex_out
- name: blas1_batched
category: quick
N: [ -1, 0, 5, 33792 ]
incx: *incx_range
alpha_beta: *alpha_beta_range
alphai_betai: *alphai_betai_range
batch_count: [-1, 0, 5]
function:
- scal_batched: *single_double_precisions_complex_real
- scal_batched: *scal_single_double_complex_real_alpha_complex_out
- scal_batched_ex: *scal_ex_bfloat_half_single_double_complex_real_precisions
- scal_batched_ex: *scal_ex_single_double_complex_real_alpha_complex_out
- name: blas1_strided_batched
category: quick
N: [ -1, 0, 5, 33792 ]
incx: *incx_range
alpha_beta: *alpha_beta_range
alphai_betai: *alphai_betai_range
batch_count: [-1, 0, 5]
stride_scale: [ 1.5 ]
function:
- scal_strided_batched: *single_double_precisions_complex_real
- scal_strided_batched: *scal_single_double_complex_real_alpha_complex_out
- scal_strided_batched_ex: *scal_ex_bfloat_half_single_double_complex_real_precisions
- scal_strided_batched_ex: *scal_ex_single_double_complex_real_alpha_complex_out
# pre_checkin
- name: blas1
category: pre_checkin
N: [ 50000, 1049600 ]
incx: *incx_range_small
alpha_beta: *complex_alpha_range_small
pointer_mode_device: false
function:
- scal_ex: *scal_ex_bfloat_half_single_double_complex_real_precisions
- scal_ex: *scal_ex_single_double_complex_real_alpha_complex_out
- name: blas1_batched
category: pre_checkin
N: [ 1048576 ]
incx: *incx_range_small
alpha_beta: *complex_alpha_range_small
batch_count: [2]
pointer_mode_device: true
function:
- scal_batched_ex: *scal_ex_bfloat_half_single_double_complex_real_precisions
- scal_batched_ex: *scal_ex_single_double_complex_real_alpha_complex_out
- name: blas1_strided_batched
category: pre_checkin
N: [ 1048576 ]
incx: *incx_range_small
alpha_beta: *complex_alpha_range_small
batch_count: [2]
stride_scale: [ 1.5 ]
pointer_mode_device: false
function:
- scal_strided_batched_ex: *scal_ex_bfloat_half_single_double_complex_real_precisions
- scal_strided_batched_ex: *scal_ex_single_double_complex_real_alpha_complex_out
# nightly
- name: blas1_batched
category: nightly
N: [ 4000000 ]
incx: *incx_range_small
alpha_beta: *complex_alpha_range_small
batch_count: [ 2 ]
pointer_mode_device: true
function:
- scal_ex: *scal_ex_bfloat_half_single_double_complex_real_precisions
- scal_ex: *scal_ex_single_double_complex_real_alpha_complex_out
- name: blas1_batched
category: nightly
N: [ 10 ]
incx: *incx_range_small
alpha_beta: *complex_alpha_range_small
batch_count: [ 4000 ]
function:
- scal_batched_ex: *scal_ex_bfloat_half_single_double_complex_real_precisions
- scal_batched_ex: *scal_ex_single_double_complex_real_alpha_complex_out
- name: blas1_strided_batched
category: nightly
N: [ 4000000 ]
incx: *incx_range_small
alpha_beta: *complex_alpha_range_small
batch_count: [ 2 ]
stride_scale: [ 1.2 ]
pointer_mode_device: false
function:
- scal_strided_batched_ex: *scal_ex_bfloat_half_single_double_complex_real_precisions
- scal_strided_batched_ex: *scal_ex_single_double_complex_real_alpha_complex_out
- name: blas1_strided_batched
category: nightly
N: [ 10 ]
incx: *incx_range_small
alpha_beta: *complex_alpha_range_small
batch_count: [ 4000 ]
stride_scale: [ 2 ]
function:
- scal_strided_batched_ex: *scal_ex_bfloat_half_single_double_complex_real_precisions
- scal_strided_batched_ex: *scal_ex_single_double_complex_real_alpha_complex_out
- name: blas1_size_t
category: stress
matrix_size: *size_t_x_range
pointer_mode_device: false
alpha: [ 2 ]
function:
- scal_ex: *hpa_half_precision
# All functions with incx, no incy, no alpha
# nrm2,asum,iamax,iamin all variants
#fortran
- name: blas1
category: quick
N: [-1, 0, 1024]
incx: *incx_range_small
api: FORTRAN
function:
- asum: *single_double_precisions_complex_real
- nrm2: *single_double_precisions_complex_real
- nrm2_ex: *nrm2_ex_precisions
- iamax: *single_double_precisions_complex_real
- iamin: *single_double_precisions_complex_real
- name: blas1_batched
category: quick
N: [-1, 0, 1024]
incx: *incx_range_small
batch_count: [ -1, 0, 5 ]
api: FORTRAN
function:
- asum_batched: *single_double_precisions_complex_real
- nrm2_batched: *single_double_precisions_complex_real
- nrm2_batched_ex: *nrm2_ex_precisions
- iamax_batched: *single_double_precisions_complex_real
- iamin_batched: *single_double_precisions_complex_real
- name: blas1_strided_batched
category: quick
N: [-1, 0, 1024]
incx: *incx_range_small
batch_count: [ -1, 0, 5 ]
stride_scale: [ 1, 2 ]
api: FORTRAN
function:
- asum_strided_batched: *single_double_precisions_complex_real
- nrm2_strided_batched: *single_double_precisions_complex_real
- nrm2_strided_batched_ex: *nrm2_ex_precisions
- iamax_strided_batched: *single_double_precisions_complex_real
- iamin_strided_batched: *single_double_precisions_complex_real
# quick
- name: blas1
category: quick
N: *N_range
incx: *incx_range
function:
- nrm2: *single_double_precisions_complex_real
- nrm2_ex: *nrm2_ex_precisions
- asum: *single_double_precisions_complex_real
- iamax: *single_double_precisions_complex_real
- iamin: *single_double_precisions_complex_real
- name: blas1_batched
category: quick
N: [ -1, 0, 5, 33792 ]
incx: *incx_range
batch_count: [-1, 0, 257]
function:
- asum_batched: *single_double_precisions_complex_real
- nrm2_batched: *single_double_precisions_complex_real
- nrm2_batched_ex: *nrm2_ex_precisions
- iamax_batched: *single_double_precisions_complex_real
- iamin_batched: *single_double_precisions_complex_real
- name: blas1_strided_batched
category: quick
N: [ -1, 0, 5, 33792 ]
incx: *incx_range
batch_count: [-1, 0, 257]
stride_scale: [ 1.5 ]
function:
- asum_strided_batched: *single_double_precisions_complex_real
- nrm2_strided_batched: *single_double_precisions_complex_real
- nrm2_strided_batched_ex: *nrm2_ex_precisions
- iamax_strided_batched: *single_double_precisions_complex_real
- iamin_strided_batched: *single_double_precisions_complex_real
# pre_checkin
- name: blas1
category: pre_checkin
N: [ 50000, 1049600 ]
incx: *incx_range_small
function:
# for large N nrm2 and asum drop single precision tolerance comparisions.
# nrm2_ex uses nrm2 code, no need to test interface again, so only using
# the superset code of nrm2_ex.
- nrm2_ex: *nrm2_ex_precisions_double
- asum: *double_precision_complex_real
- iamax: *single_double_precisions_complex_real
- iamin: *single_double_precisions_complex_real
- name: blas1_batched
category: pre_checkin
N: [ 1048576 ]
incx: *incx_range_small
batch_count: [2]
function:
- asum_batched: *double_precision_complex_real
- nrm2_batched_ex: *nrm2_ex_precisions_double
- iamax_batched: *double_precision_complex_real
- iamin_batched: *double_precision_complex_real
- name: blas1_strided_batched
category: pre_checkin
N: [ 1048576 ]
incx: *incx_range_small
batch_count: [2]
stride_scale: [ 1.5 ]
function:
- asum_strided_batched: *double_precision_complex_real
- nrm2_strided_batched_ex: *nrm2_ex_precisions_double
- iamax_strided_batched: *double_precision_complex_real
- iamin_strided_batched: *double_precision_complex_real
# nightly
- name: blas1
category: nightly
N: [ 300001 ]
incx: *incx_range_small
function:
- nrm2_ex: *nrm2_ex_precisions_double
- asum: *double_precision_complex_real
- iamax: *double_precision_complex_real
- iamin: *double_precision_complex_real
- name: blas1_batched
category: nightly
N: [ 300001 ]
incx: *incx_range_small
batch_count: [ 65 ]
function:
- asum_batched: *double_precision_complex_real
- nrm2_batched_ex: *nrm2_ex_precisions_double
- iamax_batched: *double_precision_complex_real
- iamin_batched: *double_precision_complex_real
- name: blas1_strided_batched
category: nightly
N: [ 300001 ]
incx: *incx_range_small
batch_count: [ 65 ]
stride_scale: [ 1 ]
function:
- asum_strided_batched: *double_precision_complex_real
- nrm2_strided_batched_ex: *nrm2_ex_precisions_double
- iamax_strided_batched: *double_precision_complex_real
- iamin_strided_batched: *double_precision_complex_real
# All functions with incx, incy, no alpha
# fortran
- name: blas1
category: quick
N: [ -1, 0, 1025]
incx_incy: *incx_incy_range_small
api: FORTRAN
function:
- copy: *single_double_precisions_complex_real
- dot: *half_bfloat_single_double_complex_real_precisions
- dotc: *single_double_precisions_complex
- dot_ex: *half_bfloat_single_double_complex_real_precisions
- dotc_ex: *half_bfloat_single_double_complex_real_precisions
- swap: *single_double_precisions_complex_real
- rot: *rot_precisions
- rot_ex: *rot_ex_precisions
- rotm: *single_double_precisions
- name: blas1_batched
category: quick
N: [ -1, 0, 1025]
incx_incy: *incx_incy_range_small
batch_count: [-1, 0, 5]
api: FORTRAN
function:
- copy_batched: *single_double_precisions_complex_real
- dot_batched: *half_bfloat_single_double_complex_real_precisions
- dotc_batched: *single_double_precisions_complex
- dot_batched_ex: *half_bfloat_single_double_complex_real_precisions
- dotc_batched_ex: *half_bfloat_single_double_complex_real_precisions
- swap_batched: *single_double_precisions_complex_real
- rot_batched: *rot_precisions
- rot_batched_ex: *rot_ex_precisions
- rotm_batched: *single_double_precisions
- name: blas1_strided_batched
category: quick
N: [ -1, 0, 1025]
incx_incy: *incx_incy_range_small
batch_count: [-1, 0, 5]
stride_scale: [1, 2]
api: FORTRAN
function:
- copy_strided_batched: *single_double_precisions_complex_real
- dot_strided_batched: *half_bfloat_single_double_complex_real_precisions
- dotc_strided_batched: *single_double_precisions_complex
- dotc_strided_batched_ex: *half_bfloat_single_double_complex_real_precisions
- swap_strided_batched: *single_double_precisions_complex_real
- rot_strided_batched: *rot_precisions
- rot_strided_batched_ex: *rot_ex_precisions
- rotm_strided_batched: *single_double_precisions
# quick
- name: blas1_HMM
category: HMM
N: [ -1, 0, 1025]
incx_incy: *incx_incy_range
function:
- dot: *half_bfloat_single_double_complex_real_precisions
HMM: true
- name: blas1
category: quick
N: [ -1, 0, 1025, 13000]
incx_incy: *incx_incy_range
function:
- copy: *single_double_precisions_complex_real
- dot: *half_bfloat_single_double_complex_real_precisions
- dotc: *single_double_precisions_complex
- dot_ex: *half_bfloat_single_double_complex_real_precisions
- dotc_ex: *half_bfloat_single_double_complex_real_precisions
- name: blas1_batched
category: quick
N: [ -1, 0, 1025, 13000]
incx_incy: *incx_incy_range
batch_count: [-1, 0, 257]
function:
- copy_batched: *single_double_precisions_complex_real
- dot_batched: *half_bfloat_single_double_complex_real_precisions
- dotc_batched: *single_double_precisions_complex
- dot_batched_ex: *half_bfloat_single_double_complex_real_precisions
- dotc_batched_ex: *half_bfloat_single_double_complex_real_precisions
- name: blas1_strided_batched
category: quick
N: [ -1, 0, 1025, 13000]
incx_incy: *incx_incy_range
batch_count: [-1, 0, 257]
stride_scale: [ 1 ]
function:
- copy_strided_batched: *single_double_precisions_complex_real
- dot_strided_batched: *half_bfloat_single_double_complex_real_precisions
- dotc_strided_batched: *single_double_precisions_complex
- dot_strided_batched_ex: *half_bfloat_single_double_complex_real_precisions
- dotc_strided_batched_ex: *half_bfloat_single_double_complex_real_precisions
# quick dot one block transitions (halfs excluded)
- name: blas1
category: quick
N: [ 10001, 13001, 16001, 33000 ]
incx_incy: *incx_incy_range_small
function:
- dot: *single_double_precisions_complex
- dotc: *single_double_precisions_complex
- dot_ex: *single_double_precisions_complex
- dotc_ex: *single_double_precisions_complex
# quick
# dot alt algorithm, algo=1 forces x*x with incx=incy to test special case kernel
- name: blas1
category: quick
N: [ -1, 0, 1025, 16001]
incx_incy: *incx_incy_range_small
algo: 1
function:
- dot: *bfloat_single_double_complex_real_precisions
- dotc: *bfloat_single_double_complex_real_precisions
- dot_ex: *bfloat_single_double_complex_real_precisions
- dotc_ex: *bfloat_single_double_complex_real_precisions
- name: blas1_batched
category: quick
N: [ -1, 0, 1025, 16000]
incx_incy: *incx_incy_range_small
batch_count: [-1, 0, 257]
algo: 1
function:
- dot_batched: *bfloat_single_double_complex_real_precisions
- dotc_batched: *bfloat_single_double_complex_real_precisions
- dot_batched_ex: *bfloat_single_double_complex_real_precisions
- dotc_batched_ex: *bfloat_single_double_complex_real_precisions
- name: blas1_strided_batched
category: quick
N: [ -1, 0, 1025, 15999]
incx_incy: *incx_incy_range_small
batch_count: [-1, 0, 257]
stride_scale: [ 1 ]
algo: 1
function:
- dot_strided_batched: *bfloat_single_double_complex_real_precisions
- dotc_strided_batched: *bfloat_single_double_complex_real_precisions
- dot_strided_batched_ex: *bfloat_single_double_complex_real_precisions
- dotc_strided_batched_ex: *bfloat_single_double_complex_real_precisions
- name: blas1
category: quick
N: [-1, 0, 511] # N is kept less than 512 to avoid rounding errors in half precision
incx_incy: *incx_incy_range_small
algo: 1
function:
- dot: *half_precision
- dotc: *half_precision
- dot_ex: *half_precision
- dotc_ex: *half_precision
- name: blas1_batched
category: quick
N: [-1, 0, 511] # N is kept less than 512 to avoid rounding errors in half precision
incx_incy: *incx_incy_range_small
batch_count: [-1, 0, 257]
algo: 1
function:
- dot_batched: *half_precision
- dotc_batched: *half_precision
- dot_batched_ex: *half_precision
- dotc_batched_ex: *half_precision
- name: blas1_strided_batched
category: quick
N: [-1, 0, 511] # N is kept less than 512 to avoid rounding errors in half precision
incx_incy: *incx_incy_range_small
batch_count: [-1, 0, 125]
stride_scale: [ 1 ]
algo: 1
function:
- dot_strided_batched: *half_precision
- dotc_strided_batched: *half_precision
- dot_strided_batched_ex: *half_precision
- dotc_strided_batched_ex: *half_precision
# pre_checkin
- name: blas1
category: pre_checkin
N: [ 5000, 800000 ]
incx_incy: *incx_incy_range_small
function:
# dot_ex uses dot code, so only testing superset code of dot_ex for pre-checkin and nightly.
# we should be sure to keep testing the dot API in quick tests as done above.
# similarly with rot
- swap: *single_double_precisions_complex_real
- copy: *single_double_precisions_complex_real
- dot_ex: *double_precision_complex_real
- dotc_ex: *double_precision_complex_real
- rot_ex: *rot_ex_precisions
- rotm: *single_double_precisions
- name: blas1_batched
category: pre_checkin
N: [ 5000, 800000 ]
incx_incy: *incx_incy_range_small
batch_count: [1, 7]
function:
- swap_batched: *single_double_precisions_complex_real
- copy_batched: *single_double_precisions_complex_real
- dot_batched_ex: *double_precision_complex_real
- dotc_batched_ex: *double_precision_complex_real
- rot_batched_ex: *rot_ex_precisions
- rotm_batched: *single_double_precisions
- name: blas1_strided_batched
category: pre_checkin
N: [ 5000, 800000 ]
incx_incy: *incx_incy_range_small
batch_count: [1, 7]
stride_scale: [ 1 ]
function:
- swap_strided_batched: *single_double_precisions_complex_real
- copy_strided_batched: *single_double_precisions_complex_real
- dot_strided_batched_ex: *double_precision_complex_real
- dotc_strided_batched_ex: *double_precision_complex_real
- rot_strided_batched_ex: *rot_ex_precisions
- rotm_strided_batched: *single_double_precisions
- name: dot_multi_gpu
category: multi_gpu
N: [ 5000, 800000 ]
incx_incy: *incx_incy_range_small
function:
- dot: *double_precision_complex_real
threads_streams: *common_threads_streams
devices: [0, 2, 4]
# nightly
- name: blas1
category: nightly
N: [ 4000000 ]
incx_incy: *incx_incy_range_small
function:
- swap: *single_double_precisions_complex_real
- copy: *single_double_precisions_complex_real
- dot_ex: *double_precision_complex_real
- dotc_ex: *double_precision_complex_real
- rot_ex: *rot_ex_precisions
- rotm: *single_double_precisions
- name: dot_multi_threads_stream
category: nightly
N: [ 5000, 800000 ]
incx_incy: *incx_incy_range_small
function:
- dot: *double_precision_complex_real
threads_streams: *common_threads_streams
- name: blas1_batched
category: nightly
N: [ 4000000 ]
incx_incy: *incx_incy_range_small
batch_count: [1, 7]
function:
- swap_batched: *single_double_precisions_complex_real
- copy_batched: *single_double_precisions_complex_real
- dot_batched_ex: *double_precision_complex_real
- dotc_batched_ex: *double_precision_complex_real
- rot_batched_ex: *rot_ex_precisions
- rotm_batched: *single_double_precisions
- name: blas1_strided_batched
category: nightly
N: [ 4000000 ]
incx_incy: *incx_incy_range_small
batch_count: [1, 7]
stride_scale: [ 1 ]
function:
- swap_strided_batched: *single_double_precisions_complex_real
- copy_strided_batched: *single_double_precisions_complex_real
- dot_strided_batched_ex: *double_precision_complex_real
- dotc_strided_batched_ex: *double_precision_complex_real
- rot_strided_batched_ex: *rot_ex_precisions
- rotm_strided_batched: *single_double_precisions
# Swap, rot, and rotm get their own for quick tests as they write to x and y
# quick
- name: blas1
category: quick
N: [ -1, 0, 32, 1025]
incx_incy: *incx_incy_range_x_y_output
batch_count: [1, 7]
stride_scale: [ 1 ]
function:
- swap: *single_double_precisions_complex_real
- swap_batched: *single_double_precisions_complex_real
- swap_strided_batched: *single_double_precisions_complex_real
- rot: *rot_precisions
- rot_batched: *rot_precisions
- rot_strided_batched: *rot_precisions
- rot_ex: *rot_ex_precisions
- rot_batched_ex: *rot_ex_precisions
- rot_strided_batched_ex: *rot_ex_precisions
- rotm: *single_double_precisions
- rotm_batched: *single_double_precisions
- rotm_strided_batched: *single_double_precisions
# all functions NaN_check
- name: blas1_nan_check
category: pre_checkin
N: [ 5 ]
batch_count: [ 3 ]
incx: [ 1, 2 ]
incy: [ 2, 1 ]
alpha: .NaN
stride_scale: [ 1 ]
function:
- nrm2: *single_double_precisions_complex_real
- nrm2_batched: *single_double_precisions_complex_real
- nrm2_strided_batched: *single_double_precisions_complex_real
- nrm2_ex: *nrm2_ex_precisions
- nrm2_batched_ex: *nrm2_ex_precisions
- nrm2_strided_batched_ex: *nrm2_ex_precisions
- asum: *single_double_precisions_complex_real
- asum_batched: *single_double_precisions_complex_real
- asum_strided_batched: *single_double_precisions_complex_real
- iamax: *single_double_precisions_complex_real
- iamax_batched: *single_double_precisions_complex_real
- iamax_strided_batched: *single_double_precisions_complex_real
- iamin: *single_double_precisions_complex_real
- iamin_batched: *single_double_precisions_complex_real
- iamin_strided_batched: *single_double_precisions_complex_real
- 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
- copy: *single_double_precisions_complex_real
- copy_batched: *single_double_precisions_complex_real
- copy_strided_batched: *single_double_precisions_complex_real
- dot: *half_bfloat_single_double_complex_real_precisions
- dot_batched: *half_bfloat_single_double_complex_real_precisions
- dot_strided_batched: *half_bfloat_single_double_complex_real_precisions
- dotc: *single_double_precisions_complex
- dotc_batched: *half_bfloat_single_double_complex_real_precisions
- dotc_strided_batched: *half_bfloat_single_double_complex_real_precisions
- dot_ex: *half_bfloat_single_double_complex_real_precisions
- dotc_ex: *half_bfloat_single_double_complex_real_precisions
- dot_batched_ex: *half_bfloat_single_double_complex_real_precisions
- dotc_batched_ex: *half_bfloat_single_double_complex_real_precisions
- dot_strided_batched_ex: *half_bfloat_single_double_complex_real_precisions
- dotc_strided_batched_ex: *half_bfloat_single_double_complex_real_precisions
- scal: *single_double_precisions_complex_real
- scal: *scal_single_double_complex_real_alpha_complex_out
- scal_ex: *scal_ex_bfloat_half_single_double_complex_real_precisions
- scal_ex: *scal_ex_single_double_complex_real_alpha_complex_out
- scal_batched: *single_double_precisions_complex_real
- scal_batched: *scal_single_double_complex_real_alpha_complex_out
- scal_batched_ex: *scal_ex_bfloat_half_single_double_complex_real_precisions
- scal_batched_ex: *scal_ex_single_double_complex_real_alpha_complex_out
- scal_strided_batched: *single_double_precisions_complex_real
- scal_strided_batched: *scal_single_double_complex_real_alpha_complex_out
- scal_strided_batched_ex: *scal_ex_bfloat_half_single_double_complex_real_precisions
- scal_strided_batched_ex: *scal_ex_single_double_complex_real_alpha_complex_out
- swap: *single_double_precisions_complex_real
- swap_batched: *single_double_precisions_complex_real
- swap_strided_batched: *single_double_precisions_complex_real
#TODO: - Tests bypass the unit_check_general in ROTG,ROTMG,ROTM when NaN is input for alpha as this is not expected
- rot: *rot_precisions
- rot_ex: *rot_ex_precisions
- rotm: *single_double_precisions
- rotmg: *single_double_precisions
- rot_batched: *rot_precisions
- rot_batched_ex: *rot_ex_precisions
- rotm_batched: *single_double_precisions
- rotmg_batched: *single_double_precisions
- rot_strided_batched: *rot_precisions
- rot_strided_batched_ex: *rot_ex_precisions
- rotm_strided_batched: *single_double_precisions
- rotmg_strided_batched: *single_double_precisions
# all functions bad arg
# for bad_arg no arguments should be used by test code
- name: blas1_bad_arg
category: pre_checkin
api: [ C, FORTRAN ]
function:
- nrm2_bad_arg: *single_double_precisions_complex_real
- nrm2_batched_bad_arg: *single_double_precisions_complex_real
- nrm2_strided_batched_bad_arg: *single_double_precisions_complex_real
- nrm2_ex_bad_arg: *nrm2_ex_precisions
- nrm2_batched_ex_bad_arg: *nrm2_ex_precisions
- nrm2_strided_batched_ex_bad_arg: *nrm2_ex_precisions
- asum_bad_arg: *single_double_precisions_complex_real
- asum_batched_bad_arg: *single_double_precisions_complex_real
- asum_strided_batched_bad_arg: *single_double_precisions_complex_real
- iamax_bad_arg: *single_double_precisions_complex_real
- iamax_batched_bad_arg: *single_double_precisions_complex_real
- iamax_strided_batched_bad_arg: *single_double_precisions_complex_real
- iamin_bad_arg: *single_double_precisions_complex_real
- iamin_batched_bad_arg: *single_double_precisions_complex_real
- iamin_strided_batched_bad_arg: *single_double_precisions_complex_real
- axpy_bad_arg: *half_single_precisions_complex_real
- axpy_batched_bad_arg: *half_single_precisions_complex_real
- axpy_strided_batched_bad_arg: *half_single_precisions_complex_real
- axpy_ex_bad_arg: *bfloat_half_single_double_complex_real_precisions
- axpy_batched_ex_bad_arg: *bfloat_half_single_double_complex_real_precisions
- axpy_strided_batched_ex_bad_arg: *bfloat_half_single_double_complex_real_precisions
- copy_bad_arg: *single_double_precisions_complex_real
- copy_batched_bad_arg: *single_double_precisions_complex_real
- copy_strided_batched_bad_arg: *single_double_precisions_complex_real
- dot_bad_arg: *half_bfloat_single_double_complex_real_precisions
- dot_batched_bad_arg: *half_bfloat_single_double_complex_real_precisions
- dot_strided_batched_bad_arg: *half_bfloat_single_double_complex_real_precisions
- dotc_bad_arg: *single_double_precisions_complex
- dotc_batched_bad_arg: *half_bfloat_single_double_complex_real_precisions
- dotc_strided_batched_bad_arg: *half_bfloat_single_double_complex_real_precisions
- dot_ex: *half_bfloat_single_double_complex_real_precisions
- dotc_ex: *half_bfloat_single_double_complex_real_precisions
- dot_batched_ex: *half_bfloat_single_double_complex_real_precisions
- dotc_batched_ex: *half_bfloat_single_double_complex_real_precisions
- dot_strided_batched_ex: *half_bfloat_single_double_complex_real_precisions
- dotc_strided_batched_ex: *half_bfloat_single_double_complex_real_precisions
- scal_bad_arg: *single_double_precisions_complex_real
- scal_bad_arg: *scal_single_double_complex_real_alpha_complex_out
- scal_ex_bad_arg: *scal_ex_bfloat_half_single_double_complex_real_precisions
- scal_ex_bad_arg: *scal_ex_single_double_complex_real_alpha_complex_out
- scal_batched_bad_arg: *single_double_precisions_complex_real
- scal_batched_bad_arg: *scal_single_double_complex_real_alpha_complex_out
- scal_batched_ex_bad_arg: *scal_ex_bfloat_half_single_double_complex_real_precisions
- scal_batched_ex_bad_arg: *scal_ex_single_double_complex_real_alpha_complex_out
- scal_strided_batched_bad_arg: *single_double_precisions_complex_real
- scal_strided_batched_bad_arg: *scal_single_double_complex_real_alpha_complex_out
- scal_strided_batched_ex_bad_arg: *scal_ex_bfloat_half_single_double_complex_real_precisions
- scal_strided_batched_ex_bad_arg: *scal_ex_single_double_complex_real_alpha_complex_out
- swap_bad_arg: *single_double_precisions_complex_real
- swap_batched_bad_arg: *single_double_precisions_complex_real
- swap_strided_batched_bad_arg: *single_double_precisions_complex_real
- rot_bad_arg: *rot_precisions
- rot_ex_bad_arg: *rot_ex_precisions
- rotg_bad_arg: *rotg_precisions
- rotm_bad_arg: *single_double_precisions
- rotmg_bad_arg: *single_double_precisions
- rot_batched_bad_arg: *rot_precisions
- rot_batched_ex_bad_arg: *rot_ex_precisions
- rotg_batched_bad_arg: *rotg_precisions
- rotm_batched_bad_arg: *single_double_precisions
- rotmg_batched_bad_arg: *single_double_precisions
- rot_strided_batched_bad_arg: *rot_precisions
- rot_strided_batched_ex_bad_arg: *rot_ex_precisions
- rotg_strided_batched_bad_arg: *rotg_precisions
- rotm_strided_batched_bad_arg: *single_double_precisions
- rotmg_strided_batched_bad_arg: *single_double_precisions
- name: blas1_graph_test
category: pre_checkin
N: [ 20000 ]
batch_count: [ 3 ]
incx: [ 1 ]
incy: [ 1 ]
alpha: [ 1 ]
stride_scale: [ 1 ]
graph_test: true
function:
- nrm2: *single_double_precisions_complex_real
- nrm2_batched: *single_double_precisions_complex_real
- nrm2_strided_batched: *single_double_precisions_complex_real
- nrm2_ex: *nrm2_ex_precisions
- nrm2_batched_ex: *nrm2_ex_precisions
- nrm2_strided_batched_ex: *nrm2_ex_precisions
- asum: *single_double_precisions_complex_real
- asum_batched: *single_double_precisions_complex_real
- asum_strided_batched: *single_double_precisions_complex_real
- iamax: *single_double_precisions_complex_real
- iamax_batched: *single_double_precisions_complex_real
- iamax_strided_batched: *single_double_precisions_complex_real
- iamin: *single_double_precisions_complex_real
- iamin_batched: *single_double_precisions_complex_real
- iamin_strided_batched: *single_double_precisions_complex_real
- 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
- copy: *single_double_precisions_complex_real
- copy_batched: *single_double_precisions_complex_real
- copy_strided_batched: *single_double_precisions_complex_real
- dot: *half_bfloat_single_double_complex_real_precisions
- dot_batched: *half_bfloat_single_double_complex_real_precisions
- dot_strided_batched: *half_bfloat_single_double_complex_real_precisions
- dotc: *single_double_precisions_complex
- dotc_batched: *half_bfloat_single_double_complex_real_precisions
- dotc_strided_batched: *half_bfloat_single_double_complex_real_precisions
- dot_ex: *half_bfloat_single_double_complex_real_precisions
- dot_batched_ex: *half_bfloat_single_double_complex_real_precisions
- dot_strided_batched_ex: *half_bfloat_single_double_complex_real_precisions
- dotc_ex: *half_bfloat_single_double_complex_real_precisions
- dotc_batched_ex: *half_bfloat_single_double_complex_real_precisions
- dotc_strided_batched_ex: *half_bfloat_single_double_complex_real_precisions
- scal: *single_double_precisions_complex_real
- scal: *scal_single_double_complex_real_alpha_complex_out
- scal_batched: *single_double_precisions_complex_real
- scal_batched: *scal_single_double_complex_real_alpha_complex_out
- scal_strided_batched: *single_double_precisions_complex_real
- scal_strided_batched: *scal_single_double_complex_real_alpha_complex_out
- scal_ex: *single_double_precisions_complex_real
- scal_batched_ex: *single_double_precisions_complex_real
- scal_strided_batched_ex: *single_double_precisions_complex_real
- swap: *single_double_precisions_complex_real
- swap_batched: *single_double_precisions_complex_real
- swap_strided_batched: *single_double_precisions_complex_real
- rot: *rot_precisions
- rot_ex: *rot_ex_precisions
- rotg: *rotg_precisions
- rotm: *single_double_precisions
- rotmg: *single_double_precisions
- rot_batched: *rot_precisions
- rot_batched_ex: *rot_ex_precisions
- rotg_batched: *rotg_precisions
- rotm_batched: *single_double_precisions
- rotmg_batched: *single_double_precisions
- rot_strided_batched: *rot_precisions
- rotg_strided_batched: *rotg_precisions
- rotm_strided_batched: *single_double_precisions
- rotmg_strided_batched: *single_double_precisions
...