diff --git a/kernel/meson.build b/kernel/meson.build index 65a9a6b06..2b6c78acd 100644 --- a/kernel/meson.build +++ b/kernel/meson.build @@ -601,7 +601,286 @@ base_kops = [ }}, }, }, - # TODO(rg): iunucopy stuff + { 'base': '?gemm_small_kernel', + 'modes': { + 's': { + 'exts': { + '_nn': {'dir': 'generic', + 'kernel': 'gemm_small_matrix_kernel_nn.c', + }, + '_nt': {'dir': 'generic', + 'kernel': 'gemm_small_matrix_kernel_nt.c', + }, + '_tn': {'dir': 'generic', + 'kernel': 'gemm_small_matrix_kernel_tn.c', + }, + '_tt': {'dir': 'generic', + 'kernel': 'gemm_small_matrix_kernel_tt.c', + }, + } + }, + 'd': { + 'exts': { + '_nn': {'dir': 'generic', + 'kernel': 'gemm_small_matrix_kernel_nn.c', + }, + '_nt': {'dir': 'generic', + 'kernel': 'gemm_small_matrix_kernel_nt.c', + }, + '_tn': {'dir': 'generic', + 'kernel': 'gemm_small_matrix_kernel_tn.c', + }, + '_tt': {'dir': 'generic', + 'kernel': 'gemm_small_matrix_kernel_tt.c', + }, + } + }, + 'c': { + 'exts': { + '_nn': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_nn.c', + }, + '_nr': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_nn.c', + }, + '_rn': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_nn.c', + }, + '_rr': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_nn.c', + }, + '_nt': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_nt.c', + }, + '_nc': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_nt.c', + }, + '_rt': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_nt.c', + }, + '_rc': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_nt.c', + }, + '_tn': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_tn.c', + }, + '_tr': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_tn.c', + }, + '_cn': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_tn.c', + }, + '_cr': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_tn.c', + }, + '_tt': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_tt.c', + }, + '_tc': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_tt.c', + }, + '_ct': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_tt.c', + }, + '_cc': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_tt.c', + }, + } + }, + 'z': { + 'exts': { + '_nn': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_nn.c', + }, + '_nr': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_nn.c', + }, + '_rn': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_nn.c', + }, + '_rr': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_nn.c', + }, + '_nt': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_nt.c', + }, + '_nc': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_nt.c', + }, + '_rt': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_nt.c', + }, + '_rc': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_nt.c', + }, + '_tn': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_tn.c', + }, + '_tr': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_tn.c', + }, + '_cn': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_tn.c', + }, + '_cr': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_tn.c', + }, + '_tt': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_tt.c', + }, + '_tc': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_tt.c', + }, + '_ct': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_tt.c', + }, + '_cc': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_tt.c', + }, + } + }, + }, + }, + { 'base': '?gemm_small_kernel_b0', + 'modes': { + 's': { + 'exts': { + '_nn': {'dir': 'generic', + 'kernel': 'gemm_small_matrix_kernel_nn.c', + }, + '_nt': {'dir': 'generic', + 'kernel': 'gemm_small_matrix_kernel_nt.c', + }, + '_tn': {'dir': 'generic', + 'kernel': 'gemm_small_matrix_kernel_tn.c', + }, + '_tt': {'dir': 'generic', + 'kernel': 'gemm_small_matrix_kernel_tt.c', + }, + } + }, + 'd': { + 'exts': { + '_nn': {'dir': 'generic', + 'kernel': 'gemm_small_matrix_kernel_nn.c', + }, + '_nt': {'dir': 'generic', + 'kernel': 'gemm_small_matrix_kernel_nt.c', + }, + '_tn': {'dir': 'generic', + 'kernel': 'gemm_small_matrix_kernel_tn.c', + }, + '_tt': {'dir': 'generic', + 'kernel': 'gemm_small_matrix_kernel_tt.c', + }, + } + }, + 'c': { + 'exts': { + '_nn': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_nn.c', + }, + '_nr': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_nn.c', + }, + '_rn': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_nn.c', + }, + '_rr': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_nn.c', + }, + '_nt': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_nt.c', + }, + '_nc': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_nt.c', + }, + '_rt': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_nt.c', + }, + '_rc': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_nt.c', + }, + '_tn': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_tn.c', + }, + '_tr': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_tn.c', + }, + '_cn': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_tn.c', + }, + '_cr': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_tn.c', + }, + '_tt': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_tt.c', + }, + '_tc': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_tt.c', + }, + '_ct': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_tt.c', + }, + '_cc': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_tt.c', + }, + } + }, + 'z': { + 'exts': { + '_nn': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_nn.c', + }, + '_nr': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_nn.c', + }, + '_rn': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_nn.c', + }, + '_rr': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_nn.c', + }, + '_nt': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_nt.c', + }, + '_nc': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_nt.c', + }, + '_rt': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_nt.c', + }, + '_rc': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_nt.c', + }, + '_tn': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_tn.c', + }, + '_tr': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_tn.c', + }, + '_cn': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_tn.c', + }, + '_cr': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_tn.c', + }, + '_tt': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_tt.c', + }, + '_tc': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_tt.c', + }, + '_ct': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_tt.c', + }, + '_cc': {'dir': 'generic', + 'kernel': 'zgemm_small_matrix_kernel_tt.c', + }, + } + }, + }, + }, ] kernel_confs = [] diff --git a/meson.build b/meson.build index 202edd164..1599f34a1 100644 --- a/meson.build +++ b/meson.build @@ -294,10 +294,10 @@ ext_mappings = { '_rn': {'def': ['RN']}, '_rt': {'def': ['RT']}, '_rr': {'def': ['RR']}, - '_rc': {'def': ['RC']}, + '_rc': {'def': ['RC=RC']}, '_cn': {'def': ['CN']}, '_ct': {'def': ['CT']}, - '_cr': {'def': ['CR']}, + '_cr': {'def': ['CR=CR']}, '_cc': {'def': ['CC']}, # Level 3 symbols '_LU': {'def': ['NN'], 'undef': ['LOWER', 'RSIDE']}, @@ -431,6 +431,7 @@ symb_defs = { '?trmm_kernel': {'def': ['TRMMKERNEL']}, '?trsm_kernel': {'def': ['TRSMKERNEL']}, '?bgemm': {'def': ['HALF']}, + '?gemm_small_kernel_b0': {'def': ['B0']}, 'cblas_?dotu_sub': {'def': ['CBLAS', 'FORCE_USE_STACK'], 'undef': ['CONJ']}, 'cblas_?dotc_sub': {'def': ['CBLAS', 'FORCE_USE_STACK', 'CONJ']}, } @@ -445,4 +446,5 @@ subdir('driver/level3') subdir('kernel') _openblas = static_library('openblas', - link_whole: [ _interface, _l2_driver, _l3_driver, _kern ]) + link_whole: [ _interface, _l2_driver, _l3_driver, _kern ], + install: true)