MAINT: Rework from make log

This commit is contained in:
Rohit Goswami 2024-07-07 00:14:54 +00:00 committed by Mateusz Sokół
parent 2c950d4c97
commit ecf5333c27
2 changed files with 257 additions and 236 deletions

View File

@ -14,62 +14,58 @@ base_kops = [
# Level 1 BLAS
{ 'base': '?rot',
'modes': {
's': {'exts': {'_k': {'dir': 'arm', 'kernel': 'rot.c', 'addl': [fma3_flag]}}},
'd': {'exts': {'_k': {'dir': 'arm', 'kernel': 'rot.c', 'addl': [fma3_flag]}}},
'q': {'exts': {'_k': {'dir': 'arm', 'kernel': 'zrot.c'}}},
'cs': {'exts': {'_k': {'dir': 'arm', 'kernel': 'zrot.c'}}},
'zd': {'exts': {'_k': {'dir': 'arm', 'kernel': 'zrot.c'}}},
's': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'srot.c', 'addl': [fma3_flag]}}},
'd': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'drot.c', 'addl': [fma3_flag]}}},
# 'q': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'zrot.c'}}},
'cs': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'zrot_sse.S'}}},
'zd': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'zrot_sse2.S'}}},
# 'xq': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'zrot.S'}}},
},
},
{ 'base': '?swap',
'modes': {
's': {'exts': {'_k': {'dir': 'arm', 'kernel': 'swap.c'}}},
'd': {'exts': {'_k': {'dir': 'arm', 'kernel': 'swap.c'}}},
'c': {'exts': {'_k': {'dir': 'arm', 'kernel': 'zswap.c'}}},
'z': {'exts': {'_k': {'dir': 'arm', 'kernel': 'zswap.c'}}},
'q': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'swap.S'}}},
'x': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'zswap.S'}}},
's': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'swap_sse.S'}}},
'd': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'swap_sse2.S'}}},
'c': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'zswap_sse.S'}}},
'z': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'zswap_sse2.S'}}},
# 'q': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'swap.S'}}},
# 'x': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'zswap.S'}}},
},
},
{ 'base': '?scal',
'modes': {
's': {'exts': {'_k': {'dir': 'arm', 'kernel': 'scal.c'}}},
'd': {'exts': {'_k': {'dir': 'arm', 'kernel': 'scal.c'}}},
'c': {'exts': {'_k': {'dir': 'arm', 'kernel': 'zscal.c'}}},
'z': {'exts': {'_k': {'dir': 'arm', 'kernel': 'zscal.c'}}},
's': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'sscal.c'}}},
'd': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'dscal.c'}}},
'c': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'cscal.c'}}},
'z': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'zscal.c'}}},
# 'q': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'scal.S'}}},
# 'x': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'zscal.S'}}},
},
},
{ 'base': '?copy',
'modes': {
's': {'exts': {'_k': {'dir': 'arm', 'kernel': 'copy.c'}}},
'd': {'exts': {'_k': {'dir': 'arm', 'kernel': 'copy.c'}}},
'c': {'exts': {'_k': {'dir': 'arm', 'kernel': 'zcopy.c'}}},
'z': {'exts': {'_k': {'dir': 'arm', 'kernel': 'zcopy.c'}}},
'q': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'copy.S'}}},
'x': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'zcopy.S'}}},
's': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'copy_sse.S'}}},
'd': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'copy_sse2.S'}}},
'c': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'zcopy_sse.S'}}},
'z': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'zcopy_sse2.S'}}},
# 'q': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'copy.S'}}},
# 'x': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'zcopy.S'}}},
},
},
{ 'base': '?axpy',
'modes': {
's': {'exts': {'_k': {'dir': 'arm', 'kernel': 'axpy.c'}}},
'd': {'exts': {'_k': {'dir': 'arm', 'kernel': 'axpy.c'}}},
'c': {'exts': {'_k': {'dir': 'arm', 'kernel': 'zaxpy.c'}}},
'z': {'exts': {'_k': {'dir': 'arm', 'kernel': 'zaxpy.c'}}},
'q': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'axpy.S'}}},
'x': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'zaxpy.S'}}},
's': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'saxpy.c'}}},
'd': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'daxpy.c'}}},
'c': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'caxpy.c'}}},
'z': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'zaxpy.c'}}},
# 'q': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'axpy.S'}}},
# 'x': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'zaxpy.S'}}},
},
},
{ 'base': '?dot',
'modes': {
's': {'exts': {'_k': {'dir': 'arm', 'kernel': 'dot.c'}}},
'd': {'exts': {'_k': {'dir': 'arm', 'kernel': 'dot.c'}}},
'c': {'exts': {'_k': {'dir': 'arm', 'kernel': 'zdot.c'}}},
'z': {'exts': {'_k': {'dir': 'arm', 'kernel': 'zdot.c'}}},
'q': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'dot.S'}}},
'x': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'zdot.S'}}},
's': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'sdot.c'}}},
'd': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'ddot.c'}}},
},
},
{ 'base': '?dotc',
@ -84,69 +80,76 @@ base_kops = [
'z': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'zdot.c'}}},
},
},
# TODO(rg): Check?
{ 'base': '?dsdot',
'modes': {
's': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'sdot.c'}}},
'd': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'sdot.c'}}},
},
},
# TODO(rg): Add dsdotkernel conditionals
# xDOTU xDOTC xxDOT aren't present
{ 'base': '?nrm2',
'modes': {
's': {'exts': {'_k': {'dir': 'arm', 'kernel': 'nrm2.c'}}},
'd': {'exts': {'_k': {'dir': 'arm', 'kernel': 'nrm2.c'}}},
'c': {'exts': {'_k': {'dir': 'arm', 'kernel': 'znrm2.c'}}},
'z': {'exts': {'_k': {'dir': 'arm', 'kernel': 'znrm2.c'}}},
'q': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'nrm2.S'}}},
'x': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'znrm2.S'}}},
's': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'nrm2_sse.S'}}},
'd': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'nrm2.S'}}},
'c': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'znrm2_sse.S'}}},
'z': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'znrm2.S'}}},
# 'q': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'nrm2.S'}}},
# 'x': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'znrm2.S'}}},
},
},
{ 'base': '?asum',
'modes': {
's': {'exts': {'_k': {'dir': 'arm', 'kernel': 'asum.c'}}},
'd': {'exts': {'_k': {'dir': 'arm', 'kernel': 'asum.c'}}},
'c': {'exts': {'_k': {'dir': 'arm', 'kernel': 'zasum.c'}}},
'z': {'exts': {'_k': {'dir': 'arm', 'kernel': 'zasum.c'}}},
'q': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'asum.S'}}},
'x': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'zasum.S'}}},
's': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'sasum.c'}}},
'd': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'dasum.c'}}},
'c': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'zasum_sse.S'}}},
'z': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'zasum_sse2.S'}}},
# 'q': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'asum.S'}}},
# 'x': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'zasum.S'}}},
},
},
{ 'base': '?amax',
'modes': {
's': {'exts': {'_k': {'dir': 'arm', 'kernel': 'amax.c'}}},
'd': {'exts': {'_k': {'dir': 'arm', 'kernel': 'amax.c'}}},
'c': {'exts': {'_k': {'dir': 'arm', 'kernel': 'zamax.c'}}},
'z': {'exts': {'_k': {'dir': 'arm', 'kernel': 'zamax.c'}}},
'q': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'amax.S'}}},
'x': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'zamax.S'}}},
's': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'amax_sse.S'}}},
'd': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'amax_sse2.S'}}},
'c': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'zamax_sse.S'}}},
'z': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'zamax_sse2.S'}}},
# 'q': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'amax.S'}}},
# 'x': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'zamax.S'}}},
},
},
{ 'base': '?sum',
'modes': {
's': {'exts': {'_k': {'dir': 'arm', 'kernel': 'sum.c'}}},
'd': {'exts': {'_k': {'dir': 'arm', 'kernel': 'sum.c'}}},
'c': {'exts': {'_k': {'dir': 'arm', 'kernel': 'zsum.c'}}},
'z': {'exts': {'_k': {'dir': 'arm', 'kernel': 'zsum.c'}}},
'c': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'zsum_sse.S'}}},
'z': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'zsum_sse2.S'}}},
},
},
{ 'base': '?amin',
'modes': {
's': {'exts': {'_k': {'dir': 'arm', 'kernel': 'amin.c'}}},
'd': {'exts': {'_k': {'dir': 'arm', 'kernel': 'amin.c'}}},
'c': {'exts': {'_k': {'dir': 'arm', 'kernel': 'zamin.c'}}},
'z': {'exts': {'_k': {'dir': 'arm', 'kernel': 'zamin.c'}}},
'q': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'iamax.S'}}},
'x': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'izamax.S'}}},
's': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'amax_sse.S'}}},
'd': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'amax_sse2.S'}}},
'c': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'zamax_sse.S'}}},
'z': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'zamax_sse2.S'}}},
# 'q': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'iamax.S'}}},
# 'x': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'izamax.S'}}},
},
},
{ 'base': 'i?amax',
'modes': {
's': {'exts': {'_k': {'dir': 'arm', 'kernel': 'iamax.c'}}},
'd': {'exts': {'_k': {'dir': 'arm', 'kernel': 'iamax.c'}}},
'c': {'exts': {'_k': {'dir': 'arm', 'kernel': 'izamax.c'}}},
'z': {'exts': {'_k': {'dir': 'arm', 'kernel': 'izamax.c'}}},
'q': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'iamax.S'}}},
'x': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'izamax.S'}}},
's': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'iamax_sse.S'}}},
'd': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'iamax_sse2.S'}}},
'c': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'izamax_sse.S'}}},
'z': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'izamax_sse2.S'}}},
# 'q': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'iamax.S'}}},
# 'x': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'izamax.S'}}},
},
},
{ 'base': 'i?amin',
'modes': {
's': {'exts': {'_k': {'dir': 'arm', 'kernel': 'iamin.c'}}},
's': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'iamax_sse.S'}}},
'd': {'exts': {'_k': {'dir': 'arm', 'kernel': 'iamin.c'}}},
'c': {'exts': {'_k': {'dir': 'arm', 'kernel': 'izamin.c'}}},
'z': {'exts': {'_k': {'dir': 'arm', 'kernel': 'izamin.c'}}},
@ -154,30 +157,30 @@ base_kops = [
},
{ 'base': 'i?max',
'modes': {
's': {'exts': {'_k': {'dir': 'arm', 'kernel': 'imax.c'}}},
'd': {'exts': {'_k': {'dir': 'arm', 'kernel': 'imax.c'}}},
'q': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'iamax.S'}}},
's': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'iamax_sse.S'}}},
'd': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'iamax_sse2.S'}}},
# 'q': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'iamax.S'}}},
},
},
{ 'base': 'i?min',
'modes': {
's': {'exts': {'_k': {'dir': 'arm', 'kernel': 'imin.c'}}},
'd': {'exts': {'_k': {'dir': 'arm', 'kernel': 'imin.c'}}},
'q': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'iamax.S'}}},
's': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'iamax_sse.S'}}},
'd': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'iamax_sse2.S'}}},
# 'q': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'iamax.S'}}},
},
},
{ 'base': '?max',
'modes': {
's': {'exts': {'_k': {'dir': 'arm', 'kernel': 'max.c'}}},
'd': {'exts': {'_k': {'dir': 'arm', 'kernel': 'max.c'}}},
'q': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'amax.S'}}},
's': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'amax_sse.S'}}},
'd': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'amax_sse2.S'}}},
# 'q': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'amax.S'}}},
},
},
{ 'base': '?min',
'modes': {
's': {'exts': {'_k': {'dir': 'arm', 'kernel': 'min.c'}}},
'd': {'exts': {'_k': {'dir': 'arm', 'kernel': 'min.c'}}},
'q': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'amax.S'}}},
's': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'amax_sse.S'}}},
'd': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'amax_sse2.S'}}},
# 'q': {'exts': {'_k': {'dir': 'x86_64', 'kernel': 'amax.S'}}},
},
},
{ 'base': '?axpby',
@ -201,66 +204,66 @@ base_kops = [
# TODO(rg): Where are these coming from??
# Most of these have both generic defines and also per-folder defines..
# Makefile lists sgemv_n_4.c as the source, though there is a sgemv_n.c
'_n': {'dir': 'arm', 'kernel': 'gemv_n.c'},
'_t': {'dir': 'arm', 'kernel': 'gemv_t.c'},
'_n': {'dir': 'x86_64', 'kernel': 'sgemv_n_4.c'},
'_t': {'dir': 'x86_64', 'kernel': 'sgemv_t_4.c'},
}
},
'd': {
'exts': {
'_n': {'dir': 'arm', 'kernel': 'gemv_n.c'},
'_t': {'dir': 'arm', 'kernel': 'gemv_t.c'},
}
},
'q': {
'exts': {
'_n': {'dir': 'x86_64', 'kernel': 'qgemv_n.S'},
'_t': {'dir': 'x86_64', 'kernel': 'qgemv_t.S'},
'_n': {'dir': 'x86_64', 'kernel': 'dgemv_n_4.c'},
'_t': {'dir': 'x86_64', 'kernel': 'dgemv_t_4.c'},
}
},
# 'q': {
# 'exts': {
# '_n': {'dir': 'x86_64', 'kernel': 'qgemv_n.S'},
# '_t': {'dir': 'x86_64', 'kernel': 'qgemv_t.S'},
# }
# },
'c': {
'exts': {
'_n': {'dir': 'arm', 'kernel': 'zgemv_n.c'},
'_t': {'dir': 'arm', 'kernel': 'zgemv_n.c'},
'_r': {'dir': 'arm', 'kernel': 'zgemv_n.c'},
'_c': {'dir': 'arm', 'kernel': 'zgemv_n.c'},
'_o': {'dir': 'arm', 'kernel': 'zgemv_n.c'},
'_u': {'dir': 'arm', 'kernel': 'zgemv_n.c'},
'_s': {'dir': 'arm', 'kernel': 'zgemv_n.c'},
'_d': {'dir': 'arm', 'kernel': 'zgemv_n.c'},
'_n': {'dir': 'x86_64', 'kernel': 'cgemv_n_4.c'},
'_t': {'dir': 'x86_64', 'kernel': 'cgemv_t_4.c'},
'_r': {'dir': 'x86_64', 'kernel': 'cgemv_n_4.c'},
'_c': {'dir': 'x86_64', 'kernel': 'cgemv_t_4.c'},
'_o': {'dir': 'x86_64', 'kernel': 'cgemv_n_4.c'},
'_u': {'dir': 'x86_64', 'kernel': 'cgemv_t_4.c'},
'_s': {'dir': 'x86_64', 'kernel': 'cgemv_n_4.c'},
'_d': {'dir': 'x86_64', 'kernel': 'cgemv_t_4.c'},
}
},
'z': {
'exts': {
'_n': {'dir': 'arm', 'kernel': 'zgemv_n.c'},
'_t': {'dir': 'arm', 'kernel': 'zgemv_n.c'},
'_r': {'dir': 'arm', 'kernel': 'zgemv_n.c'},
'_c': {'dir': 'arm', 'kernel': 'zgemv_n.c'},
'_o': {'dir': 'arm', 'kernel': 'zgemv_n.c'},
'_u': {'dir': 'arm', 'kernel': 'zgemv_n.c'},
'_s': {'dir': 'arm', 'kernel': 'zgemv_n.c'},
'_d': {'dir': 'arm', 'kernel': 'zgemv_n.c'},
}
},
'x': {
'exts': {
'_n': {'dir': 'arm', 'kernel': 'zgemv_n.c'},
'_t': {'dir': 'arm', 'kernel': 'zgemv_n.c'},
'_r': {'dir': 'arm', 'kernel': 'zgemv_n.c'},
'_c': {'dir': 'arm', 'kernel': 'zgemv_n.c'},
'_o': {'dir': 'arm', 'kernel': 'zgemv_n.c'},
'_u': {'dir': 'arm', 'kernel': 'zgemv_n.c'},
'_s': {'dir': 'arm', 'kernel': 'zgemv_n.c'},
'_d': {'dir': 'arm', 'kernel': 'zgemv_n.c'},
'_n': {'dir': 'x86_64', 'kernel': 'zgemv_n_4.c'},
'_t': {'dir': 'x86_64', 'kernel': 'zgemv_t_4.c'},
'_r': {'dir': 'x86_64', 'kernel': 'zgemv_n_4.c'},
'_c': {'dir': 'x86_64', 'kernel': 'zgemv_t_4.c'},
'_o': {'dir': 'x86_64', 'kernel': 'zgemv_n_4.c'},
'_u': {'dir': 'x86_64', 'kernel': 'zgemv_t_4.c'},
'_s': {'dir': 'x86_64', 'kernel': 'zgemv_n_4.c'},
'_d': {'dir': 'x86_64', 'kernel': 'zgemv_t_4.c'},
}
},
# 'x': {
# 'exts': {
# '_n': {'dir': 'arm', 'kernel': 'zgemv_n.c'},
# '_t': {'dir': 'arm', 'kernel': 'zgemv_n.c'},
# '_r': {'dir': 'arm', 'kernel': 'zgemv_n.c'},
# '_c': {'dir': 'arm', 'kernel': 'zgemv_n.c'},
# '_o': {'dir': 'arm', 'kernel': 'zgemv_n.c'},
# '_u': {'dir': 'arm', 'kernel': 'zgemv_n.c'},
# '_s': {'dir': 'arm', 'kernel': 'zgemv_n.c'},
# '_d': {'dir': 'arm', 'kernel': 'zgemv_n.c'},
# }
# },
},
},
{ 'base': '?symv',
'modes': {
's': {
'exts': {
'_U': {'dir': 'generic', 'kernel': 'symv_k.c'},
'_L': {'dir': 'generic', 'kernel': 'symv_k.c'},
'_U': {'dir': 'x86_64', 'kernel': 'ssymv_U.c'},
'_L': {'dir': 'x86_64', 'kernel': 'ssymv_L.c'},
}
},
'd': {
@ -277,34 +280,34 @@ base_kops = [
},
'z': {
'exts': {
'_U': {'dir': 'generic', 'kernel': 'zsymv_k.c'},
'_L': {'dir': 'generic', 'kernel': 'zsymv_k.c'},
}
},
'q': {
'exts': {
'_U': {'dir': 'generic', 'kernel': 'symv_k.c'},
'_L': {'dir': 'generic', 'kernel': 'symv_k.c'},
}
},
'x': {
'exts': {
'_U': {'dir': 'generic', 'kernel': 'zsymv_k.c'},
'_L': {'dir': 'generic', 'kernel': 'zsymv_k.c'},
'_U': {'dir': 'x86_64', 'kernel': 'zsymv_U_sse2.S'},
'_L': {'dir': 'x86_64', 'kernel': 'zsymv_L_sse2.S'},
}
},
# 'q': {
# 'exts': {
# '_U': {'dir': 'generic', 'kernel': 'symv_k.c'},
# '_L': {'dir': 'generic', 'kernel': 'symv_k.c'},
# }
# },
# 'x': {
# 'exts': {
# '_U': {'dir': 'generic', 'kernel': 'zsymv_k.c'},
# '_L': {'dir': 'generic', 'kernel': 'zsymv_k.c'},
# }
# },
},
},
{ 'base': '?lsame',
'modes': {
'': {'exts': {'': {'dir': 'generic', 'kernel': 'lsame.c'}}},
'': {'exts': {'': {'dir': 'x86_64', 'kernel': 'lsame.S'}}},
},
},
{ 'base': '?cabs',
'modes': {
's': {'exts': {'': {'dir': 'generic', 'kernel': 'cabs.c'}}},
'd': {'exts': {'': {'dir': 'generic', 'kernel': 'cabs.c'}}},
'q': {'exts': {'': {'dir': 'generic', 'kernel': 'cabs.c'}}},
's': {'exts': {'1': {'dir': 'x86_64', 'kernel': 'cabs.S'}}},
'd': {'exts': {'1': {'dir': 'x86_64', 'kernel': 'cabs.S'}}},
# 'q': {'exts': {'': {'dir': 'generic', 'kernel': 'cabs.c'}}},
},
},
{ 'base': '?gemm3m',
@ -334,7 +337,7 @@ base_kops = [
'addl': ['-DICOPY', '-UUSE_ALPHA', '-DIMAGE_ONLY']},
'_oncopyi': {'dir': 'generic', 'kernel': 'zgemm3m_ncopy_4.c',
'addl': ['-DUSE_ALPHA', '-DIMAGE_ONLY']},
'_otcopyi': {'dir': 'generic', 'kernel': 'zgemm3m_ncopy_4.c',
'_otcopyi': {'dir': 'generic', 'kernel': 'zgemm3m_tcopy_4.c',
'addl': ['-DUSE_ALPHA', '-DREAL_ONLY']},
}},
'z': {'exts': {
@ -362,7 +365,7 @@ base_kops = [
'addl': ['-DICOPY', '-UUSE_ALPHA', '-DIMAGE_ONLY']},
'_oncopyi': {'dir': 'generic', 'kernel': 'zgemm3m_ncopy_4.c',
'addl': ['-DUSE_ALPHA', '-DIMAGE_ONLY']},
'_otcopyi': {'dir': 'generic', 'kernel': 'zgemm3m_ncopy_4.c',
'_otcopyi': {'dir': 'generic', 'kernel': 'zgemm3m_tcopy_4.c',
'addl': ['-DUSE_ALPHA', '-DREAL_ONLY']},
}},
},
@ -371,21 +374,21 @@ base_kops = [
'modes': {
's': {'exts': {'_k': {'dir': 'generic', 'kernel': 'ger.c'}}},
'd': {'exts': {'_k': {'dir': 'generic', 'kernel': 'ger.c'}}},
'q': {'exts': {'_k': {'dir': 'generic', 'kernel': 'ger.c'}}},
# 'q': {'exts': {'_k': {'dir': 'generic', 'kernel': 'ger.c'}}},
},
},
{ 'base': '?geru',
'modes': {
'c': {'exts': {'_k': {'dir': 'generic', 'kernel': 'zger.c'}}},
'z': {'exts': {'_k': {'dir': 'generic', 'kernel': 'zger.c'}}},
'x': {'exts': {'_k': {'dir': 'generic', 'kernel': 'zger.c'}}},
# 'x': {'exts': {'_k': {'dir': 'generic', 'kernel': 'zger.c'}}},
},
},
{ 'base': '?gerc',
'modes': {
'c': {'exts': {'_k': {'dir': 'generic', 'kernel': 'zger.c'}}},
'z': {'exts': {'_k': {'dir': 'generic', 'kernel': 'zger.c'}}},
'x': {'exts': {'_k': {'dir': 'generic', 'kernel': 'zger.c'}}},
# 'x': {'exts': {'_k': {'dir': 'generic', 'kernel': 'zger.c'}}},
},
},
{ 'base': '?hemv',
@ -400,52 +403,52 @@ base_kops = [
},
'z': {
'exts': {
'_U': {'dir': 'generic', 'kernel': 'zhemv_k.c'},
'_L': {'dir': 'generic', 'kernel': 'zhemv_k.c'},
'_V': {'dir': 'generic', 'kernel': 'zhemv_k.c'},
'_M': {'dir': 'generic', 'kernel': 'zhemv_k.c'},
}
},
'x': {
'exts': {
'_U': {'dir': 'generic', 'kernel': 'zhemv_k.c'},
'_L': {'dir': 'generic', 'kernel': 'zhemv_k.c'},
'_V': {'dir': 'generic', 'kernel': 'zhemv_k.c'},
'_U': {'dir': 'x86_64', 'kernel': 'zsymv_U_sse2.S'},
'_L': {'dir': 'x86_64', 'kernel': 'zsymv_L_sse2.S'},
'_V': {'dir': 'x86_64', 'kernel': 'zsymv_L_sse2.S'},
'_M': {'dir': 'generic', 'kernel': 'zhemv_k.c'},
}
},
# 'x': {
# 'exts': {
# '_U': {'dir': 'generic', 'kernel': 'zhemv_k.c'},
# '_L': {'dir': 'generic', 'kernel': 'zhemv_k.c'},
# '_V': {'dir': 'generic', 'kernel': 'zhemv_k.c'},
# '_M': {'dir': 'generic', 'kernel': 'zhemv_k.c'},
# }
# },
},
},
{ 'base': '?bgemv',
'modes': {
's': {
'exts': {
'_n': {'dir': 'x86_64', 'kernel': 'sbgemv_n.c'},
'_t': {'dir': 'x86_64', 'kernel': 'sbgemv_n.c'},
}
}
},
},
# { 'base': '?bgemv',
# 'modes': {
# 's': {
# 'exts': {
# '_n': {'dir': 'x86_64', 'kernel': 'sbgemv_n.c'},
# '_t': {'dir': 'x86_64', 'kernel': 'sbgemv_n.c'},
# }
# }
# },
# },
# Level 3 symbols
{ 'base': '?gemm_kernel',
'modes': {
's': {'exts': {'': {'dir': 'x86_64', 'kernel': 'sgemm_kernel_8x4_haswell.c'}}},
's': {'exts': {'': {'dir': 'x86_64', 'kernel': 'sgemm_kernel_8x4_haswell_2.c'}}},
'd': {'exts': {'': {'dir': 'x86_64', 'kernel': 'dgemm_kernel_4x8_haswell.S'}}},
'c': {
'exts': {
'_n': {'dir': 'generic', 'kernel': 'zgemmkernel_2x2.c', 'addl': ['-DNN']},
'_l': {'dir': 'generic', 'kernel': 'zgemmkernel_2x2.c', 'addl': ['-DCN']},
'_n': {'dir': 'x86_64', 'kernel': 'cgemm_kernel_8x2_haswell.c', 'addl': ['-DNN']},
'_l': {'dir': 'x86_64', 'kernel': 'cgemm_kernel_8x2_haswell.c', 'addl': ['-DCN']},
# TODO(rg): What about _r conditionals? Makefile.L3:2969
'_r': {'dir': 'generic', 'kernel': 'zgemmkernel_2x2.c', 'addl': ['-DNC']},
'_b': {'dir': 'generic', 'kernel': 'zgemmkernel_2x2.c', 'addl': ['-DCC']},
'_r': {'dir': 'x86_64', 'kernel': 'cgemm_kernel_8x2_haswell.c', 'addl': ['-DNC']},
'_b': {'dir': 'x86_64', 'kernel': 'cgemm_kernel_8x2_haswell.c', 'addl': ['-DCC']},
}
},
'z': {
'exts': {
'_n': {'dir': 'generic', 'kernel': 'zgemmkernel_2x2.c', 'addl': ['-DNN']},
'_l': {'dir': 'generic', 'kernel': 'zgemmkernel_2x2.c', 'addl': ['-DCN']},
'_r': {'dir': 'generic', 'kernel': 'zgemmkernel_2x2.c', 'addl': ['-DNC']},
'_b': {'dir': 'generic', 'kernel': 'zgemmkernel_2x2.c', 'addl': ['-DCC']},
'_n': {'dir': 'x86_64', 'kernel': 'zgemm_kernel_4x2_haswell.c', 'addl': ['-DNN']},
'_l': {'dir': 'x86_64', 'kernel': 'zgemm_kernel_4x2_haswell.c', 'addl': ['-DCN']},
'_r': {'dir': 'x86_64', 'kernel': 'zgemm_kernel_4x2_haswell.c', 'addl': ['-DNC']},
'_b': {'dir': 'x86_64', 'kernel': 'zgemm_kernel_4x2_haswell.c', 'addl': ['-DCC']},
}
}
# 'q': {'exts': {'': {'dir': 'generic', 'kernel': 'gemm_beta.c'}}},
@ -464,49 +467,49 @@ base_kops = [
},
'd': {
'exts': {
'_LN': {'dir': 'generic', 'kernel': 'trmmkernel_2x2.c'},
'_LT': {'dir': 'generic', 'kernel': 'trmmkernel_2x2.c', 'addl': ['-DLEFT', '-DTRANSA']},
'_RN': {'dir': 'generic', 'kernel': 'trmmkernel_2x2.c'},
'_RT': {'dir': 'generic', 'kernel': 'trmmkernel_2x2.c'},
'_LN': {'dir': 'x86_64', 'kernel': 'dtrmm_kernel_4x8_haswell.c'},
'_LT': {'dir': 'x86_64', 'kernel': 'dtrmm_kernel_4x8_haswell.c', 'addl': ['-DLEFT', '-DTRANSA']},
'_RN': {'dir': 'x86_64', 'kernel': 'dtrmm_kernel_4x8_haswell.c'},
'_RT': {'dir': 'x86_64', 'kernel': 'dtrmm_kernel_4x8_haswell.c'},
}
},
'c': {
'exts': {
'_LN': {'dir': 'generic', 'kernel': 'ztrmmkernel_2x2.c',
'_LN': {'dir': 'x86_64', 'kernel': 'cgemm_kernel_8x2_haswell.S',
'addl': ['-UCONJ', '-DNN']},
'_LT': {'dir': 'generic', 'kernel': 'ztrmmkernel_2x2.c',
'_LT': {'dir': 'x86_64', 'kernel': 'cgemm_kernel_8x2_haswell.S',
'addl': ['-DLEFT', '-DTRANSA', '-UCONJ', '-DNN']},
'_LR': {'dir': 'generic', 'kernel': 'ztrmmkernel_2x2.c',
'_LR': {'dir': 'x86_64', 'kernel': 'cgemm_kernel_8x2_haswell.S',
'addl': ['-DCONJ', '-DCN']},
'_LC': {'dir': 'generic', 'kernel': 'ztrmmkernel_2x2.c',
'_LC': {'dir': 'x86_64', 'kernel': 'cgemm_kernel_8x2_haswell.S',
'addl': ['-DCONJ', '-DCN']},
'_RN': {'dir': 'generic', 'kernel': 'ztrmmkernel_2x2.c',
'_RN': {'dir': 'x86_64', 'kernel': 'cgemm_kernel_8x2_haswell.S',
'addl': ['-UCONJ', '-DNN']},
'_RT': {'dir': 'generic', 'kernel': 'ztrmmkernel_2x2.c',
'_RT': {'dir': 'x86_64', 'kernel': 'cgemm_kernel_8x2_haswell.S',
'addl': ['-ULEFT', '-DTRANSA', '-UCONJ', '-DNN']},
'_RR': {'dir': 'generic', 'kernel': 'ztrmmkernel_2x2.c',
'_RR': {'dir': 'x86_64', 'kernel': 'cgemm_kernel_8x2_haswell.S',
'addl': ['-DCONJ', '-DNC']},
'_RC': {'dir': 'generic', 'kernel': 'ztrmmkernel_2x2.c',
'_RC': {'dir': 'x86_64', 'kernel': 'cgemm_kernel_8x2_haswell.S',
'addl': ['-DCONJ', '-DCN']},
}
},
'z': {
'exts': {
'_LN': {'dir': 'generic', 'kernel': 'ztrmmkernel_2x2.c',
'_LN': {'dir': 'x86_64', 'kernel': 'zgemm_kernel_4x2_haswell.S',
'addl': ['-UCONJ', '-DNN']},
'_LT': {'dir': 'generic', 'kernel': 'ztrmmkernel_2x2.c',
'_LT': {'dir': 'x86_64', 'kernel': 'zgemm_kernel_4x2_haswell.S',
'addl': ['-DLEFT', '-DTRANSA', '-UCONJ', '-DNN']},
'_LR': {'dir': 'generic', 'kernel': 'ztrmmkernel_2x2.c',
'_LR': {'dir': 'x86_64', 'kernel': 'zgemm_kernel_4x2_haswell.S',
'addl': ['-DCONJ', '-DCN']},
'_LC': {'dir': 'generic', 'kernel': 'ztrmmkernel_2x2.c',
'_LC': {'dir': 'x86_64', 'kernel': 'zgemm_kernel_4x2_haswell.S',
'addl': ['-DCONJ', '-DCN']},
'_RN': {'dir': 'generic', 'kernel': 'ztrmmkernel_2x2.c',
'_RN': {'dir': 'x86_64', 'kernel': 'zgemm_kernel_4x2_haswell.S',
'addl': ['-UCONJ', '-DNN']},
'_RT': {'dir': 'generic', 'kernel': 'ztrmmkernel_2x2.c',
'_RT': {'dir': 'x86_64', 'kernel': 'zgemm_kernel_4x2_haswell.S',
'addl': ['-ULEFT', '-DTRANSA', '-UCONJ', '-DNN']},
'_RR': {'dir': 'generic', 'kernel': 'ztrmmkernel_2x2.c',
'_RR': {'dir': 'x86_64', 'kernel': 'zgemm_kernel_4x2_haswell.S',
'addl': ['-DCONJ', '-DNC']},
'_RC': {'dir': 'generic', 'kernel': 'ztrmmkernel_2x2.c',
'_RC': {'dir': 'x86_64', 'kernel': 'zgemm_kernel_4x2_haswell.S',
'addl': ['-DCONJ', '-DCN']},
},
},
@ -516,13 +519,13 @@ base_kops = [
'modes': {
's': {
'exts': {
'_LN': {'dir': 'generic', 'kernel': 'trsm_kernel_LN.c',
'_LN': {'dir': 'x86_64', 'kernel': 'strsm_kernel_8x4_haswell_LN.c',
'addl': ['-DLN', '-DUPPER', '-UCONJ']},
'_LT': {'dir': 'generic', 'kernel': 'trsm_kernel_LT.c',
'_LT': {'dir': 'x86_64', 'kernel': 'strsm_kernel_8x4_haswell_LT.c',
'addl': ['-DLT', '-UUPPER', '-UCONJ']},
'_RN': {'dir': 'generic', 'kernel': 'trsm_kernel_RN.c',
'_RN': {'dir': 'x86_64', 'kernel': 'strsm_kernel_8x4_haswell_RN.c',
'addl': ['-DRN', '-DUPPER', '-UCONJ']},
'_RT': {'dir': 'generic', 'kernel': 'trsm_kernel_RT.c',
'_RT': {'dir': 'x86_64', 'kernel': 'strsm_kernel_8x4_haswell_RT.c',
'addl': ['-DRT', '-UUPPER', '-UCONJ']},
},
},
@ -532,7 +535,7 @@ base_kops = [
'addl': ['-DLN', '-DUPPER', '-UCONJ']},
'_LT': {'dir': 'generic', 'kernel': 'trsm_kernel_LT.c',
'addl': ['-DLT', '-UUPPER', '-UCONJ']},
'_RN': {'dir': 'generic', 'kernel': 'trsm_kernel_RN.c',
'_RN': {'dir': 'x86_64', 'kernel': 'dtrsm_kernel_RN_haswell.c',
'addl': ['-DRN', '-DUPPER', '-UCONJ']},
'_RT': {'dir': 'generic', 'kernel': 'trsm_kernel_RT.c',
'addl': ['-DRT', '-UUPPER', '-UCONJ']},
@ -583,29 +586,29 @@ base_kops = [
{ 'base': '?gemm',
'modes': {
's': {'exts': {
'_beta': {'dir': 'generic', 'kernel': 'gemm_beta.c'},
'_beta': {'dir': 'x86_64', 'kernel': 'sgemm_beta_skylakex.c'},
'_small_matrix_permit': {'dir': 'generic',
'kernel': 'gemm_small_matrix_permit.c'},
# TODO(rg): the _NUM prefixes are arch dependent
'_incopy': {'dir': 'generic', 'kernel': 'gemm_ncopy_8.c'},
'_itcopy': {'dir': 'generic', 'kernel': 'gemm_tcopy_8.c'},
'_oncopy': {'dir': 'generic', 'kernel': 'gemm_ncopy_4.c'},
'_oncopy': {'dir': 'x86_64', 'kernel': 'sgemm_ncopy_4_skylakex.c'},
'_otcopy': {'dir': 'generic', 'kernel': 'gemm_tcopy_4.c'},
# TODO(rg): direct and direct_performant are built only conditionally
# '_direct': {'dir': 'x86_64', 'kernel': 'sgemm_direct_skylakex.c'},
# '_direct_performant': {'dir': 'x86_64', 'kernel': 'sgemm_direct_performant.c'},
'_direct': {'dir': 'x86_64', 'kernel': 'sgemm_direct_skylakex.c'},
'_direct_performant': {'dir': 'x86_64', 'kernel': 'sgemm_direct_performant.c'},
}},
'd': {'exts': {
'_beta': {'dir': 'generic', 'kernel': 'gemm_beta.c'},
'_beta': {'dir': 'x86_64', 'kernel': 'dgemm_beta_skylakex.c'},
'_small_matrix_permit': {'dir': 'generic',
'kernel': 'gemm_small_matrix_permit.c'},
'_incopy': {'dir': 'generic', 'kernel': 'gemm_ncopy_8.c'},
'_itcopy': {'dir': 'generic', 'kernel': 'gemm_tcopy_8.c'},
'_oncopy': {'dir': 'generic', 'kernel': 'gemm_ncopy_4.c'},
'_otcopy': {'dir': 'generic', 'kernel': 'gemm_tcopy_4.c'},
'_incopy': {'dir': 'generic', 'kernel': 'gemm_ncopy_4.c'},
'_itcopy': {'dir': 'generic', 'kernel': 'gemm_tcopy_4.c'},
'_oncopy': {'dir': 'x86_64', 'kernel': 'dgemm_ncopy_8_skylakex.c'},
'_otcopy': {'dir': 'generic', 'kernel': 'gemm_tcopy_8.c'},
}},
'c': {'exts': {
'_beta': {'dir': 'generic', 'kernel': 'zgemm_beta.c'},
'_beta': {'dir': 'x86_64', 'kernel': 'zgemm_beta.S'},
'_small_matrix_permit': {'dir': 'generic',
'kernel': 'zgemm_small_matrix_permit.c'},
'_incopy': {'dir': 'generic', 'kernel': 'zgemm_ncopy_8.c'},
@ -614,11 +617,11 @@ base_kops = [
'_otcopy': {'dir': 'generic', 'kernel': 'zgemm_tcopy_2.c'},
}},
'z': {'exts': {
'_beta': {'dir': 'generic', 'kernel': 'zgemm_beta.c'},
'_beta': {'dir': 'x86_64', 'kernel': 'zgemm_beta.S'},
'_small_matrix_permit': {'dir': 'generic',
'kernel': 'zgemm_small_matrix_permit.c'},
'_incopy': {'dir': 'generic', 'kernel': 'zgemm_ncopy_8.c'},
'_itcopy': {'dir': 'generic', 'kernel': 'zgemm_tcopy_8.c'},
'_incopy': {'dir': 'generic', 'kernel': 'zgemm_ncopy_4.c'},
'_itcopy': {'dir': 'generic', 'kernel': 'zgemm_tcopy_4.c'},
'_oncopy': {'dir': 'generic', 'kernel': 'zgemm_ncopy_2.c'},
'_otcopy': {'dir': 'generic', 'kernel': 'zgemm_tcopy_2.c'},
}},
@ -857,6 +860,20 @@ base_kops = [
}},
},
},
{ 'base': '?omatcopy_k',
'modes': {
's': {'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': 'x86_64', 'kernel': 'omatcopy_rt.c',
'addl': ['-DROWM']},
}},
},
},
{ 'base': '?gemm_small_kernel',
'modes': {
's': {
@ -873,6 +890,22 @@ base_kops = [
'_tt': {'dir': 'generic',
'kernel': 'gemm_small_matrix_kernel_tt.c',
},
# '_b0_nn': {'dir': 'generic',
# 'kernel': 'gemm_small_matrix_kernel_nn.c',
# 'addl': ['-DB0'],
# },
# '_b0_nt': {'dir': 'generic',
# 'kernel': 'gemm_small_matrix_kernel_nt.c',
# 'addl': ['-DB0'],
# },
# '_b0_tn': {'dir': 'generic',
# 'kernel': 'gemm_small_matrix_kernel_tn.c',
# 'addl': ['-DB0'],
# },
# '_b0_tt': {'dir': 'generic',
# 'kernel': 'gemm_small_matrix_kernel_tt.c',
# 'addl': ['-DB0'],
# },
}
},
'd': {
@ -1239,27 +1272,14 @@ _kern_libs = []
_kern_deps = []
_is_asm = false
foreach conf: kernel_confs
if '.s' in conf['src'] or '.S' in conf['src']
message(conf)
_is_asm = true
endif
# TODO(rg): This should be for all _is_asm
if 'dgemm_kernel' in conf['name']
message(conf)
# See https://github.com/mesonbuild/meson/discussions/13374
_kern_deps += declare_dependency(
sources: conf['src'],
include_directories: _inc,
compile_args: conf['c_args'],
)
else
_kern_libs += static_library(
conf['name'],
conf['src'],
include_directories: _inc,
c_args: conf['c_args'],
)
endif
_kern_libs += static_library(
conf['name'],
conf['src'],
include_directories: _inc,
c_args: conf['c_args'],
# See gh discussion 13374 for why, basically .S are coded as fortran..
fortran_args: conf['c_args'],
)
endforeach
_kern = static_library('_kern',

View File

@ -141,12 +141,12 @@ if cpu_fam == 'x86_64'
_cargs += ['-m64']
endif
if fc_id == 'gcc'
add_project_arguments('-DF_INTERFACE_GFORT', language: 'c')
else
upper_fcid = fc_id.to_upper()
add_project_arguments(f'-DF_INTERFACE_@upper_fcid@', language: 'c')
endif
# if fc_id == 'gcc'
# add_project_arguments('-DF_INTERFACE_GFORT', language: 'c')
# else
# upper_fcid = fc_id.to_upper()
# add_project_arguments(f'-DF_INTERFACE_@upper_fcid@', language: 'c')
# endif
simd_extensions = [
{'flag': '-mmmx', 'define': 'HAVE_MMX'},
@ -430,6 +430,7 @@ symb_defs = {
'?hpr_thread': {'def': ['HEMV']},
'?trmm_kernel': {'def': ['TRMMKERNEL']},
'?trsm_kernel': {'def': ['TRSMKERNEL']},
'?dsdot': {'def': ['DSDOT']},
'?bgemm': {'def': ['HALF']},
'?gemm_small_kernel_b0': {'def': ['B0']},
'cblas_?dotu_sub': {'def': ['CBLAS', 'FORCE_USE_STACK'], 'undef': ['CONJ']},