Files
TheRock/rocm-libraries/projects/hipblas/clients/include/hipblas_common.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

602 lines
18 KiB
YAML

# Data types are defined as either aliases to Python-recognized ctypes,
# or enums defined with c_int base clases and attributes.
Datatypes:
- int: c_int
- hipDataType:
bases: [ c_int ]
attr:
f32_r: 0
f64_r: 1
f16_r: 2
i8_r: 3
f32_c: 4
f64_c: 5
f16_c: 6
i8_c: 7
u8_r: 8
u8_c: 9
i32_r: 10
i32_c: 11
u32_r: 12
u32_c: 13
bf16_r: 14
bf16_c: 15
i4_r: 16
i4_c: 17
u4_r: 18
u4_c: 19
i16_r: 20
i16_c: 21
u16_r: 22
u16_c: 23
i64_r: 24
i64_c: 25
u64_r: 26
u64_c: 27
f8_r: 28
bf8_r: 29
f8_r_fnuz: 1000
bf8_r_fnuz: 1001
- { half: f16_r, single: f32_r, double: f64_r }
- { half complex: f16_c, single complex: f32_c, double complex: f64_c }
- hipblas_initialization:
bases: [ c_int ]
attr:
rand_int: 111
trig_float: 222
hpl: 333
- hipblas_atomics_mode:
bases: [ c_int ]
attr:
atomics_not_allowed: 0
atomics_allowed: 1
- hipblasComputeType_t:
bases: [ c_int ]
attr:
c16f: 0
c16f_pedantic: 1
c32f: 2
c32f_pedantic: 3
c32f_fast_16f: 4
c32f_fast_16bf: 5
c32f_fast_tf32: 6
c64f: 7
c64f_pedantic: 8
c32i: 9
c32i_pedantic: 10
- hipblas_client_os:
bases: [ c_uint32 ]
attr:
LINUX: 1
WINDOWS: 2
ALL_OS: 3
- hipblas_backend:
bases: [ c_uint32 ]
attr:
AMD: 1
NVIDIA: 2
ALL_BACKEND: 3
- hipblas_client_api:
bases: [ c_uint32 ]
attr:
C: 0
C_64: 1
FORTRAN: 2
FORTRAN_64: 3
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 }
- &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_half_float_alpha
{ a_type: f32_r, b_type: f16_r, c_type: f16_r, d_type: f16_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_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_ex
{ a_type: f32_r, b_type: f32_r, c_type: f32_r, d_type: f32_r, compute_type: f32_r, compute_type_gemm: c32f }
- &double_precision_ex
{ a_type: f64_r, b_type: f64_r, c_type: f64_r, d_type: f64_r, compute_type: f64_r, compute_type_gemm: c64f }
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
- *half_precision
- *single_precision
Non-int precisions: &hpa_half_single_double_precisions
- *hpa_half_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
- &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 }
- &single_precision_complex_ex
{ a_type: f32_c, b_type: f32_c, c_type: f32_c, d_type: f32_c, compute_type: f32_c, compute_type_gemm: c32f }
- &double_precision_complex_ex
{ a_type: f64_c, b_type: f64_c, c_type: f64_c, d_type: f64_c, compute_type: f64_c, compute_type_gemm: c64f }
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_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_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
C precisions complex and real: &single_double_precisions_complex_real_gemm_ex
- *single_precision_ex
- *double_precision_ex
- *single_precision_complex_ex
- *double_precision_complex_ex
C precisions complex and real and half real: &single_double_precisions_complex_real_half_real
- *half_precision
- *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
- *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
- *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 Scal #
#############################################
Joined precisions: &complex_real_in_complex_out
- &single_precision_complex_real_in_complex_out
{ a_type: f32_c, b_type: f32_r, c_type: f32_r, d_type: f32_c, compute_type: f32_c }
- &double_precision_complex_real_in_complex_out
{ a_type: f64_c, b_type: f64_r, c_type: f64_r, d_type: f64_c, compute_type: f64_c }
Single double joined: &single_double_complex_real_in_complex_out
- *single_precision_complex_real_in_complex_out
- *double_precision_complex_real_in_complex_out
#############################################
# Used for Scal_ex #
#############################################
Hpa half and half: &hpa_half_half_precisions
- *hpa_half_precision
- *half_precision
# 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 }
Hpa bfloat half single double complex real: &scal_ex_precision_all
- *single_precision
- *double_precision
- *single_precision_complex
- *double_precision_complex
- *hpa_half_float_alpha
- *alpha_f32_hpa_bf16_precision
Scal ex precisions amd: &scal_ex_precision_amd
- *hpa_bf16_precision
- *hpa_half_precision
- *half_precision
- *scal_ex_single_precision_complex_real_alpha_complex_out
- *scal_ex_double_precision_complex_real_alpha_complex_out
#############################################
# Used for axpy_ex #
#############################################
Hpa bfloat half single double complex real: &axpy_ex_precision_all
- *alpha_f32_hpa_bf16_precision
- *hpa_half_float_alpha
- *single_precision
- *double_precision
- *single_precision_complex
- *double_precision_complex
Axpy ex precisions amd: &axpy_ex_precision_amd
- *hpa_bf16_precision
- *hpa_half_precision
- *half_precision
#############################################
# Used for rot* #
#############################################
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
- *single_precision
- *double_precision
# - *half_precision_complex
- *single_precision_complex
- *double_precision_complex
# dot_ex on nvidia doesn't include half_precision support
Dot ex precisions no half: &dot_ex_precision_all
- *hpa_bf16_precision
- *single_precision
- *double_precision
# - *half_precision_complex
- *single_precision_complex
- *double_precision_complex
#############################################
# Used for axpy_ex #
#############################################
Hpa single double complex real: &half_single_double_complex_real_precisions
- *single_precision
- *double_precision
- *single_precision_complex
- *double_precision_complex
- *hpa_half_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_out_precision_syrk_ex
{ a_type: f16_r, b_type: f16_r, c_type: f16_r, d_type: f32_r, compute_type: f32_r }
- &bfloat_out_precision_syrk_ex
{ a_type: bf16_r, b_type: bf16_r, c_type: bf16_r, d_type: f32_r, compute_type: f32_r }
- &half_precision_syrk_ex
{ a_type: f16_r, b_type: f16_r, c_type: f32_r, d_type: f32_r, compute_type: f32_r }
- &bfloat_precision_syrk_ex
{ a_type: bf16_r, b_type: bf16_r, c_type: f32_r, d_type: f32_r, compute_type: f32_r }
- &float_precision_syrk_ex
{ a_type: f32_r, b_type: f32_r, c_type: f32_r, d_type: f32_r, compute_type: f64_r }
- &double_out_precision_syrk_ex
{ a_type: f32_r, b_type: f32_r, c_type: f64_r, d_type: f32_r, compute_type: f64_r }
#############################################
# Used for herk_ex #
#############################################
herk_ex precisions: &herk_ex_precisions
- &float_precision_herk_ex
{ a_type: f32_c, b_type: f32_c, c_type: f32_c, d_type: f32_c, compute_type: f64_c }
- &double_out_precision_herk_ex
{ a_type: f32_c, b_type: f32_c, c_type: f64_c, d_type: f32_c, compute_type: f64_c }
Definitions:
- &c_pos_int64_t_value
- [2147483649] # force looping over y/z chunks
- &c_neg_int64_t_value
- [-2147483649] # force looping over y/z chunks
- &c_grid_yz_require_passes
- [666666] # force looping over y/z chunks
Arguments:
- M: c_int64
- N: c_int64
- K: c_int64
- KL: c_int64
- KU: c_int64
- rows: c_int64
- cols: c_int64
- lda: c_int64
- ldb: c_int64
- ldc: c_int64
- ldd: c_int64
- a_type: hipDataType
- b_type: hipDataType
- c_type: hipDataType
- d_type: hipDataType
- compute_type: hipDataType
- compute_type_gemm: hipblasComputeType_t
- incx: c_int64
- incy: c_int64
- incd: c_int64
- incb: c_int64
- stride_scale: 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
- start: int
- end: int
- step: int
- alpha: c_double
- alphai: c_double
- beta: c_double
- betai: c_double
- transA: c_char
- transB: c_char
- side: c_char
- uplo: c_char
- diag: c_char
- call_count: int
- batch_count: c_int64
- inplace: c_bool
- with_flags: c_bool
- norm_check: int
- unit_check: int
- timing: int
- iters: int
- cold_iters: int
- algo: c_uint
- solution_index: c_int
- flags: c_uint
- function: c_char*64
- name: c_char*64
- category: c_char*64
- atomics_mode: hipblas_atomics_mode
- os_flags: hipblas_client_os
- gpu_arch: c_char*4
- backend_flags: hipblas_backend
- api: hipblas_client_api
- pad: c_uint32
- initialization: hipblas_initialization
- bad_arg_all: c_bool
# - known_bug_platforms: c_char*64
# - c_noalias_d: 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
# 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: -1
N: -1
K: -1
KL: -1
KU: -1
rows: 128
cols: 128
incx: 1
incy: 1
incd: 0
incb: 0
user_allocated_workspace: 0
stride_scale: 1.0
start: 1024
end: 10240
step: 1000
alpha: 1.0
alphai: 0.0
beta: 0.0
betai: 0.0
transA: '*'
transB: '*'
side: '*'
uplo: '*'
diag: '*'
call_count: 1
batch_count: -1
inplace: false
with_flags: false
pad: 4096
norm_check: 0
unit_check: 1
timing: 0
iters: 10
cold_iters: 2
algo: 0
solution_index: 0
flags: 0
name: hipblas-bench
category: nightly
# default benchmarking to faster atomics_allowed (test is default not allowed)
atomics_mode: atomics_allowed
os_flags: ALL_OS
gpu_arch: ''
backend_flags: ALL_BACKEND
api: C
initialization: rand_int
bad_arg_all: true
compute_type_gemm: 2
#workspace_size: 0
# known_bug_platforms: ''
#c_noalias_d: false