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