| @@ -322,6 +322,13 @@ base_kops = [ | |||||
| }, | }, | ||||
| }, | }, | ||||
| }, | }, | ||||
| {'base': 'axpby', | |||||
| 'modes': {'s': {'dir': 'arm', 'kernel': 'axpby.c', 'exts': ['_k']}, | |||||
| 'd': {'dir': 'arm', 'kernel': 'axpby.c', 'exts': ['_k']}, | |||||
| 'c': {'dir': 'arm', 'kernel': 'axpby.c', 'exts': ['_k']}, | |||||
| 'z': {'dir': 'arm', 'kernel': 'axpby.c', 'exts': ['_k']}, | |||||
| }, | |||||
| }, | |||||
| # Level 2 BLAS | # Level 2 BLAS | ||||
| # There are additional sources so now we have srcs | # There are additional sources so now we have srcs | ||||
| # Ordered as per KERNEL.generic and Makefile.L2 | # Ordered as per KERNEL.generic and Makefile.L2 | ||||
| @@ -329,74 +336,64 @@ base_kops = [ | |||||
| # ext is attached to base (only useful from Level 2) | # ext is attached to base (only useful from Level 2) | ||||
| # i.e. baseext (e.g., gemv_n, gemv_t, cgeru_k, cgerc_k) | # i.e. baseext (e.g., gemv_n, gemv_t, cgeru_k, cgerc_k) | ||||
| {'base': 'gemv', | {'base': 'gemv', | ||||
| 'modes': { | |||||
| 's' : { | |||||
| 'dir': 'arm', | |||||
| 'kernel': 'gemv_n.c', | |||||
| 'exts': ['_n', '_t'], | |||||
| }, | |||||
| 'd' : { | |||||
| 'dir': 'arm', | |||||
| 'kernel': 'gemv_n.c', | |||||
| # TODO: _t should take fmaflag, but then we need a dictionary.. | |||||
| # From Makefile.L2 | |||||
| 'exts': ['_n', '_t'], | |||||
| }, | |||||
| 'q' : { | |||||
| 'dir': 'arm', | |||||
| 'kernel': 'zgemv_n.c', | |||||
| 'exts': ['_n', '_t'], | |||||
| }, | |||||
| 'c' : { | |||||
| 'dir': 'arm', | |||||
| 'kernel': 'zgemv_n.c', | |||||
| 'exts': ['_n', '_t', '_r', '_c', '_u', '_s', '_d'], | |||||
| }, | |||||
| 'z' : { | |||||
| 'dir': 'arm', | |||||
| 'kernel': 'zgemv_n.c', | |||||
| 'exts': ['_n', '_t', '_r', '_c', '_u', '_s', '_d'], | |||||
| }, | |||||
| 'x' : { | |||||
| 'dir': 'arm', | |||||
| 'kernel': 'zgemv_n.c', | |||||
| 'exts': ['_n', '_t', '_r', '_c', '_u', '_s', '_d'], | |||||
| }, | |||||
| }, | |||||
| 'modes': {'s': {'dir': 'arm', 'kernel': 'gemv_n.c', 'exts': ['_n', '_t']}, | |||||
| 'd': {'dir': 'arm', 'kernel': 'gemv_n.c', | |||||
| # TODO: _t should take fmaflag, but then we need a dictionary.. | |||||
| # From Makefile.L2 | |||||
| 'exts': ['_n', '_t']}, | |||||
| 'q': {'dir': 'arm', 'kernel': 'gemv_n.c', 'exts': ['_n', '_t']}, | |||||
| 'c': {'dir': 'arm', 'kernel': 'zgemv_n.c', | |||||
| 'exts': ['_n', '_t', '_r', '_c', '_o', '_u', '_s', '_d']}, | |||||
| 'z': {'dir': 'arm', 'kernel': 'zgemv_n.c', | |||||
| 'exts': ['_n', '_t', '_r', '_c', '_o', '_u', '_s', '_d']}, | |||||
| 'x': {'dir': 'arm', 'kernel': 'zgemv_n.c', | |||||
| 'exts': ['_n', '_t', '_r', '_c', '_o', '_u', '_s', '_d']}, | |||||
| }, | |||||
| }, | }, | ||||
| {'base': 'gemm_beta', | |||||
| 'modes': { | |||||
| 's' : { | |||||
| 'dir': 'generic', | |||||
| 'kernel': 'gemm_beta.c', | |||||
| 'exts': ['_n', '_t'], | |||||
| }, | |||||
| 'd' : { | |||||
| 'dir': 'generic', | |||||
| 'kernel': 'gemm_beta.c', | |||||
| 'exts': ['_n', '_t'], | |||||
| }, | |||||
| 'q' : { | |||||
| 'dir': 'generic', | |||||
| 'kernel': 'zgemm_beta.c', | |||||
| 'exts': ['_n', '_t'], | |||||
| }, | |||||
| 'c' : { | |||||
| 'dir': 'generic', | |||||
| 'kernel': 'zgemm_beta.c', | |||||
| 'exts': ['_n', '_t', '_r', '_c', '_u', '_s', '_d'], | |||||
| }, | |||||
| 'z' : { | |||||
| 'dir': 'generic', | |||||
| 'kernel': 'zgemm_beta.c', | |||||
| 'exts': ['_n', '_t', '_r', '_c', '_u', '_s', '_d'], | |||||
| }, | |||||
| 'x' : { | |||||
| 'dir': 'generic', | |||||
| 'kernel': 'zgemm_beta.c', | |||||
| 'exts': ['_n', '_t', '_r', '_c', '_u', '_s', '_d'], | |||||
| }, | |||||
| }, | |||||
| {'base': 'symv', | |||||
| 'modes': {'s': {'dir': 'generic', 'kernel': 'symv_k.c', 'exts': ['_U', '_L']}, | |||||
| 'd': {'dir': 'generic', 'kernel': 'symv_k.c', 'exts': ['_U', '_L']}, | |||||
| 'q': {'dir': 'generic', 'kernel': 'symv_k.c', 'exts': ['_U', '_L']}, | |||||
| 'c': {'dir': 'generic', 'kernel': 'symv_k.c', 'exts': ['_U', '_L']}, | |||||
| 'z': {'dir': 'generic', 'kernel': 'symv_k.c', 'exts': ['_U', '_L']}, | |||||
| 'x': {'dir': 'generic', 'kernel': 'symv_k.c', 'exts': ['_U', '_L']}, | |||||
| }, | |||||
| }, | |||||
| {'base': 'ger', | |||||
| 'modes': {'s': {'dir': 'generic', 'kernel': 'ger.c', 'exts': ['_k']}, | |||||
| 'd': {'dir': 'generic', 'kernel': 'ger.c', 'exts': ['_k']}, | |||||
| 'q': {'dir': 'generic', 'kernel': 'ger.c', 'exts': ['_k']} | |||||
| }, | |||||
| }, | |||||
| {'base': 'geru', | |||||
| 'modes': {'c': {'dir': 'generic', 'kernel': 'zger.c', 'exts': ['_k']}, | |||||
| 'z': {'dir': 'generic', 'kernel': 'zger.c', 'exts': ['_k']}, | |||||
| 'x': {'dir': 'generic', 'kernel': 'zger.c', 'exts': ['_k']} | |||||
| } | |||||
| }, | |||||
| {'base': 'gerc', | |||||
| 'modes': {'c': {'dir': 'generic', 'kernel': 'zger.c', 'exts': ['_k']}, | |||||
| 'z': {'dir': 'generic', 'kernel': 'zger.c', 'exts': ['_k']}, | |||||
| 'x': {'dir': 'generic', 'kernel': 'zger.c', 'exts': ['_k']}, | |||||
| }, | |||||
| }, | |||||
| {'base': 'hemv', | |||||
| 'modes': {'c': {'dir': 'generic', | |||||
| 'kernel': 'zhemv_k.c', | |||||
| 'exts': ['_U', '_L', '_V', '_M']}, | |||||
| 'z': {'dir': 'generic', | |||||
| 'kernel': 'zhemv_k.c', | |||||
| 'exts': ['_U', '_L', '_V', '_M']}, | |||||
| 'x': {'dir': 'generic', | |||||
| 'kernel': 'zhemv_k.c', | |||||
| 'exts': ['_U', '_L', '_V', '_M']}, | |||||
| }, | |||||
| }, | |||||
| {'base': 'bgemv', | |||||
| 'modes': {'s': {'dir': 'x86_64', | |||||
| 'kernel': 'sbgemv_n.c', | |||||
| 'exts': ['_n', '_t']} | |||||
| }, | |||||
| }, | }, | ||||
| ] | ] | ||||