MAINT: Start working on kernels and driver L2
This commit is contained in:
parent
321ec276e0
commit
2fe1f31161
|
@ -0,0 +1,51 @@
|
|||
# Naming conventions can be read from here:
|
||||
# https://click.rgoswami.me/intel_blas_names
|
||||
# Ported in order from the Makefile
|
||||
driver_kops = [
|
||||
{ 'base': '?gbmv',
|
||||
'sources': {
|
||||
'gbmv_k.c': {'mode': ['s', 'd', 'q'], 'exts': ['_n', '_t']},
|
||||
'zgbmv_k.c': {'mode': ['c', 'z', 'x'],
|
||||
'exts': ['_n', '_t', '_r', '_c',
|
||||
'_o', '_u', '_s', '_d']},
|
||||
}
|
||||
},
|
||||
{ 'base': '?gbmv_thread',
|
||||
'sources': {
|
||||
'gbmv_thread.c': {'mode': ['s', 'd', 'q',
|
||||
'c', 'z', 'x'],
|
||||
'exts': ['_n', '_t', '_r', '_c',
|
||||
'_o', '_u', '_s', '_d']},
|
||||
}
|
||||
},
|
||||
{ 'base': '?gemv_thread',
|
||||
'sources': {
|
||||
'gemv_thread.c': {'mode': ['s', 'd', 'q',
|
||||
'c', 'z', 'x'],
|
||||
'exts': ['_n', '_t', '_r', '_c',
|
||||
'_o', '_u', '_s', '_d']},
|
||||
}
|
||||
},
|
||||
{ 'base': '?ger_thread',
|
||||
'sources': {
|
||||
'ger_thread.c': {'mode': ['s', 'd', 'q'], 'exts': ['']},
|
||||
'ger_thread.c': {'mode': ['c', 'z', 'x'],
|
||||
'exts': ['_U', '_C',
|
||||
'_V', '_D']},
|
||||
}
|
||||
},
|
||||
{ 'base': '?symv_thread',
|
||||
'sources': {
|
||||
'symv_thread.c': {'mode': ['s', 'd', 'q',
|
||||
'c', 'z', 'x'],
|
||||
'exts': ['_U', '_L']},
|
||||
}
|
||||
},
|
||||
{ 'base': '?hemv_thread',
|
||||
'sources': {
|
||||
'symv_thread.c': {'mode': ['c', 'z'],
|
||||
'exts': ['_U', '_L',
|
||||
'_V', '_M']},
|
||||
},
|
||||
},
|
||||
]
|
|
@ -0,0 +1 @@
|
|||
# Generic
|
|
@ -357,16 +357,16 @@ base_kops = [
|
|||
},
|
||||
# Level 3 symbols
|
||||
# TODO(rg): Handle the if defines set in arch
|
||||
{ 'base': '?gemm_beta',
|
||||
'modes': {
|
||||
's': {'exts': {'': {'dir': 'x86_64', 'kernel': 'gemm_beta.S'}}},
|
||||
'd': {'exts': {'': {'dir': 'x86_64', 'kernel': 'gemm_beta.S'}}},
|
||||
'c': {'exts': {'': {'dir': 'x86_64', 'kernel': 'zgemm_beta.S'}}},
|
||||
'z': {'exts': {'': {'dir': 'x86_64', 'kernel': 'zgemm_beta.S'}}},
|
||||
# 'q': {'exts': {'': {'dir': 'generic', 'kernel': 'gemm_beta.c'}}},
|
||||
# 'x': {'exts': {'': {'dir': 'generic', 'kernel': 'zgemm_beta.c'}}},
|
||||
},
|
||||
},
|
||||
# { 'base': '?gemm_beta', # This is a bfloat16 symbol, skipping for now
|
||||
# 'modes': {
|
||||
# 's': {'exts': {'': {'dir': 'x86_64', 'kernel': 'gemm_beta.S'}}},
|
||||
# 'd': {'exts': {'': {'dir': 'x86_64', 'kernel': 'gemm_beta.S'}}},
|
||||
# 'c': {'exts': {'': {'dir': 'x86_64', 'kernel': 'zgemm_beta.S'}}},
|
||||
# 'z': {'exts': {'': {'dir': 'x86_64', 'kernel': 'zgemm_beta.S'}}},
|
||||
# # 'q': {'exts': {'': {'dir': 'generic', 'kernel': 'gemm_beta.c'}}},
|
||||
# # 'x': {'exts': {'': {'dir': 'generic', 'kernel': 'zgemm_beta.c'}}},
|
||||
# },
|
||||
# },
|
||||
]
|
||||
|
||||
kernel_confs = []
|
||||
|
|
27
meson.build
27
meson.build
|
@ -253,20 +253,28 @@ precision_mappings = {
|
|||
}
|
||||
|
||||
ext_mappings = {
|
||||
# TRANSA is only in drivers level2, kernel uses TRANS
|
||||
# LOWER is not there for only for ?ger_thread_U in drivers level2
|
||||
# TODO(rg): Does that, i.e. having (un)used symbols (un)defined matter?
|
||||
'': {}, # special case
|
||||
'_k': {},
|
||||
'_U': {'undef': ['LOWER']},
|
||||
'_U': {'undef': ['LOWER', 'CONJ', 'XCONJ']},
|
||||
'_C': {'def': ['CONJ'], 'undef': ['XCONJ']},
|
||||
'_V': {'def': ['XCONJ'], 'undef': ['CONJ']},
|
||||
'_D': {'def': ['CONJ', 'XCONJ']},
|
||||
'_L': {'def': ['LOWER']},
|
||||
'_LN': {'def': ['LEFT'], 'undef': ['TRANSA']},
|
||||
# Handle HEMV and HEMVREV better
|
||||
'_V': {'def': ['HEMV', 'HEMVREV'], 'undef': ['LOWER']},
|
||||
'_M': {'def': ['HEMV', 'HEMVREV', 'LOWER']},
|
||||
'_n': {'undef': ['TRANS', 'CONJ', 'XCONJ']},
|
||||
'_t': {'def': ['TRANS'], 'undef': ['CONJ', 'XCONJ']},
|
||||
'_r': {'def': ['CONJ'], 'undef': ['TRANS', 'XCONJ']},
|
||||
'_c': {'def': ['TRANS', 'CONJ'], 'undef': ['XCONJ']},
|
||||
'_o': {'def': ['XCONJ'], 'undef': ['TRANS', 'CONJ']},
|
||||
'_u': {'def': ['TRANS', 'XCONJ'], 'undef': ['CONJ']},
|
||||
'_s': {'def': ['CONJ', 'XCONJ'], 'undef': ['TRANS']},
|
||||
'_d': {'def': ['TRANS', 'CONJ', 'XCONJ']},
|
||||
'_n': {'undef': ['TRANS', 'TRANSA', 'CONJ', 'XCONJ']},
|
||||
'_t': {'def': ['TRANS', 'TRANSA'], 'undef': ['CONJ', 'XCONJ']},
|
||||
'_r': {'def': ['CONJ'], 'undef': ['TRANS', 'TRANSA', 'XCONJ']},
|
||||
'_c': {'def': ['TRANS', 'TRANSA', 'CONJ'], 'undef': ['XCONJ']},
|
||||
'_o': {'def': ['XCONJ'], 'undef': ['TRANS', 'TRANSA', 'CONJ']},
|
||||
'_u': {'def': ['TRANS', 'TRANSA', 'XCONJ'], 'undef': ['CONJ']},
|
||||
'_s': {'def': ['CONJ', 'XCONJ'], 'undef': ['TRANS', 'TRANSA']},
|
||||
'_d': {'def': ['TRANS', 'TRANSA', 'CONJ', 'XCONJ']},
|
||||
}
|
||||
|
||||
symb_defs = {
|
||||
|
@ -297,6 +305,7 @@ symb_defs = {
|
|||
_inc = [include_directories('.')]
|
||||
# subdir('lapack-netlib')
|
||||
subdir('interface')
|
||||
subdir('driver/level2')
|
||||
subdir('kernel')
|
||||
|
||||
_openblas = static_library('openblas',
|
||||
|
|
Loading…
Reference in New Issue