diff --git a/driver/level2/meson.build b/driver/level2/meson.build new file mode 100644 index 000000000..f7bc3508e --- /dev/null +++ b/driver/level2/meson.build @@ -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']}, + }, + }, +] diff --git a/kernel/generic/meson.build b/kernel/generic/meson.build new file mode 100644 index 000000000..8b8c28148 --- /dev/null +++ b/kernel/generic/meson.build @@ -0,0 +1 @@ +# Generic diff --git a/kernel/meson.build b/kernel/meson.build index 19725474b..9f5017d70 100644 --- a/kernel/meson.build +++ b/kernel/meson.build @@ -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 = [] diff --git a/kernel/x86_64/meson.build b/kernel/x86_64/meson.build new file mode 100644 index 000000000..e69de29bb diff --git a/meson.build b/meson.build index 881e0ad4d..6df57a9ad 100644 --- a/meson.build +++ b/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',