BLD: `utest` port
This commit is contained in:
parent
4547456d9d
commit
fa7ba3121c
|
@ -1,7 +1,7 @@
|
||||||
interface_args = ['-include', f'@bldroot@/simd_conf.h']
|
interface_args = ['-include', f'@bldroot@/simd_conf.h']
|
||||||
if not build_without_cblas
|
# if not build_without_cblas
|
||||||
interface_args += '-DCBLAS'
|
# interface_args += '-DCBLAS'
|
||||||
endif
|
# endif
|
||||||
_blas_roots = [
|
_blas_roots = [
|
||||||
# NOTE: q, qx, x, xq do not have cblas_ rules in the Makefile
|
# NOTE: q, qx, x, xq do not have cblas_ rules in the Makefile
|
||||||
# NOTE: https://developer.arm.com/documentation/101004/2310/BLAS-Basic-Linear-Algebra-Subprograms/CBLAS-functions?lang=en
|
# NOTE: https://developer.arm.com/documentation/101004/2310/BLAS-Basic-Linear-Algebra-Subprograms/CBLAS-functions?lang=en
|
||||||
|
|
|
@ -56,12 +56,18 @@ base_kops = [
|
||||||
'modes': {
|
'modes': {
|
||||||
's': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'saxpy.c'}}},
|
's': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'saxpy.c'}}},
|
||||||
'd': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'daxpy.c'}}},
|
'd': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'daxpy.c'}}},
|
||||||
'c': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'caxpy.c'}}},
|
'c': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'caxpy.c', 'addl': ['-UCONJ']}}},
|
||||||
'z': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'zaxpy.c'}}},
|
'z': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'zaxpy.c', 'addl': ['-UCONJ']}}},
|
||||||
# 'q': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'axpy.S'}}},
|
# 'q': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'axpy.S'}}},
|
||||||
# 'x': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'zaxpy.S'}}},
|
# 'x': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'zaxpy.S'}}},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{ 'base': '?axpyc',
|
||||||
|
'modes': {
|
||||||
|
'c': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'caxpy.c', 'addl': ['-DCONJ']}}},
|
||||||
|
'z': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'zaxpy.c', 'addl': ['-DCONJ']}}},
|
||||||
|
},
|
||||||
|
},
|
||||||
{ 'base': '?dot',
|
{ 'base': '?dot',
|
||||||
'modes': {
|
'modes': {
|
||||||
's': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'sdot.c'}}},
|
's': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'sdot.c'}}},
|
||||||
|
@ -84,7 +90,7 @@ base_kops = [
|
||||||
{ 'base': '?dsdot',
|
{ 'base': '?dsdot',
|
||||||
'modes': {
|
'modes': {
|
||||||
's': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'sdot.c'}}},
|
's': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'sdot.c'}}},
|
||||||
'd': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'sdot.c'}}},
|
'': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'sdot.c', 'addl': ['-DDSDOT']}}},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
# TODO(rg): Add dsdotkernel conditionals
|
# TODO(rg): Add dsdotkernel conditionals
|
||||||
|
@ -863,15 +869,82 @@ base_kops = [
|
||||||
{ 'base': '?omatcopy_k',
|
{ 'base': '?omatcopy_k',
|
||||||
'modes': {
|
'modes': {
|
||||||
's': {'exts': {
|
's': {'exts': {
|
||||||
'_cn': {'dir': 'arm', 'kernel': 'omatcopy_cn.c',
|
'_cn': {'dir': 'arm', 'kernel': 'omatcopy_cn.c', 'addl': ['-UROWM']},
|
||||||
'addl': ['-UROWM']},
|
'_rn': {'dir': 'arm', 'kernel': 'omatcopy_rn.c', 'addl': ['-DROWM']},
|
||||||
'_rn': {'dir': 'arm', 'kernel': 'omatcopy_rn.c',
|
'_ct': {'dir': 'arm', 'kernel': 'omatcopy_ct.c', 'addl': ['-UROWM']},
|
||||||
'addl': ['-DROWM']},
|
'_rt': {'dir': 'arm', 'kernel': 'omatcopy_rt.c', 'addl': ['-DROWM']},
|
||||||
'_ct': {'dir': 'arm', 'kernel': 'omatcopy_ct.c',
|
|
||||||
'addl': ['-UROWM']},
|
|
||||||
'_rt': {'dir': 'x86_64', 'kernel': 'omatcopy_rt.c',
|
|
||||||
'addl': ['-DROWM']},
|
|
||||||
}},
|
}},
|
||||||
|
'd': {'exts': {
|
||||||
|
'_cn': {'dir': 'arm', 'kernel': 'omatcopy_cn.c', 'addl': ['-UROWM']},
|
||||||
|
'_rn': {'dir': 'arm', 'kernel': 'omatcopy_rn.c', 'addl': ['-DROWM']},
|
||||||
|
'_ct': {'dir': 'arm', 'kernel': 'omatcopy_ct.c', 'addl': ['-UROWM']},
|
||||||
|
'_rt': {'dir': 'arm', 'kernel': 'omatcopy_rt.c', 'addl': ['-DROWM']},
|
||||||
|
}},
|
||||||
|
'c': {'exts': {
|
||||||
|
'_cn': {'dir': 'arm', 'kernel': 'zomatcopy_cn.c', 'addl': ['-UROWM', '-UCONJ']},
|
||||||
|
'_rn': {'dir': 'arm', 'kernel': 'zomatcopy_rn.c', 'addl': ['-DROWM', '-UCONJ']},
|
||||||
|
'_ct': {'dir': 'arm', 'kernel': 'zomatcopy_ct.c', 'addl': ['-UROWM', '-UCONJ']},
|
||||||
|
'_rt': {'dir': 'arm', 'kernel': 'zomatcopy_rt.c', 'addl': ['-DROWM', '-UCONJ']},
|
||||||
|
'_cnc': {'dir': 'arm', 'kernel': 'zomatcopy_cnc.c', 'addl': ['-UROWM', '-DCONJ']},
|
||||||
|
'_rnc': {'dir': 'arm', 'kernel': 'zomatcopy_rnc.c', 'addl': ['-DROWM', '-DCONJ']},
|
||||||
|
'_ctc': {'dir': 'arm', 'kernel': 'zomatcopy_ctc.c', 'addl': ['-UROWM', '-DCONJ']},
|
||||||
|
'_rtc': {'dir': 'arm', 'kernel': 'zomatcopy_rtc.c', 'addl': ['-DROWM', '-DCONJ']},
|
||||||
|
}},
|
||||||
|
'z': {'exts': {
|
||||||
|
'_cn': {'dir': 'arm', 'kernel': 'zomatcopy_cn.c', 'addl': ['-UROWM', '-UCONJ']},
|
||||||
|
'_rn': {'dir': 'arm', 'kernel': 'zomatcopy_rn.c', 'addl': ['-DROWM', '-UCONJ']},
|
||||||
|
'_ct': {'dir': 'arm', 'kernel': 'zomatcopy_ct.c', 'addl': ['-UROWM', '-UCONJ']},
|
||||||
|
'_rt': {'dir': 'arm', 'kernel': 'zomatcopy_rt.c', 'addl': ['-DROWM', '-UCONJ']},
|
||||||
|
'_cnc': {'dir': 'arm', 'kernel': 'zomatcopy_cnc.c', 'addl': ['-UROWM', '-DCONJ']},
|
||||||
|
'_rnc': {'dir': 'arm', 'kernel': 'zomatcopy_rnc.c', 'addl': ['-DROWM', '-DCONJ']},
|
||||||
|
'_ctc': {'dir': 'arm', 'kernel': 'zomatcopy_ctc.c', 'addl': ['-UROWM', '-DCONJ']},
|
||||||
|
'_rtc': {'dir': 'arm', 'kernel': 'zomatcopy_rtc.c', 'addl': ['-DROWM', '-DCONJ']},
|
||||||
|
}},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{ 'base': '?imatcopy_k',
|
||||||
|
'modes': {
|
||||||
|
's': {'exts': {
|
||||||
|
'_cn': {'dir': 'generic', 'kernel': 'imatcopy_cn.c', 'addl': ['-UROWM']},
|
||||||
|
'_rn': {'dir': 'generic', 'kernel': 'imatcopy_rn.c', 'addl': ['-DROWM']},
|
||||||
|
'_ct': {'dir': 'generic', 'kernel': 'imatcopy_ct.c', 'addl': ['-UROWM']},
|
||||||
|
'_rt': {'dir': 'generic', 'kernel': 'imatcopy_rt.c', 'addl': ['-DROWM']},
|
||||||
|
}},
|
||||||
|
'd': {'exts': {
|
||||||
|
'_cn': {'dir': 'generic', 'kernel': 'imatcopy_cn.c', 'addl': ['-UROWM']},
|
||||||
|
'_rn': {'dir': 'generic', 'kernel': 'imatcopy_rn.c', 'addl': ['-DROWM']},
|
||||||
|
'_ct': {'dir': 'generic', 'kernel': 'imatcopy_ct.c', 'addl': ['-UROWM']},
|
||||||
|
'_rt': {'dir': 'generic', 'kernel': 'imatcopy_rt.c', 'addl': ['-DROWM']},
|
||||||
|
}},
|
||||||
|
'c': {'exts': {
|
||||||
|
'_cn': {'dir': 'generic', 'kernel': 'zimatcopy_cn.c', 'addl': ['-UROWM', '-UCONJ']},
|
||||||
|
'_rn': {'dir': 'generic', 'kernel': 'zimatcopy_rn.c', 'addl': ['-DROWM', '-UCONJ']},
|
||||||
|
'_ct': {'dir': 'generic', 'kernel': 'zimatcopy_ct.c', 'addl': ['-UROWM', '-UCONJ']},
|
||||||
|
'_rt': {'dir': 'generic', 'kernel': 'zimatcopy_rt.c', 'addl': ['-DROWM', '-UCONJ']},
|
||||||
|
'_cnc': {'dir': 'generic', 'kernel': 'zimatcopy_cnc.c', 'addl': ['-UROWM', '-DCONJ']},
|
||||||
|
'_rnc': {'dir': 'generic', 'kernel': 'zimatcopy_rnc.c', 'addl': ['-DROWM', '-DCONJ']},
|
||||||
|
'_ctc': {'dir': 'generic', 'kernel': 'zimatcopy_ctc.c', 'addl': ['-UROWM', '-DCONJ']},
|
||||||
|
'_rtc': {'dir': 'generic', 'kernel': 'zimatcopy_rtc.c', 'addl': ['-DROWM', '-DCONJ']},
|
||||||
|
}},
|
||||||
|
'z': {'exts': {
|
||||||
|
'_cn': {'dir': 'generic', 'kernel': 'zimatcopy_cn.c', 'addl': ['-UROWM', '-UCONJ']},
|
||||||
|
'_rn': {'dir': 'generic', 'kernel': 'zimatcopy_rn.c', 'addl': ['-DROWM', '-UCONJ']},
|
||||||
|
'_ct': {'dir': 'generic', 'kernel': 'zimatcopy_ct.c', 'addl': ['-UROWM', '-UCONJ']},
|
||||||
|
'_rt': {'dir': 'generic', 'kernel': 'zimatcopy_rt.c', 'addl': ['-DROWM', '-UCONJ']},
|
||||||
|
'_cnc': {'dir': 'generic', 'kernel': 'zimatcopy_cnc.c', 'addl': ['-UROWM', '-DCONJ']},
|
||||||
|
'_rnc': {'dir': 'generic', 'kernel': 'zimatcopy_rnc.c', 'addl': ['-DROWM', '-DCONJ']},
|
||||||
|
'_ctc': {'dir': 'generic', 'kernel': 'zimatcopy_ctc.c', 'addl': ['-UROWM', '-DCONJ']},
|
||||||
|
'_rtc': {'dir': 'generic', 'kernel': 'zimatcopy_rtc.c', 'addl': ['-DROWM', '-DCONJ']},
|
||||||
|
}},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'base': '?geadd',
|
||||||
|
'modes': {
|
||||||
|
's': {'exts': {'_k': {'dir': 'generic', 'kernel': 'geadd.c', 'addl': ['-UROWM']}}},
|
||||||
|
'd': {'exts': {'_k': {'dir': 'generic', 'kernel': 'geadd.c', 'addl': ['-UROWM']}}},
|
||||||
|
'c': {'exts': {'_k': {'dir': 'generic', 'kernel': 'zgeadd.c', 'addl': ['-UROWM']}}},
|
||||||
|
'z': {'exts': {'_k': {'dir': 'generic', 'kernel': 'zgeadd.c', 'addl': ['-UROWM']}}},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{ 'base': '?gemm_small_kernel',
|
{ 'base': '?gemm_small_kernel',
|
||||||
|
|
|
@ -550,3 +550,7 @@ pkg.generate(_openblas,
|
||||||
description: 'OpenBLAS via meson build',
|
description: 'OpenBLAS via meson build',
|
||||||
version: f'@pkg_ver@_meson',
|
version: f'@pkg_ver@_meson',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if build_testing
|
||||||
|
subdir('utest')
|
||||||
|
endif
|
||||||
|
|
|
@ -0,0 +1,106 @@
|
||||||
|
sources_utest = [
|
||||||
|
config_h,
|
||||||
|
'utest_main.c',
|
||||||
|
'test_min.c',
|
||||||
|
'test_amax.c',
|
||||||
|
'test_ismin.c',
|
||||||
|
'test_rotmg.c',
|
||||||
|
'test_axpy.c',
|
||||||
|
'test_dotu.c',
|
||||||
|
'test_dsdot.c',
|
||||||
|
'test_swap.c',
|
||||||
|
'test_rot.c',
|
||||||
|
'test_dnrm2.c',
|
||||||
|
'test_zscal.c',
|
||||||
|
'test_amin.c',
|
||||||
|
'test_axpby.c',
|
||||||
|
]
|
||||||
|
|
||||||
|
dir_ext = 'test_extensions'
|
||||||
|
sources_utest_ext = [
|
||||||
|
config_h,
|
||||||
|
'utest_main.c',
|
||||||
|
dir_ext / 'xerbla.c',
|
||||||
|
dir_ext / 'common.c',
|
||||||
|
dir_ext / 'test_isamin.c',
|
||||||
|
dir_ext / 'test_idamin.c',
|
||||||
|
dir_ext / 'test_icamin.c',
|
||||||
|
dir_ext / 'test_izamin.c',
|
||||||
|
dir_ext / 'test_ssum.c',
|
||||||
|
dir_ext / 'test_dsum.c',
|
||||||
|
dir_ext / 'test_scsum.c',
|
||||||
|
dir_ext / 'test_dzsum.c',
|
||||||
|
dir_ext / 'test_saxpby.c',
|
||||||
|
dir_ext / 'test_daxpby.c',
|
||||||
|
dir_ext / 'test_caxpby.c',
|
||||||
|
dir_ext / 'test_zaxpby.c',
|
||||||
|
dir_ext / 'test_zaxpyc.c',
|
||||||
|
dir_ext / 'test_caxpyc.c',
|
||||||
|
dir_ext / 'test_samin.c',
|
||||||
|
dir_ext / 'test_damin.c',
|
||||||
|
dir_ext / 'test_scamin.c',
|
||||||
|
dir_ext / 'test_dzamin.c',
|
||||||
|
dir_ext / 'test_scamax.c',
|
||||||
|
dir_ext / 'test_dzamax.c',
|
||||||
|
dir_ext / 'test_drotmg.c',
|
||||||
|
dir_ext / 'test_srotmg.c',
|
||||||
|
dir_ext / 'test_zrotg.c',
|
||||||
|
dir_ext / 'test_crotg.c',
|
||||||
|
dir_ext / 'test_crot.c',
|
||||||
|
dir_ext / 'test_zrot.c',
|
||||||
|
dir_ext / 'test_zscal.c',
|
||||||
|
dir_ext / 'test_cscal.c',
|
||||||
|
dir_ext / 'test_domatcopy.c',
|
||||||
|
dir_ext / 'test_somatcopy.c',
|
||||||
|
dir_ext / 'test_zomatcopy.c',
|
||||||
|
dir_ext / 'test_comatcopy.c',
|
||||||
|
dir_ext / 'test_simatcopy.c',
|
||||||
|
dir_ext / 'test_dimatcopy.c',
|
||||||
|
dir_ext / 'test_cimatcopy.c',
|
||||||
|
dir_ext / 'test_zimatcopy.c',
|
||||||
|
dir_ext / 'test_sgeadd.c',
|
||||||
|
dir_ext / 'test_dgeadd.c',
|
||||||
|
dir_ext / 'test_cgeadd.c',
|
||||||
|
dir_ext / 'test_zgeadd.c',
|
||||||
|
dir_ext / 'test_cgemv_t.c',
|
||||||
|
dir_ext / 'test_zgemv_t.c',
|
||||||
|
dir_ext / 'test_cgemv_n.c',
|
||||||
|
dir_ext / 'test_zgemv_n.c',
|
||||||
|
dir_ext / 'test_sgemmt.c',
|
||||||
|
dir_ext / 'test_dgemmt.c',
|
||||||
|
dir_ext / 'test_cgemmt.c',
|
||||||
|
dir_ext / 'test_zgemmt.c',
|
||||||
|
dir_ext / 'test_ztrmv.c',
|
||||||
|
dir_ext / 'test_ctrmv.c',
|
||||||
|
dir_ext / 'test_ztrsv.c',
|
||||||
|
dir_ext / 'test_ctrsv.c',
|
||||||
|
dir_ext / 'test_zgemm.c',
|
||||||
|
dir_ext / 'test_cgemm.c',
|
||||||
|
dir_ext / 'test_zgbmv.c',
|
||||||
|
dir_ext / 'test_cgbmv.c',
|
||||||
|
dir_ext / 'test_zspmv.c',
|
||||||
|
dir_ext / 'test_cspmv.c',
|
||||||
|
dir_ext / 'test_zsbmv.c',
|
||||||
|
dir_ext / 'test_csbmv.c',
|
||||||
|
]
|
||||||
|
|
||||||
|
openblas_utest_exec = executable(
|
||||||
|
'openblas_utest',
|
||||||
|
sources: sources_utest,
|
||||||
|
link_with: _openblas,
|
||||||
|
dependencies: [dependency('threads')],
|
||||||
|
include_directories: ['..', '.'],
|
||||||
|
c_args: _cargs,
|
||||||
|
)
|
||||||
|
|
||||||
|
openblas_utest_ext_exec = executable(
|
||||||
|
'openblas_utest_ext',
|
||||||
|
sources: sources_utest_ext,
|
||||||
|
link_with: _openblas,
|
||||||
|
dependencies: [dependency('threads')],
|
||||||
|
include_directories: ['..', '.'],
|
||||||
|
c_args: _cargs,
|
||||||
|
)
|
||||||
|
|
||||||
|
test('openblas_utest_tests', openblas_utest_exec)
|
||||||
|
test('openblas_utest_tests', openblas_utest_ext_exec)
|
Loading…
Reference in New Issue