MAINT: Cleanup interface build and be generic

For the L1 interface symbols at any rate
This commit is contained in:
Rohit Goswami 2024-04-08 05:11:49 +00:00 committed by Mateusz Sokół
parent 5a7a5a4e55
commit e87fcdc360
1 changed files with 49 additions and 32 deletions

View File

@ -19,8 +19,8 @@ blas1_roots = [
# These don't exist as roots.
# ismax amax isamax amin ismin isamin
# TODO: Why is dsdot in sblas1objs!?
'axpy', 'swap', 'copy', 'scal', 'dot', 'dsdot', 'asum', 'sum', 'nrm2', 'max',
'rot', 'rotg', 'rotm', 'rotmg', 'axpby',
# 'axpy', 'swap', 'copy', 'scal', 'dot', 'dsdot', 'asum', 'sum', 'nrm2', 'max',
'rot'#, 'rotg', 'rotm', 'rotmg', 'axpby',
]
blas2_roots = [
'gemv', 'ger', 'trsv', 'trmv', 'symv', 'syr', 'syr2', 'gbmv', 'sbmv',
@ -44,17 +44,28 @@ blas_roots += blas1_roots
blas_roots += blas2_roots
blas_roots += blas3_roots
_kinds += real_kinds
foreach root : blas_roots
foreach root : blas1_roots
fname = root + '.c'
defs = []
# if root in addl_srcs
# defs += addl_srcs[root]
# endif
foreach prec : real_kinds
_defs = []
name = prec + fname
interface_confs += {'defs': defs, 'name': name, 'src': fname}
if prec == 'd'
_defs += ['-UCOMPLEX', '-DDOUBLE']
elif prec == 's'
_defs += ['-UCOMPLEX', '-UDOUBLE']
elif prec == 'cs'
_defs += ['-DCOMPLEX', '-UDOUBLE']
endif
interface_confs += {'defs': _defs,
'name': 'cblas_' + prec + root,
'src': fname}
endforeach
endforeach
message(interface_confs)
# if get_option('bfloat16')
# TODO: Handle bfloat16
@ -63,35 +74,41 @@ endforeach
# sblas3_srcs += files(['sbgemm.c', 'sbgemmt.c'])
# endif
interface_confs += {
'name': 'cblas_drot',
'defs': ['-DCBLAS'],
'src': files('rot.c')
}
_static_libs = []
# foreach conf: interface_confs
# _static_libs += static_library(
# conf['name'],
# conf['src'],
# include_directories: _inc,
# c_args: conf['defs'],
# )
# endforeach
foreach conf: interface_confs
sym_name = conf['name']
sym_underscored = f'@sym_name@_'
_static_libs += static_library(
'cblas_drot',
'rot.c',
sym_name,
conf['src'],
include_directories: _inc,
c_args: [_cargs,
'-DASMNAME=cblas_drot',
'-DASMFNAME=cblas_drot_',
'-DNAME=cblas_drot_',
'-DCNAME=cblas_drot',
'-DCHAR_NAME="cblas_drot_"',
'-DCHAR_CNAME="cblas_drot"',
'-DDOUBLE',
'-UCOMPLEX',],
c_args: [
conf['defs'],
_cargs,
f'-DASMNAME=@sym_name@',
f'-DASMFNAME=@sym_underscored@',
f'-DNAME=@sym_underscored@',
f'-DCNAME=@sym_name@',
f'-DCHAR_NAME="@sym_underscored@"',
f'-DCHAR_CNAME="@sym_name@"',
],
)
endforeach
# _static_libs += static_library(
# 'cblas_drot',
# 'rot.c',
# include_directories: _inc,
# c_args: [_cargs,
# '-DASMNAME=cblas_drot',
# '-DASMFNAME=cblas_drot_',
# '-DNAME=cblas_drot_',
# '-DCNAME=cblas_drot',
# '-DCHAR_NAME="cblas_drot_"',
# '-DCHAR_CNAME="cblas_drot"',
# '-DDOUBLE',
# '-UCOMPLEX',],
# )
_interface = static_library('_interface',
c_args: _cargs,