ENH: Add more L3 symbols

This commit is contained in:
Rohit Goswami 2024-05-26 23:02:27 +00:00 committed by Mateusz Sokół
parent 571d2f3be3
commit cbafa8114f
2 changed files with 154 additions and 2 deletions

View File

@ -448,10 +448,160 @@ base_kops = [
'addl': ['-DCONJ', '-DNC']},
'_RC': {'dir': 'generic', 'kernel': 'ztrmmkernel_2x2.c',
'addl': ['-DCONJ', '-DCN']},
}
},
},
},
},
{ 'base': '?trsm_kernel',
'modes': {
's': {
'exts': {
'_LN': {'dir': 'generic', 'kernel': 'trsm_kernel_LN.c',
'addl': ['-DLN', '-DUPPER', '-UCONJ']},
'_LT': {'dir': 'generic', 'kernel': 'trsm_kernel_LT.c',
'addl': ['-DLT', '-UUPPER', '-UCONJ']},
'_RN': {'dir': 'generic', 'kernel': 'trsm_kernel_RN.c',
'addl': ['-DRN', '-DUPPER', '-UCONJ']},
'_RT': {'dir': 'generic', 'kernel': 'trsm_kernel_RT.c',
'addl': ['-DRT', '-UUPPER', '-UCONJ']},
},
},
'd': {
'exts': {
'_LN': {'dir': 'generic', 'kernel': 'trsm_kernel_LN.c',
'addl': ['-DLN', '-DUPPER', '-UCONJ']},
'_LT': {'dir': 'generic', 'kernel': 'trsm_kernel_LT.c',
'addl': ['-DLT', '-UUPPER', '-UCONJ']},
'_RN': {'dir': 'generic', 'kernel': 'trsm_kernel_RN.c',
'addl': ['-DRN', '-DUPPER', '-UCONJ']},
'_RT': {'dir': 'generic', 'kernel': 'trsm_kernel_RT.c',
'addl': ['-DRT', '-UUPPER', '-UCONJ']},
},
},
'c': {
'exts': {
'_LN': {'dir': 'generic', 'kernel': 'trsm_kernel_LN.c',
'addl': ['-DLN', '-DUPPER', '-UCONJ']},
'_LT': {'dir': 'generic', 'kernel': 'trsm_kernel_LT.c',
'addl': ['-DLT', '-UUPPER', '-UCONJ']},
'_LR': {'dir': 'generic', 'kernel': 'trsm_kernel_LN.c',
'addl': ['-DLN', '-DUPPER', '-DCONJ']},
'_LC': {'dir': 'generic', 'kernel': 'trsm_kernel_LT.c',
'addl': ['-DLT', '-UUPPER', '-DCONJ']},
'_RN': {'dir': 'generic', 'kernel': 'trsm_kernel_RN.c',
'addl': ['-DRN', '-DUPPER', '-UCONJ']},
'_RT': {'dir': 'generic', 'kernel': 'trsm_kernel_RT.c',
'addl': ['-DRT', '-UUPPER', '-UCONJ']},
'_RR': {'dir': 'generic', 'kernel': 'trsm_kernel_RN.c',
'addl': ['-DRN', '-DUPPER', '-DCONJ']},
'_RC': {'dir': 'generic', 'kernel': 'trsm_kernel_RT.c',
'addl': ['-DRT', '-UUPPER', '-DCONJ']},
},
},
},
},
{ 'base': '?gemm3m_kernel',
'modes': {
'c': {'exts': {'': {'dir': 'x86_64', 'kernel': 'zgemm3m_kernel_8x4_sse3.S',
'addl': ['-DNN']}}},
'z': {'exts': {'': {'dir': 'x86_64', 'kernel': 'zgemm3m_kernel_8x4_sse3.S',
'addl': ['-DNN']}}},
},
},
{ 'base': '?trmm',
'modes': {
's': {'exts': {
# TODO(rg): These actually use $(SGEMM_UNROLL_M) to choose the size
'_iunucopy': {'dir': 'generic', 'kernel': 'trmm_uncopy_8.c',
'addl': ['-UOUTER', '-ULOWER', '-DUNIT']},
'_iunncopy': {'dir': 'generic', 'kernel': 'trmm_uncopy_8.c',
'addl': ['-UOUTER', '-ULOWER', '-UUNIT']},
'_ilnucopy': {'dir': 'generic', 'kernel': 'trmm_lncopy_8.c',
'addl': ['-UOUTER', '-DLOWER', '-DUNIT']},
'_ilnncopy': {'dir': 'generic', 'kernel': 'trmm_lncopy_8.c',
'addl': ['-UOUTER', '-DLOWER', '-UUNIT']},
'_iutucopy': {'dir': 'generic', 'kernel': 'trmm_utcopy_8.c',
'addl': ['-UOUTER', '-ULOWER', '-DUNIT']},
'_iutncopy': {'dir': 'generic', 'kernel': 'trmm_utcopy_8.c',
'addl': ['-UOUTER', '-ULOWER', '-UUNIT']},
'_iltucopy': {'dir': 'generic', 'kernel': 'trmm_ltcopy_8.c',
'addl': ['-UOUTER', '-DLOWER', '-DUNIT']},
'_iltncopy': {'dir': 'generic', 'kernel': 'trmm_ltcopy_8.c',
'addl': ['-UOUTER', '-DLOWER', '-UUNIT']},
'_ounucopy': {'dir': 'generic', 'kernel': 'trmm_uncopy_4.c',
'addl': ['-DOUTER', '-ULOWER', '-DUNIT']},
'_ounncopy': {'dir': 'generic', 'kernel': 'trmm_uncopy_4.c',
'addl': ['-DOUTER', '-ULOWER', '-UUNIT']},
'_olnucopy': {'dir': 'generic', 'kernel': 'trmm_lncopy_4.c',
'addl': ['-DOUTER', '-DLOWER', '-DUNIT']},
'_olnncopy': {'dir': 'generic', 'kernel': 'trmm_lncopy_4.c',
'addl': ['-DOUTER', '-DLOWER', '-UUNIT']},
'_outucopy': {'dir': 'generic', 'kernel': 'trmm_utcopy_4.c',
'addl': ['-DOUTER', '-ULOWER', '-DUNIT']},
'_outncopy': {'dir': 'generic', 'kernel': 'trmm_utcopy_4.c',
'addl': ['-DOUTER', '-ULOWER', '-UUNIT']},
'_oltucopy': {'dir': 'generic', 'kernel': 'trmm_ltcopy_4.c',
'addl': ['-DOUTER', '-DLOWER', '-DUNIT']},
'_oltncopy': {'dir': 'generic', 'kernel': 'trmm_ltcopy_4.c',
'addl': ['-DOUTER', '-DLOWER', '-UUNIT']},
}},
},
},
{ 'base': '?trsm',
'modes': {
's': {'exts': {
# TODO(rg): These actually use $(SGEMM_UNROLL_M) to choose the size
'_iunucopy': {'dir': 'generic', 'kernel': 'trsm_uncopy_8.c',
'addl': ['-UOUTER', '-ULOWER', '-DUNIT']},
'_iunncopy': {'dir': 'generic', 'kernel': 'trsm_uncopy_8.c',
'addl': ['-UOUTER', '-ULOWER', '-UUNIT']},
'_ilnucopy': {'dir': 'generic', 'kernel': 'trsm_lncopy_8.c',
'addl': ['-UOUTER', '-DLOWER', '-DUNIT']},
'_ilnncopy': {'dir': 'generic', 'kernel': 'trsm_lncopy_8.c',
'addl': ['-UOUTER', '-DLOWER', '-UUNIT']},
'_iutucopy': {'dir': 'generic', 'kernel': 'trsm_utcopy_8.c',
'addl': ['-UOUTER', '-ULOWER', '-DUNIT']},
'_iutncopy': {'dir': 'generic', 'kernel': 'trsm_utcopy_8.c',
'addl': ['-UOUTER', '-ULOWER', '-UUNIT']},
'_iltucopy': {'dir': 'generic', 'kernel': 'trsm_ltcopy_8.c',
'addl': ['-UOUTER', '-DLOWER', '-DUNIT']},
'_iltncopy': {'dir': 'generic', 'kernel': 'trsm_ltcopy_8.c',
'addl': ['-UOUTER', '-DLOWER', '-UUNIT']},
'_ounucopy': {'dir': 'generic', 'kernel': 'trsm_uncopy_4.c',
'addl': ['-DOUTER', '-ULOWER', '-DUNIT']},
'_ounncopy': {'dir': 'generic', 'kernel': 'trsm_uncopy_4.c',
'addl': ['-DOUTER', '-ULOWER', '-UUNIT']},
'_olnucopy': {'dir': 'generic', 'kernel': 'trsm_lncopy_4.c',
'addl': ['-DOUTER', '-DLOWER', '-DUNIT']},
'_olnncopy': {'dir': 'generic', 'kernel': 'trsm_lncopy_4.c',
'addl': ['-DOUTER', '-DLOWER', '-UUNIT']},
'_outucopy': {'dir': 'generic', 'kernel': 'trsm_utcopy_4.c',
'addl': ['-DOUTER', '-ULOWER', '-DUNIT']},
'_outncopy': {'dir': 'generic', 'kernel': 'trsm_utcopy_4.c',
'addl': ['-DOUTER', '-ULOWER', '-UUNIT']},
'_oltucopy': {'dir': 'generic', 'kernel': 'trsm_ltcopy_4.c',
'addl': ['-DOUTER', '-DLOWER', '-DUNIT']},
'_oltncopy': {'dir': 'generic', 'kernel': 'trsm_ltcopy_4.c',
'addl': ['-DOUTER', '-DLOWER', '-UUNIT']},
}},
},
},
{ 'base': '?symm',
'modes': {
's': {'exts': {
# TODO(rg): These actually use $(SGEMM_UNROLL_M) to choose the size
'_iutcopy': {'dir': 'generic', 'kernel': 'symm_ucopy_8.c',
'addl': ['-UOUTER', '-ULOWER']},
'_iltcopy': {'dir': 'generic', 'kernel': 'symm_lcopy_8.c',
'addl': ['-UOUTER', '-DLOWER']},
'_outcopy': {'dir': 'generic', 'kernel': 'symm_ucopy_4.c',
'addl': ['-DOUTER', '-ULOWER']},
'_oltcopy': {'dir': 'generic', 'kernel': 'symm_lcopy_4.c',
'addl': ['-DOUTER', '-DLOWER']},
}},
},
},
# TODO(rg): iunucopy stuff
]
kernel_confs = []

View File

@ -270,7 +270,8 @@ ext_mappings = {
'_L': {'def': ['LOWER']},
'_LN': {'def': ['LEFT'], 'undef': ['TRANSA'],
'except': ['?syrk', '?syrk_thread',
'?syr2k', '?herk', '?herk_kernel']},
'?syr2k', '?herk', '?herk_kernel',
'?trsm_kernel']},
# Handle HEMV and HEMVREV better
'_V': {'def': ['HEMV', 'HEMVREV', 'XCONJ'], 'undef': ['LOWER', 'CONJ']},
'_M': {'def': ['HEMV', 'HEMVREV', 'LOWER']},
@ -428,6 +429,7 @@ symb_defs = {
'?her2_thread': {'def': ['HER']},
'?hpr_thread': {'def': ['HEMV']},
'?trmm_kernel': {'def': ['TRMMKERNEL']},
'?trsm_kernel': {'def': ['TRSMKERNEL']},
'?bgemm': {'def': ['HALF']},
'cblas_?dotu_sub': {'def': ['CBLAS', 'FORCE_USE_STACK'], 'undef': ['CONJ']},
'cblas_?dotc_sub': {'def': ['CBLAS', 'FORCE_USE_STACK', 'CONJ']},