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
|
# Level 3 symbols
|
||||||
# TODO(rg): Handle the if defines set in arch
|
# TODO(rg): Handle the if defines set in arch
|
||||||
{ 'base': '?gemm_beta',
|
# { 'base': '?gemm_beta', # This is a bfloat16 symbol, skipping for now
|
||||||
'modes': {
|
# 'modes': {
|
||||||
's': {'exts': {'': {'dir': 'x86_64', 'kernel': 'gemm_beta.S'}}},
|
# 's': {'exts': {'': {'dir': 'x86_64', 'kernel': 'gemm_beta.S'}}},
|
||||||
'd': {'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'}}},
|
# 'c': {'exts': {'': {'dir': 'x86_64', 'kernel': 'zgemm_beta.S'}}},
|
||||||
'z': {'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'}}},
|
# # 'q': {'exts': {'': {'dir': 'generic', 'kernel': 'gemm_beta.c'}}},
|
||||||
# 'x': {'exts': {'': {'dir': 'generic', 'kernel': 'zgemm_beta.c'}}},
|
# # 'x': {'exts': {'': {'dir': 'generic', 'kernel': 'zgemm_beta.c'}}},
|
||||||
},
|
# },
|
||||||
},
|
# },
|
||||||
]
|
]
|
||||||
|
|
||||||
kernel_confs = []
|
kernel_confs = []
|
||||||
|
|
27
meson.build
27
meson.build
|
@ -253,20 +253,28 @@ precision_mappings = {
|
||||||
}
|
}
|
||||||
|
|
||||||
ext_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
|
'': {}, # special case
|
||||||
'_k': {},
|
'_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']},
|
'_L': {'def': ['LOWER']},
|
||||||
|
'_LN': {'def': ['LEFT'], 'undef': ['TRANSA']},
|
||||||
|
# Handle HEMV and HEMVREV better
|
||||||
'_V': {'def': ['HEMV', 'HEMVREV'], 'undef': ['LOWER']},
|
'_V': {'def': ['HEMV', 'HEMVREV'], 'undef': ['LOWER']},
|
||||||
'_M': {'def': ['HEMV', 'HEMVREV', 'LOWER']},
|
'_M': {'def': ['HEMV', 'HEMVREV', 'LOWER']},
|
||||||
'_n': {'undef': ['TRANS', 'CONJ', 'XCONJ']},
|
'_n': {'undef': ['TRANS', 'TRANSA', 'CONJ', 'XCONJ']},
|
||||||
'_t': {'def': ['TRANS'], 'undef': ['CONJ', 'XCONJ']},
|
'_t': {'def': ['TRANS', 'TRANSA'], 'undef': ['CONJ', 'XCONJ']},
|
||||||
'_r': {'def': ['CONJ'], 'undef': ['TRANS', 'XCONJ']},
|
'_r': {'def': ['CONJ'], 'undef': ['TRANS', 'TRANSA', 'XCONJ']},
|
||||||
'_c': {'def': ['TRANS', 'CONJ'], 'undef': ['XCONJ']},
|
'_c': {'def': ['TRANS', 'TRANSA', 'CONJ'], 'undef': ['XCONJ']},
|
||||||
'_o': {'def': ['XCONJ'], 'undef': ['TRANS', 'CONJ']},
|
'_o': {'def': ['XCONJ'], 'undef': ['TRANS', 'TRANSA', 'CONJ']},
|
||||||
'_u': {'def': ['TRANS', 'XCONJ'], 'undef': ['CONJ']},
|
'_u': {'def': ['TRANS', 'TRANSA', 'XCONJ'], 'undef': ['CONJ']},
|
||||||
'_s': {'def': ['CONJ', 'XCONJ'], 'undef': ['TRANS']},
|
'_s': {'def': ['CONJ', 'XCONJ'], 'undef': ['TRANS', 'TRANSA']},
|
||||||
'_d': {'def': ['TRANS', 'CONJ', 'XCONJ']},
|
'_d': {'def': ['TRANS', 'TRANSA', 'CONJ', 'XCONJ']},
|
||||||
}
|
}
|
||||||
|
|
||||||
symb_defs = {
|
symb_defs = {
|
||||||
|
@ -297,6 +305,7 @@ symb_defs = {
|
||||||
_inc = [include_directories('.')]
|
_inc = [include_directories('.')]
|
||||||
# subdir('lapack-netlib')
|
# subdir('lapack-netlib')
|
||||||
subdir('interface')
|
subdir('interface')
|
||||||
|
subdir('driver/level2')
|
||||||
subdir('kernel')
|
subdir('kernel')
|
||||||
|
|
||||||
_openblas = static_library('openblas',
|
_openblas = static_library('openblas',
|
||||||
|
|
Loading…
Reference in New Issue