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
688 lines
21 KiB
YAML
688 lines
21 KiB
YAML
# Data types are defined as either aliases to Python-recognized ctypes,
|
|
# or enums defined with c_int base classes and attributes.
|
|
Datatypes:
|
|
- rocblas_int: c_int
|
|
- rocblas_datatype:
|
|
bases: [ c_uint32 ]
|
|
attr:
|
|
f16_r: 150
|
|
f32_r: 151
|
|
f64_r: 152
|
|
f16_c: 153
|
|
f32_c: 154
|
|
f64_c: 155
|
|
i8_r: 160
|
|
u8_r: 161
|
|
i32_r: 162
|
|
u32_r: 163
|
|
i8_c: 164
|
|
u8_c: 165
|
|
i32_c: 166
|
|
u32_c: 167
|
|
bf16_r: 168
|
|
bf16_c: 169
|
|
- { half: f16_r, single: f32_r, double: f64_r }
|
|
- { half complex: f16_c, single complex: f32_c, double complex: f64_c }
|
|
- rocblas_initialization:
|
|
bases: [ c_uint32 ]
|
|
attr:
|
|
rand_int: 111
|
|
trig_float: 222
|
|
hpl: 333
|
|
denorm: 444
|
|
denorm2: 555
|
|
rand_int_zero_one: 666
|
|
zero: 777
|
|
- rocblas_gemm_flags:
|
|
bases: [ c_uint32 ]
|
|
attr:
|
|
none: 0
|
|
use_cu_efficiency: 2
|
|
fp16_alt_impl: 4
|
|
check_solution_index: 8
|
|
fp16_alt_impl_rnz: 16
|
|
stochastic_rounding: 32
|
|
- rocblas_geam_ex_operation:
|
|
bases: [ c_uint32 ]
|
|
attr:
|
|
rocblas_geam_ex_operation_min_plus: 0
|
|
rocblas_geam_ex_operation_plus_min: 1
|
|
- rocblas_atomics_mode:
|
|
bases: [ c_uint32 ]
|
|
attr:
|
|
atomics_not_allowed: 0
|
|
atomics_allowed: 1
|
|
# match client argument_model.hpp enum values
|
|
- rocblas_client_os:
|
|
bases: [ c_uint32 ]
|
|
attr:
|
|
LINUX: 1
|
|
WINDOWS: 2
|
|
ALL: 3
|
|
# match client argument_model.hpp enum values
|
|
- rocblas_api:
|
|
bases: [ c_uint32 ]
|
|
attr:
|
|
C: 0
|
|
C_64: 1
|
|
FORTRAN: 2
|
|
FORTRAN_64: 3
|
|
INTERNAL: 4
|
|
INTERNAL_64: 5
|
|
|
|
|
|
Common threads and streams: &common_threads_streams
|
|
- { threads: 0, streams: 0}
|
|
# - { threads: 0, streams: 1 }
|
|
# - { threads: 1, streams: 0 }
|
|
# - { threads: 3, streams: 3 }
|
|
# - { threads: 5, streams: 5 }
|
|
|
|
Real precisions: &real_precisions
|
|
- &half_precision
|
|
{ a_type: f16_r, b_type: f16_r, c_type: f16_r, d_type: f16_r, compute_type: f16_r }
|
|
- &hpa_half_precision
|
|
{ a_type: f16_r, b_type: f16_r, c_type: f16_r, d_type: f16_r, compute_type: f32_r }
|
|
- &hpa_half_in_single_out_precision
|
|
{ a_type: f16_r, b_type: f16_r, c_type: f32_r, d_type: f32_r, compute_type: f32_r }
|
|
- &single_precision
|
|
{ a_type: f32_r, b_type: f32_r, c_type: f32_r, d_type: f32_r, compute_type: f32_r }
|
|
- &double_precision
|
|
{ a_type: f64_r, b_type: f64_r, c_type: f64_r, d_type: f64_r, compute_type: f64_r }
|
|
- &int8_precision
|
|
{ a_type: i8_r, b_type: i8_r, c_type: i32_r, d_type: i32_r, compute_type: i32_r }
|
|
- &bf16_precision
|
|
{ a_type: bf16_r, b_type: bf16_r, c_type: bf16_r, d_type: bf16_r, compute_type: bf16_r }
|
|
- &hpa_bf16_precision
|
|
{ a_type: bf16_r, b_type: bf16_r, c_type: bf16_r, d_type: bf16_r, compute_type: f32_r }
|
|
- &alpha_f32_hpa_bf16_precision
|
|
{ a_type: f32_r, b_type: bf16_r, c_type: bf16_r, d_type: bf16_r, compute_type: f32_r }
|
|
- &hpa_bf16_in_single_out_precision
|
|
{ a_type: bf16_r, b_type: bf16_r, c_type: f32_r, d_type: f32_r, compute_type: f32_r }
|
|
- &hpa_half_float_alpha
|
|
{ a_type: f32_r, b_type: f16_r, c_type: f16_r, d_type: f16_r, compute_type: f32_r }
|
|
- &single_in_double_out_precision
|
|
{ a_type: f32_r, b_type: f32_r, c_type: f64_r, d_type: f64_r, compute_type: f64_r }
|
|
|
|
C precisions: &single_double_precisions
|
|
- *single_precision
|
|
- *double_precision
|
|
|
|
Short simple precisions: &half_single_precisions
|
|
- *half_precision
|
|
- *single_precision
|
|
|
|
Short precisions: &int8_half_single_precisions
|
|
- *int8_precision
|
|
- *half_precision
|
|
- *single_precision
|
|
|
|
ML precisions: &hpa_half_single_precisions
|
|
- *hpa_half_precision
|
|
- *hpa_half_in_single_out_precision
|
|
- *half_precision
|
|
- *single_precision
|
|
|
|
Non-int precisions: &hpa_half_single_double_precisions
|
|
- *hpa_half_precision
|
|
- *hpa_half_in_single_out_precision
|
|
- *half_precision
|
|
- *single_precision
|
|
- *double_precision
|
|
|
|
Non-int8 Real precisions: &nonint8_real_precisions
|
|
- *hpa_half_precision
|
|
- *hpa_half_in_single_out_precision
|
|
- *half_precision
|
|
- *single_precision
|
|
- *double_precision
|
|
- *bf16_precision
|
|
- *hpa_bf16_precision
|
|
- *hpa_bf16_in_single_out_precision
|
|
- *hpa_half_float_alpha
|
|
|
|
Simple precisions: &half_single_double_precisions
|
|
- *half_precision
|
|
- *single_precision
|
|
- *double_precision
|
|
|
|
Complex precisions: &complex_precisions
|
|
# don't define until required
|
|
#- &half_precision_complex
|
|
# { a_type: f16_c, b_type: f16_c, c_type: f16_c, d_type: f16_c, compute_type: f16_c }
|
|
#- &hpa_half_precision_complex
|
|
# { a_type: f16_c, b_type: f16_c, c_type: f16_c, d_type: f16_c, compute_type: f32_c }
|
|
- &single_precision_complex
|
|
{ a_type: f32_c, b_type: f32_c, c_type: f32_c, d_type: f32_c, compute_type: f32_c }
|
|
- &double_precision_complex
|
|
{ a_type: f64_c, b_type: f64_c, c_type: f64_c, d_type: f64_c, compute_type: f64_c }
|
|
#- &int8_precision_complex
|
|
# { a_type: i8_c, b_type: i8_c, c_type: i32_c, d_type: i32_c, compute_type: i32_c }
|
|
- &hpa_bf16_precision_complex
|
|
{ a_type: bf16_c, b_type: bf16_c, c_type: bf16_c, d_type: bf16_c, compute_type: f32_c }
|
|
|
|
# no half or less complex required yet
|
|
|
|
#Half Precision complex and real: &half_precision_complex_real
|
|
# - *half_precision
|
|
# - *half_precision_complex
|
|
|
|
#Hpa Half Precision complex and real: &hpa_half_precision_complex_real
|
|
# - *hpa_half_precision
|
|
# - *hpa_half_in_single_out_precision
|
|
# - *hpa_half_precision_complex
|
|
|
|
Single Precision complex and real: &single_precision_complex_real
|
|
- *single_precision
|
|
- *single_precision_complex
|
|
|
|
Double Precision complex and real: &double_precision_complex_real
|
|
- *double_precision
|
|
- *double_precision_complex
|
|
|
|
# int8 Precision complex and real: &int8_precision_complex_real
|
|
# - *int8_precision
|
|
# - *int8_precision_complex
|
|
|
|
hpabf16 Precision complex and real: &hpa_bf16_precision_complex_real
|
|
- *hpa_bf16_precision
|
|
- *hpa_bf16_in_single_out_precision
|
|
- *hpa_bf16_precision_complex
|
|
|
|
C precisions complex: &single_double_precisions_complex
|
|
- *single_precision_complex
|
|
- *double_precision_complex
|
|
|
|
C precisions complex and real: &single_double_precisions_complex_real
|
|
- *single_precision
|
|
- *double_precision
|
|
- *single_precision_complex
|
|
- *double_precision_complex
|
|
|
|
Short simple precisions complex and real: &half_single_precisions_complex_real
|
|
- *half_precision
|
|
- *single_precision
|
|
# - *half_precision_complex
|
|
- *single_precision_complex
|
|
|
|
Short precisions complex and real: &int8_half_single_precisions_complex_real
|
|
- *int8_precision
|
|
- *half_precision
|
|
- *single_precision
|
|
# - *int8_precision_complex
|
|
# - *half_precision_complex
|
|
- *single_precision_complex
|
|
|
|
ML precisions complex and real: &hpa_half_single_precisions_complex_real
|
|
- *hpa_half_precision
|
|
- *hpa_half_in_single_out_precision
|
|
- *half_precision
|
|
- *single_precision
|
|
# - *hpa_half_precision_complex
|
|
# - *half_precision_complex
|
|
- *single_precision_complex
|
|
|
|
Non-int precisions complex and real: &hpa_half_single_double_precisions_complex_real
|
|
- *hpa_half_precision
|
|
- *hpa_half_in_single_out_precision
|
|
- *half_precision
|
|
- *single_precision
|
|
- *double_precision
|
|
# - *hpa_half_precision_complex
|
|
# - *half_precision_complex
|
|
- *single_precision_complex
|
|
- *double_precision_complex
|
|
|
|
Simple precisions complex and real: &half_single_double_precisions_complex_real
|
|
- *half_precision
|
|
- *single_precision
|
|
- *double_precision
|
|
# - *half_precision_complex
|
|
- *single_precision_complex
|
|
- *double_precision_complex
|
|
|
|
#############################################################################################################
|
|
# Used for gemv_batched and gemv_strided_batched #
|
|
# Special test cases are added to test gemv_batched and gemv_strided_batched for types HSH, HSS, TST, TSS #
|
|
#############################################################################################################
|
|
|
|
gemv batched and strided batched: &gemv_bfloat_half_single_double_complex_real_precisions
|
|
- *single_precision
|
|
- *double_precision
|
|
- *single_precision_complex
|
|
- *double_precision_complex
|
|
- *hpa_bf16_precision
|
|
- *hpa_bf16_in_single_out_precision
|
|
- *hpa_half_precision
|
|
- *hpa_half_in_single_out_precision
|
|
|
|
#############################################
|
|
# Used for Scal #
|
|
#############################################
|
|
|
|
# scal order mapping is x, alpha
|
|
scal Joined precisions: &scal_complex_real_alpha_complex_out
|
|
- &scal_single_precision_complex_real_alpha_complex_out
|
|
{ a_type: f32_c, b_type: f32_r, c_type: f32_c, d_type: f32_c, compute_type: f32_c }
|
|
- &scal_double_precision_complex_real_alpha_complex_out
|
|
{ a_type: f64_c, b_type: f64_r, c_type: f64_c, d_type: f64_c, compute_type: f64_c }
|
|
|
|
scal Single double joined: &scal_single_double_complex_real_alpha_complex_out
|
|
- *scal_single_precision_complex_real_alpha_complex_out
|
|
- *scal_double_precision_complex_real_alpha_complex_out
|
|
|
|
#############################################
|
|
# Used for Scal_ex #
|
|
#############################################
|
|
|
|
# scal_ex order mapping is alpha, x, y, o, compute
|
|
scal_ex precisions: &scal_ex_complex_real_alpha_complex_out
|
|
- &scal_ex_single_precision_complex_real_alpha_complex_out
|
|
{ a_type: f32_r, b_type: f32_c, c_type: f32_c, d_type: f32_c, compute_type: f32_c }
|
|
- &scal_ex_double_precision_complex_real_alpha_complex_out
|
|
{ a_type: f64_r, b_type: f64_c, c_type: f64_c, d_type: f64_c, compute_type: f64_c }
|
|
|
|
scal_ex Single double joined: &scal_ex_single_double_complex_real_alpha_complex_out
|
|
- *scal_ex_single_precision_complex_real_alpha_complex_out
|
|
- *scal_ex_double_precision_complex_real_alpha_complex_out
|
|
|
|
Hpa bfloat half single double complex real: &scal_ex_bfloat_half_single_double_complex_real_precisions
|
|
- *single_precision
|
|
- *double_precision
|
|
- *single_precision_complex
|
|
- *double_precision_complex
|
|
- *hpa_half_precision
|
|
- *half_precision
|
|
- *hpa_half_float_alpha
|
|
- *hpa_bf16_precision
|
|
- *alpha_f32_hpa_bf16_precision
|
|
|
|
#############################################
|
|
# Used for rot* and nrm2_ex #
|
|
#############################################
|
|
Complex real mixed: &complex_real_mixed
|
|
- &single_precision_complex_real_in_complex_compute
|
|
{ a_type: f32_c, b_type: f32_r, c_type: f32_c, d_type: f32_c, compute_type: f32_c }
|
|
- &double_precision_complex_real_in_complex_compute
|
|
{ a_type: f64_c, b_type: f64_r, c_type: f64_c, d_type: f64_c, compute_type: f64_c }
|
|
- &single_precision_complex_real_in_real_compute
|
|
{ a_type: f32_c, b_type: f32_r, c_type: f32_c, d_type: f32_c, compute_type: f32_r }
|
|
- &double_precision_complex_real_in_real_compute
|
|
{ a_type: f64_c, b_type: f64_r, c_type: f64_c, d_type: f64_c, compute_type: f64_r }
|
|
- &single_precision_complex_real_c
|
|
{ a_type: f32_c, b_type: f32_c, c_type: f32_r, d_type: f32_c, compute_type: f32_c }
|
|
- &double_precision_complex_real_c
|
|
{ a_type: f64_c, b_type: f64_c, c_type: f64_r, d_type: f64_c, compute_type: f64_c }
|
|
|
|
rot precisions: &rot_precisions
|
|
- *single_precision
|
|
- *double_precision
|
|
- *single_precision_complex_real_in_complex_compute
|
|
- *single_precision_complex_real_in_real_compute
|
|
- *double_precision_complex_real_in_complex_compute
|
|
- *double_precision_complex_real_in_real_compute
|
|
|
|
rot_ex precisions: &rot_ex_precisions
|
|
- *single_precision
|
|
- *double_precision
|
|
- *single_precision_complex
|
|
- *double_precision_complex
|
|
- *hpa_half_precision
|
|
- *hpa_bf16_precision
|
|
- *single_precision_complex_real_c
|
|
- *double_precision_complex_real_c
|
|
|
|
rotg precisions: &rotg_precisions
|
|
- *single_precision
|
|
- *double_precision
|
|
- *single_precision_complex_real_in_complex_compute
|
|
- *double_precision_complex_real_in_complex_compute
|
|
|
|
#############################################
|
|
# Used for Dot (quick) #
|
|
#############################################
|
|
Half bfloat single double complex real: &half_bfloat_single_double_complex_real_precisions
|
|
- *half_precision
|
|
- *hpa_bf16_precision
|
|
- *hpa_bf16_in_single_out_precision
|
|
- *single_precision
|
|
- *double_precision
|
|
# - *half_precision_complex
|
|
- *single_precision_complex
|
|
- *double_precision_complex
|
|
|
|
Half bfloat single double mixed complex real: &dot_ex_precisions
|
|
- *half_precision
|
|
- *hpa_bf16_precision
|
|
- *hpa_bf16_in_single_out_precision
|
|
- *single_precision
|
|
- *double_precision
|
|
# - *half_precision_complex
|
|
- *single_precision_complex
|
|
- *double_precision_complex
|
|
- *single_in_double_out_precision
|
|
|
|
#############################################
|
|
# Used for Dot (algo=1) #
|
|
#############################################
|
|
Half bfloat single double complex real: &bfloat_single_double_complex_real_precisions
|
|
- *hpa_bf16_precision
|
|
- *hpa_bf16_in_single_out_precision
|
|
- *single_precision
|
|
- *double_precision
|
|
- *single_precision_complex
|
|
- *double_precision_complex
|
|
|
|
####################################################
|
|
# Used for gemm_batched and gemm_strided_batched #
|
|
#####################################################
|
|
Hpa single double complex real: &half_single_double_complex_real_precisions
|
|
- *hpa_half_float_alpha
|
|
- *single_precision
|
|
- *double_precision
|
|
- *single_precision_complex
|
|
- *double_precision_complex
|
|
- *hpa_half_precision
|
|
- *hpa_half_in_single_out_precision
|
|
- *half_precision
|
|
|
|
#############################################
|
|
# Used for axpy_ex #
|
|
#############################################
|
|
Hpa bfloat half single double complex real: &bfloat_half_single_double_complex_real_precisions
|
|
- *hpa_bf16_precision
|
|
- *alpha_f32_hpa_bf16_precision
|
|
- *hpa_half_float_alpha
|
|
- *single_precision
|
|
- *double_precision
|
|
- *single_precision_complex
|
|
- *double_precision_complex
|
|
- *hpa_half_precision
|
|
- *hpa_half_in_single_out_precision
|
|
- *half_precision
|
|
|
|
#############################################
|
|
# Used for nrm2_ex #
|
|
#############################################
|
|
nrm2_ex precisions: &nrm2_ex_precisions
|
|
- &half_precision_nrm2
|
|
{ a_type: f16_r, b_type: f16_r, c_type: f32_r, d_type: f32_r, compute_type: f32_r }
|
|
- &bfloat_precision_nrm2
|
|
{ a_type: bf16_r, b_type: bf16_r, c_type: f32_r, d_type: f32_r, compute_type: f32_r }
|
|
- *single_precision
|
|
- *double_precision
|
|
- *single_precision_complex_real_in_real_compute
|
|
- *double_precision_complex_real_in_real_compute
|
|
|
|
nrm2_ex precisions double: &nrm2_ex_precisions_double
|
|
- *double_precision
|
|
- *double_precision_complex_real_in_real_compute
|
|
|
|
#############################################
|
|
# Used for syrk_ex #
|
|
#############################################
|
|
syrk_ex_precisions: &syrk_ex_precisions
|
|
- &half_precision_real_out_compute_syrk_ex
|
|
{ a_type: f16_r, b_type: f16_r, c_type: f32_r, d_type: f32_r, compute_type: f32_r }
|
|
- &bfloat_precision_real_out_compute_syrk_ex
|
|
{ a_type: bf16_r, b_type: bf16_r, c_type: f32_r, d_type: f32_r, compute_type: f32_r }
|
|
- &half_precision_real_compute_syrk_ex
|
|
{ a_type: f16_r, b_type: f16_r, c_type: f16_r, d_type: f16_r, compute_type: f32_r }
|
|
- &bfloat_precision_real_compute_syrk_ex
|
|
{ a_type: bf16_r, b_type: bf16_r, c_type: bf16_r, d_type: bf16_r, compute_type: f32_r }
|
|
- &float_precision_double_compute_syrk_ex
|
|
{ a_type: f32_r, b_type: f32_r, c_type: f32_r, d_type: f32_r, compute_type: f64_r }
|
|
- &float_precision_double_out_compute_syrk_ex
|
|
{ a_type: f32_r, b_type: f32_r, c_type: f64_r, d_type: f64_r, compute_type: f64_r }
|
|
|
|
#############################################
|
|
# Used for herk_ex #
|
|
#############################################
|
|
herk_ex_precisions: &herk_ex_precisions
|
|
- &float_precision_double_compute_herk_ex
|
|
{ a_type: f32_c, b_type: f32_c, c_type: f32_c, d_type: f32_c, compute_type: f64_c }
|
|
- &float_precision_double_out_compute_herk_ex
|
|
{ a_type: f32_c, b_type: f32_c, c_type: f64_c, d_type: f64_c, compute_type: f64_c }
|
|
|
|
Definitions:
|
|
|
|
# blas1 common test args
|
|
- &blas1_nan_common_args
|
|
N: [ 5 ]
|
|
batch_count: [ 3 ]
|
|
incx: [ 1, 2 ]
|
|
incy: [ 2, 1 ]
|
|
alpha: .NaN
|
|
stride_scale: [ 1 ]
|
|
|
|
- &blas1_graph_test_common_args
|
|
N: [ 20000 ]
|
|
batch_count: [ 3 ]
|
|
incx: [ 1 ]
|
|
incy: [ 1 ]
|
|
alpha: [ 1 ]
|
|
stride_scale: [ 1 ]
|
|
graph_test: true
|
|
|
|
- &blas1_repeatability_incx_incy
|
|
- { incx: 1, incy: 1 }
|
|
- { incx: -3, incy: -3 }
|
|
|
|
- &blas1_repeatability_common_args
|
|
N: [ -1, 0, 5, 10, 500, 1000, 1024, 1025, 7111, 10000, 33792 ]
|
|
incx_incy: *blas1_repeatability_incx_incy
|
|
batch_count: [2]
|
|
stride_scale: [ 1 ]
|
|
alpha: 0.5
|
|
beta: 0.5
|
|
initialization: hpl
|
|
iters: 5
|
|
pointer_mode_host: false
|
|
devices: 4
|
|
repeatability_check: true
|
|
atomics_mode: 0
|
|
|
|
# scan extension applied by Arguments class
|
|
- &c_scan_value
|
|
- [-999]
|
|
- &c_scan_value_2
|
|
- [-998]
|
|
|
|
# scan extension applied by Arguments class
|
|
- &c_gemm_test_all_solutions_returned
|
|
- [-3] # match definitions.hpp
|
|
|
|
# int64 API testing constants
|
|
- &c_pos_overflow_int32
|
|
- [4294967296]
|
|
- &c_neg_overflow_int32
|
|
- [-4294967296]
|
|
|
|
- &c_pos_x2_overflow_int32
|
|
- [1073741825]
|
|
- &c_neg_x2_overflow_int32
|
|
- [-1073741825]
|
|
|
|
- &c_pos_x32_overflow_int32
|
|
- [67108865] # (67108865 - 1) x 32 will overflow to sign bit
|
|
|
|
- &c_grid_yz_require_passes
|
|
- [65539] # force looping over y/z chunks near grid limit. TODO track constant c_i64_grid_YZ_chunk in int64_helpers.hpp
|
|
|
|
- &c_grid_x_require_passes
|
|
- [268435459] # force looping over x chunks 268435456. TODO track constant c_i64_grid_X_chunk in int64_helpers.hpp
|
|
|
|
# The Arguments struct passed directly to C++. See rocblas_arguments.hpp.
|
|
# The order of the entries is significant, so it can't simply be a dictionary.
|
|
# The types on the RHS are eval'd for Python-recognized types including ctypes
|
|
# and datatypes defined in Datatypes above. T*n represents array of length n.
|
|
Arguments:
|
|
- function: c_char*64
|
|
- name: c_char*64
|
|
- category: c_char*64
|
|
- known_bug_platforms: c_char*64
|
|
- alpha: c_double
|
|
- alphai: c_double
|
|
- beta: c_double
|
|
- betai: c_double
|
|
- stride_a: c_int64
|
|
- stride_b: c_int64
|
|
- stride_c: c_int64
|
|
- stride_d: c_int64
|
|
- stride_x: c_int64
|
|
- stride_y: c_int64
|
|
- user_allocated_workspace: c_size_t
|
|
- M: c_int64
|
|
- N: c_int64
|
|
- K: c_int64
|
|
- KL: c_int64
|
|
- KU: c_int64
|
|
- lda: c_int64
|
|
- ldb: c_int64
|
|
- ldc: c_int64
|
|
- ldd: c_int64
|
|
- incx: c_int64
|
|
- incy: c_int64
|
|
- batch_count: c_int64
|
|
- scan: c_int64
|
|
- scan_2: c_int64
|
|
- iters: c_int32
|
|
- cold_iters: c_int32
|
|
- algo: c_uint32
|
|
- solution_index: c_int32
|
|
- geam_op: rocblas_geam_ex_operation
|
|
- flags: rocblas_gemm_flags
|
|
- a_type: rocblas_datatype
|
|
- b_type: rocblas_datatype
|
|
- c_type: rocblas_datatype
|
|
- d_type: rocblas_datatype
|
|
- compute_type: rocblas_datatype
|
|
- initialization: rocblas_initialization
|
|
- atomics_mode: rocblas_atomics_mode
|
|
- os_flags: rocblas_client_os
|
|
- gpu_arch: c_char*4
|
|
- api: rocblas_api
|
|
- pad: c_uint32
|
|
- math_mode: c_uint32
|
|
- flush_batch_count: c_uint64
|
|
- flush_memory_size: c_uint64
|
|
- threads: c_uint16
|
|
- streams: c_uint16
|
|
- devices: c_uint8
|
|
- norm_check: c_int8
|
|
- unit_check: c_int8
|
|
- res_check: c_int8
|
|
- timing: c_int8
|
|
- transA: c_char
|
|
- transB: c_char
|
|
- side: c_char
|
|
- uplo: c_char
|
|
- diag: c_char
|
|
- pointer_mode_host: c_bool
|
|
- pointer_mode_device: c_bool
|
|
- stochastic_rounding: c_bool
|
|
- c_noalias_d: c_bool
|
|
- outofplace: c_bool
|
|
- HMM: c_bool
|
|
- graph_test: c_bool
|
|
- repeatability_check: c_bool
|
|
- alpha_beta_stride: c_bool
|
|
- use_hipblaslt: c_int32
|
|
- cleanup: c_bool
|
|
|
|
|
|
# These named dictionary lists [ {dict1}, {dict2}, etc. ] supply subsets of
|
|
# test arguments in a structured way. The dictionaries are applied to the test
|
|
# one at a time, to generate combinations. If one of this table's entries is
|
|
# a dictionary of size one, it means that the argument named by its key takes
|
|
# on values paired with argument named by its value. For example:
|
|
#
|
|
# - function: precision
|
|
#
|
|
# when used with the code:
|
|
#
|
|
# function:
|
|
# func1: prec1
|
|
# func2: prec2
|
|
# func3: prec3
|
|
#
|
|
# causes (function, precision) to take on the values (func1, prec1),
|
|
# (func2, prec2), (func3, prec3), etc.
|
|
|
|
Dictionary lists to expand:
|
|
- arguments
|
|
- transA_transB
|
|
- alpha_beta
|
|
- alphai_betai
|
|
- incx_incy
|
|
- matrix_size
|
|
- precision
|
|
- function: precision
|
|
- threads_streams
|
|
|
|
# In case an array argument needs to be passed directly to C as an array,
|
|
# it needs to be listed here to avoid being expanded into multiple test
|
|
# cases with each of its elements.
|
|
Lists to not expand:
|
|
- e.g., an array argument not to be expanded
|
|
|
|
# Defaults
|
|
Defaults:
|
|
M: 128
|
|
N: 128
|
|
K: 128
|
|
KL: 128
|
|
KU: 128
|
|
incx: 0
|
|
incy: 0
|
|
alpha: 1.0
|
|
alphai: 0.0
|
|
beta: 0.0
|
|
betai: 0.0
|
|
transA: '*'
|
|
transB: '*'
|
|
side: '*'
|
|
uplo: '*'
|
|
diag: '*'
|
|
batch_count: 1
|
|
scan: *c_scan_value
|
|
scan_2: *c_scan_value_2
|
|
HMM: false
|
|
pad: 4096
|
|
math_mode: 0
|
|
flush_batch_count: 1
|
|
flush_memory_size: 0
|
|
threads: 0
|
|
streams: 0
|
|
devices: 0
|
|
os_flags: ALL
|
|
gpu_arch: ''
|
|
api: C
|
|
graph_test: false
|
|
repeatability_check: false
|
|
alpha_beta_stride: false
|
|
norm_check: 0
|
|
unit_check: 1
|
|
res_check: 0
|
|
timing: 0
|
|
iters: 10
|
|
cold_iters: 2
|
|
algo: 0
|
|
solution_index: 0
|
|
geam_op: rocblas_geam_ex_operation_min_plus
|
|
flags: none
|
|
atomics_mode: atomics_not_allowed
|
|
initialization: rand_int
|
|
category: nightly
|
|
known_bug_platforms: ''
|
|
name: rocblas-bench
|
|
pointer_mode_host: true
|
|
pointer_mode_device: true
|
|
stochastic_rounding: false
|
|
c_noalias_d: false
|
|
outofplace: false
|
|
user_allocated_workspace: 0
|
|
compute_type: -1
|
|
use_hipblaslt: -1
|
|
cleanup: true
|