|
|
|
@@ -307,7 +307,66 @@ base_kops = [ |
|
|
|
'q': {'exts': {'': {'dir': 'generic', 'kernel': 'cabs.c'}}}, |
|
|
|
}, |
|
|
|
}, |
|
|
|
# TODO(rg): There's CGEMM3MKERNEL, ZGEMM3MKERNEL in kernel.generic |
|
|
|
{ 'base': '?gemm3m', |
|
|
|
'modes': { |
|
|
|
'c': {'exts': { |
|
|
|
'_kernel': {'dir': 'x86_64', 'kernel': 'zgemm3m_kernel_4x8_nehalem.S', |
|
|
|
'addl': ['-DICOPY', '-UUSE_ALPHA']}, |
|
|
|
'_oncopyb': {'dir': 'generic', 'kernel': 'zgemm3m_ncopy_4.c', |
|
|
|
'addl': ['-DUSE_ALPHA']}, |
|
|
|
'_otcopyb': {'dir': 'generic', 'kernel': 'zgemm3m_tcopy_4.c', |
|
|
|
'addl': ['-DUSE_ALPHA']}, |
|
|
|
'_itcopyb': {'dir': 'generic', 'kernel': 'zgemm3m_tcopy_8.c', |
|
|
|
'addl': ['-DICOPY', '-UUSE_ALPHA']}, |
|
|
|
'_itcopyr': {'dir': 'generic', 'kernel': 'zgemm3m_tcopy_8.c', |
|
|
|
'addl': ['-DICOPY', '-UUSE_ALPHA', '-DREAL_ONLY']}, |
|
|
|
'_itcopyi': {'dir': 'generic', 'kernel': 'zgemm3m_tcopy_8.c', |
|
|
|
'addl': ['-DICOPY', '-UUSE_ALPHA', '-DIMAGE_ONLY']}, |
|
|
|
'_incopyb': {'dir': 'generic', 'kernel': 'zgemm3m_ncopy_8.c', |
|
|
|
'addl': ['-DICOPY', '-UUSE_ALPHA']}, |
|
|
|
'_incopyr': {'dir': 'generic', 'kernel': 'zgemm3m_ncopy_8.c', |
|
|
|
'addl': ['-DICOPY', '-UUSE_ALPHA', '-DREAL_ONLY']}, |
|
|
|
'_oncopyr': {'dir': 'generic', 'kernel': 'zgemm3m_ncopy_4.c', |
|
|
|
'addl': ['-DUSE_ALPHA', '-DREAL_ONLY']}, |
|
|
|
'_otcopyr': {'dir': 'generic', 'kernel': 'zgemm3m_tcopy_4.c', |
|
|
|
'addl': ['-DUSE_ALPHA', '-DREAL_ONLY']}, |
|
|
|
'_incopyi': {'dir': 'generic', 'kernel': 'zgemm3m_ncopy_8.c', |
|
|
|
'addl': ['-DICOPY', '-UUSE_ALPHA', '-DIMAGE_ONLY']}, |
|
|
|
'_oncopyi': {'dir': 'generic', 'kernel': 'zgemm3m_ncopy_4.c', |
|
|
|
'addl': ['-DUSE_ALPHA', '-DIMAGE_ONLY']}, |
|
|
|
'_otcopyi': {'dir': 'generic', 'kernel': 'zgemm3m_ncopy_4.c', |
|
|
|
'addl': ['-DUSE_ALPHA', '-DREAL_ONLY']}, |
|
|
|
}}, |
|
|
|
'z': {'exts': { |
|
|
|
'_kernel': {'dir': 'x86_64', 'kernel': 'zgemm3m_kernel_4x8_nehalem.S', |
|
|
|
'addl': ['-DICOPY', '-UUSE_ALPHA']}, |
|
|
|
'_oncopyb': {'dir': 'generic', 'kernel': 'zgemm3m_ncopy_4.c', |
|
|
|
'addl': ['-DUSE_ALPHA']}, |
|
|
|
'_otcopyb': {'dir': 'generic', 'kernel': 'zgemm3m_tcopy_4.c', |
|
|
|
'addl': ['-DUSE_ALPHA']}, |
|
|
|
'_itcopyb': {'dir': 'generic', 'kernel': 'zgemm3m_tcopy_8.c', |
|
|
|
'addl': ['-DICOPY', '-UUSE_ALPHA']}, |
|
|
|
'_itcopyr': {'dir': 'generic', 'kernel': 'zgemm3m_tcopy_8.c', |
|
|
|
'addl': ['-DICOPY', '-UUSE_ALPHA', '-DREAL_ONLY']}, |
|
|
|
'_itcopyi': {'dir': 'generic', 'kernel': 'zgemm3m_tcopy_8.c', |
|
|
|
'addl': ['-DICOPY', '-UUSE_ALPHA', '-DIMAGE_ONLY']}, |
|
|
|
'_incopyb': {'dir': 'generic', 'kernel': 'zgemm3m_ncopy_8.c', |
|
|
|
'addl': ['-DICOPY', '-UUSE_ALPHA']}, |
|
|
|
'_incopyr': {'dir': 'generic', 'kernel': 'zgemm3m_ncopy_8.c', |
|
|
|
'addl': ['-DICOPY', '-UUSE_ALPHA', '-DREAL_ONLY']}, |
|
|
|
'_oncopyr': {'dir': 'generic', 'kernel': 'zgemm3m_ncopy_4.c', |
|
|
|
'addl': ['-DUSE_ALPHA', '-DREAL_ONLY']}, |
|
|
|
'_otcopyr': {'dir': 'generic', 'kernel': 'zgemm3m_tcopy_4.c', |
|
|
|
'addl': ['-DUSE_ALPHA', '-DREAL_ONLY']}, |
|
|
|
'_incopyi': {'dir': 'generic', 'kernel': 'zgemm3m_ncopy_8.c', |
|
|
|
'addl': ['-DICOPY', '-UUSE_ALPHA', '-DIMAGE_ONLY']}, |
|
|
|
'_oncopyi': {'dir': 'generic', 'kernel': 'zgemm3m_ncopy_4.c', |
|
|
|
'addl': ['-DUSE_ALPHA', '-DIMAGE_ONLY']}, |
|
|
|
'_otcopyi': {'dir': 'generic', 'kernel': 'zgemm3m_ncopy_4.c', |
|
|
|
'addl': ['-DUSE_ALPHA', '-DREAL_ONLY']}, |
|
|
|
}}, |
|
|
|
}, |
|
|
|
}, |
|
|
|
{ 'base': '?ger', |
|
|
|
'modes': { |
|
|
|
's': {'exts': {'_k': {'dir': 'generic', 'kernel': 'ger.c'}}}, |
|
|
|
@@ -499,14 +558,26 @@ base_kops = [ |
|
|
|
'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']}}}, |
|
|
|
'z': { |
|
|
|
'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': '?gemm', |
|
|
|
@@ -629,6 +700,146 @@ base_kops = [ |
|
|
|
'_oltncopy': {'dir': 'generic', 'kernel': 'trsm_ltcopy_4.c', |
|
|
|
'addl': ['-DOUTER', '-DLOWER', '-UUNIT']}, |
|
|
|
}}, |
|
|
|
'd': {'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']}, |
|
|
|
}}, |
|
|
|
'q': {'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']}, |
|
|
|
}}, |
|
|
|
'c': {'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']}, |
|
|
|
}}, |
|
|
|
'z': {'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', |
|
|
|
|