You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

KERNEL.x280 8.9 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291
  1. # **********************************************************************************
  2. # Copyright (c) 2022, The OpenBLAS Project
  3. # All rights reserved.
  4. # Redistribution and use in source and binary forms, with or without
  5. # modification, are permitted provided that the following conditions are
  6. # met:
  7. # 1. Redistributions of source code must retain the above copyright
  8. # notice, this list of conditions and the following disclaimer.
  9. # 2. Redistributions in binary form must reproduce the above copyright
  10. # notice, this list of conditions and the following disclaimer in
  11. # the documentation and/or other materials provided with the
  12. # distribution.
  13. # 3. Neither the name of the OpenBLAS project nor the names of
  14. # its contributors may be used to endorse or promote products
  15. # derived from this software without specific prior written permission.
  16. # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  17. # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  18. # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  19. # ARE DISCLAIMED. IN NO EVENT SHALL THE OPENBLAS PROJECT OR CONTRIBUTORS BE
  20. # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  21. # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
  22. # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
  23. # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  24. # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
  25. # USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  26. # **********************************************************************************
  27. SAMAXKERNEL = amax_rvv.c
  28. DAMAXKERNEL = amax_rvv.c
  29. CAMAXKERNEL = zamax_rvv.c
  30. ZAMAXKERNEL = zamax_rvv.c
  31. SAMINKERNEL = amin_rvv.c
  32. DAMINKERNEL = amin_rvv.c
  33. CAMINKERNEL = zamin_rvv.c
  34. ZAMINKERNEL = zamin_rvv.c
  35. SMAXKERNEL = max_rvv.c
  36. DMAXKERNEL = max_rvv.c
  37. SMINKERNEL = min_rvv.c
  38. DMINKERNEL = min_rvv.c
  39. ISAMAXKERNEL = iamax_rvv.c
  40. IDAMAXKERNEL = iamax_rvv.c
  41. ICAMAXKERNEL = izamax_rvv.c
  42. IZAMAXKERNEL = izamax_rvv.c
  43. ISAMINKERNEL = iamin_rvv.c
  44. IDAMINKERNEL = iamin_rvv.c
  45. ICAMINKERNEL = izamin_rvv.c
  46. IZAMINKERNEL = izamin_rvv.c
  47. ISMAXKERNEL = imax_rvv.c
  48. IDMAXKERNEL = imax_rvv.c
  49. ISMINKERNEL = imin_rvv.c
  50. IDMINKERNEL = imin_rvv.c
  51. SASUMKERNEL = asum_rvv.c
  52. DASUMKERNEL = asum_rvv.c
  53. CASUMKERNEL = zasum_rvv.c
  54. ZASUMKERNEL = zasum_rvv.c
  55. SSUMKERNEL = sum_rvv.c
  56. DSUMKERNEL = sum_rvv.c
  57. CSUMKERNEL = zsum_rvv.c
  58. ZSUMKERNEL = zsum_rvv.c
  59. SAXPYKERNEL = axpy_rvv.c
  60. DAXPYKERNEL = axpy_rvv.c
  61. CAXPYKERNEL = zaxpy_rvv.c
  62. ZAXPYKERNEL = zaxpy_rvv.c
  63. SAXPBYKERNEL = axpby_rvv.c
  64. DAXPBYKERNEL = axpby_rvv.c
  65. CAXPBYKERNEL = zaxpby_rvv.c
  66. ZAXPBYKERNEL = zaxpby_rvv.c
  67. SCOPYKERNEL = copy_rvv.c
  68. DCOPYKERNEL = copy_rvv.c
  69. CCOPYKERNEL = zcopy_rvv.c
  70. ZCOPYKERNEL = zcopy_rvv.c
  71. SDOTKERNEL = dot_rvv.c
  72. DDOTKERNEL = dot_rvv.c
  73. CDOTKERNEL = zdot_rvv.c
  74. ZDOTKERNEL = zdot_rvv.c
  75. DSDOTKERNEL = dot_rvv.c
  76. SNRM2KERNEL = nrm2_rvv.c
  77. DNRM2KERNEL = nrm2_rvv.c
  78. CNRM2KERNEL = znrm2_rvv.c
  79. ZNRM2KERNEL = znrm2_rvv.c
  80. SROTKERNEL = rot_rvv.c
  81. DROTKERNEL = rot_rvv.c
  82. CROTKERNEL = zrot_rvv.c
  83. ZROTKERNEL = zrot_rvv.c
  84. SROTMKERNEL = rotm_rvv.c
  85. DROTMKERNEL = rotm_rvv.c
  86. QROTMKERNEL = ../generic/rotm.c
  87. SSCALKERNEL = scal_rvv.c
  88. DSCALKERNEL = scal_rvv.c
  89. CSCALKERNEL = zscal_rvv.c
  90. ZSCALKERNEL = zscal_rvv.c
  91. SSWAPKERNEL = swap_rvv.c
  92. DSWAPKERNEL = swap_rvv.c
  93. CSWAPKERNEL = zswap_rvv.c
  94. ZSWAPKERNEL = zswap_rvv.c
  95. SGEMVNKERNEL = gemv_n_rvv.c
  96. DGEMVNKERNEL = gemv_n_rvv.c
  97. CGEMVNKERNEL = zgemv_n_rvv.c
  98. ZGEMVNKERNEL = zgemv_n_rvv.c
  99. SGEMVTKERNEL = gemv_t_rvv.c
  100. DGEMVTKERNEL = gemv_t_rvv.c
  101. CGEMVTKERNEL = zgemv_t_rvv.c
  102. ZGEMVTKERNEL = zgemv_t_rvv.c
  103. CTRMMKERNEL = ztrmmkernel_rvv_v1x4.c
  104. ZTRMMKERNEL = ztrmmkernel_rvv_v1x4.c
  105. # SGEMM_UNROLL_N set in params.h
  106. ifeq ($(SGEMM_UNROLL_N), 8)
  107. # UNROLL_M is VLMAX
  108. SGEMMKERNEL = gemmkernel_rvv_v1x8.c
  109. SGEMMINCOPY = gemm_ncopy_rvv_v1.c
  110. SGEMMITCOPY = gemm_tcopy_rvv_v1.c
  111. SGEMMONCOPY = gemm_ncopy_$(SGEMM_UNROLL_N)_rvv.c
  112. SGEMMOTCOPY = gemm_tcopy_$(SGEMM_UNROLL_N)_rvv.c
  113. SGEMMINCOPYOBJ = sgemm_incopy$(TSUFFIX).$(SUFFIX)
  114. SGEMMITCOPYOBJ = sgemm_itcopy$(TSUFFIX).$(SUFFIX)
  115. SGEMMONCOPYOBJ = sgemm_oncopy$(TSUFFIX).$(SUFFIX)
  116. SGEMMOTCOPYOBJ = sgemm_otcopy$(TSUFFIX).$(SUFFIX)
  117. STRMMKERNEL = trmmkernel_rvv_v1x8.c
  118. STRMMUNCOPY_M = trmm_uncopy_rvv_v1.c
  119. STRMMLNCOPY_M = trmm_lncopy_rvv_v1.c
  120. STRMMUTCOPY_M = trmm_utcopy_rvv_v1.c
  121. STRMMLTCOPY_M = trmm_ltcopy_rvv_v1.c
  122. SSYMMUCOPY_M = symm_ucopy_rvv_v1.c
  123. SSYMMLCOPY_M = symm_lcopy_rvv_v1.c
  124. endif
  125. # SGEMM_UNROLL_N set in params.h
  126. ifeq ($(DGEMM_UNROLL_N), 8)
  127. # UNROLL_M is VLMAX
  128. DGEMMKERNEL = gemmkernel_rvv_v1x8.c
  129. DGEMMINCOPY = gemm_ncopy_rvv_v1.c
  130. DGEMMITCOPY = gemm_tcopy_rvv_v1.c
  131. DGEMMONCOPY = gemm_ncopy_$(DGEMM_UNROLL_N)_rvv.c
  132. DGEMMOTCOPY = gemm_tcopy_$(DGEMM_UNROLL_N)_rvv.c
  133. DGEMMINCOPYOBJ = dgemm_incopy$(TSUFFIX).$(SUFFIX)
  134. DGEMMITCOPYOBJ = dgemm_itcopy$(TSUFFIX).$(SUFFIX)
  135. DGEMMONCOPYOBJ = dgemm_oncopy$(TSUFFIX).$(SUFFIX)
  136. DGEMMOTCOPYOBJ = dgemm_otcopy$(TSUFFIX).$(SUFFIX)
  137. DTRMMKERNEL = trmmkernel_rvv_v1x8.c
  138. DTRMMUNCOPY_M = trmm_uncopy_rvv_v1.c
  139. DTRMMLNCOPY_M = trmm_lncopy_rvv_v1.c
  140. DTRMMUTCOPY_M = trmm_utcopy_rvv_v1.c
  141. DTRMMLTCOPY_M = trmm_ltcopy_rvv_v1.c
  142. DSYMMUCOPY_M = symm_ucopy_rvv_v1.c
  143. DSYMMLCOPY_M = symm_lcopy_rvv_v1.c
  144. endif
  145. CGEMMKERNEL = zgemmkernel_rvv_v1x4.c
  146. CGEMMINCOPY = zgemm_ncopy_rvv_v1.c
  147. CGEMMITCOPY = zgemm_tcopy_rvv_v1.c
  148. CGEMMONCOPY = zgemm_ncopy_4_rvv.c
  149. CGEMMOTCOPY = zgemm_tcopy_4_rvv.c
  150. CGEMMINCOPYOBJ = cgemm_incopy$(TSUFFIX).$(SUFFIX)
  151. CGEMMITCOPYOBJ = cgemm_itcopy$(TSUFFIX).$(SUFFIX)
  152. CGEMMONCOPYOBJ = cgemm_oncopy$(TSUFFIX).$(SUFFIX)
  153. CGEMMOTCOPYOBJ = cgemm_otcopy$(TSUFFIX).$(SUFFIX)
  154. ZGEMMKERNEL = zgemmkernel_rvv_v1x4.c
  155. ZGEMMINCOPY = zgemm_ncopy_rvv_v1.c
  156. ZGEMMITCOPY = zgemm_tcopy_rvv_v1.c
  157. ZGEMMONCOPY = zgemm_ncopy_4_rvv.c
  158. ZGEMMOTCOPY = zgemm_tcopy_4_rvv.c
  159. ZGEMMINCOPYOBJ = zgemm_incopy$(TSUFFIX).$(SUFFIX)
  160. ZGEMMITCOPYOBJ = zgemm_itcopy$(TSUFFIX).$(SUFFIX)
  161. ZGEMMONCOPYOBJ = zgemm_oncopy$(TSUFFIX).$(SUFFIX)
  162. ZGEMMOTCOPYOBJ = zgemm_otcopy$(TSUFFIX).$(SUFFIX)
  163. STRSMKERNEL_LN = trsm_kernel_LN_rvv_v1.c
  164. STRSMKERNEL_LT = trsm_kernel_LT_rvv_v1.c
  165. STRSMKERNEL_RN = trsm_kernel_RN_rvv_v1.c
  166. STRSMKERNEL_RT = trsm_kernel_RT_rvv_v1.c
  167. DTRSMKERNEL_LN = trsm_kernel_LN_rvv_v1.c
  168. DTRSMKERNEL_LT = trsm_kernel_LT_rvv_v1.c
  169. DTRSMKERNEL_RN = trsm_kernel_RN_rvv_v1.c
  170. DTRSMKERNEL_RT = trsm_kernel_RT_rvv_v1.c
  171. CTRSMKERNEL_LN = trsm_kernel_LN_rvv_v1.c
  172. CTRSMKERNEL_LT = trsm_kernel_LT_rvv_v1.c
  173. CTRSMKERNEL_RN = trsm_kernel_RN_rvv_v1.c
  174. CTRSMKERNEL_RT = trsm_kernel_RT_rvv_v1.c
  175. ZTRSMKERNEL_LN = trsm_kernel_LN_rvv_v1.c
  176. ZTRSMKERNEL_LT = trsm_kernel_LT_rvv_v1.c
  177. ZTRSMKERNEL_RN = trsm_kernel_RN_rvv_v1.c
  178. ZTRSMKERNEL_RT = trsm_kernel_RT_rvv_v1.c
  179. TRSMCOPYLN_M = trsm_lncopy_rvv_v1.c
  180. TRSMCOPYLT_M = trsm_ltcopy_rvv_v1.c
  181. TRSMCOPYUN_M = trsm_uncopy_rvv_v1.c
  182. TRSMCOPYUT_M = trsm_utcopy_rvv_v1.c
  183. ZTRSMCOPYLN_M = ztrsm_lncopy_rvv_v1.c
  184. ZTRSMCOPYLT_M = ztrsm_ltcopy_rvv_v1.c
  185. ZTRSMCOPYUN_M = ztrsm_uncopy_rvv_v1.c
  186. ZTRSMCOPYUT_M = ztrsm_utcopy_rvv_v1.c
  187. SSYMV_U_KERNEL = symv_U_rvv.c
  188. SSYMV_L_KERNEL = symv_L_rvv.c
  189. DSYMV_U_KERNEL = symv_U_rvv.c
  190. DSYMV_L_KERNEL = symv_L_rvv.c
  191. CSYMV_U_KERNEL = zsymv_U_rvv.c
  192. CSYMV_L_KERNEL = zsymv_L_rvv.c
  193. ZSYMV_U_KERNEL = zsymv_U_rvv.c
  194. ZSYMV_L_KERNEL = zsymv_L_rvv.c
  195. CHEMV_L_KERNEL = zhemv_LM_rvv.c
  196. CHEMV_M_KERNEL = zhemv_LM_rvv.c
  197. CHEMV_U_KERNEL = zhemv_UV_rvv.c
  198. CHEMV_V_KERNEL = zhemv_UV_rvv.c
  199. ZHEMV_L_KERNEL = zhemv_LM_rvv.c
  200. ZHEMV_M_KERNEL = zhemv_LM_rvv.c
  201. ZHEMV_U_KERNEL = zhemv_UV_rvv.c
  202. ZHEMV_V_KERNEL = zhemv_UV_rvv.c
  203. ZHEMMLTCOPY_M = zhemm_ltcopy_rvv_v1.c
  204. ZHEMMUTCOPY_M = zhemm_utcopy_rvv_v1.c
  205. CHEMMLTCOPY_M = zhemm_ltcopy_rvv_v1.c
  206. CHEMMUTCOPY_M = zhemm_utcopy_rvv_v1.c
  207. ZSYMMUCOPY_M = zsymm_ucopy_rvv_v1.c
  208. ZSYMMLCOPY_M = zsymm_lcopy_rvv_v1.c
  209. CSYMMUCOPY_M = zsymm_ucopy_rvv_v1.c
  210. CSYMMLCOPY_M = zsymm_lcopy_rvv_v1.c
  211. ZTRMMUNCOPY_M = ztrmm_uncopy_rvv_v1.c
  212. ZTRMMLNCOPY_M = ztrmm_lncopy_rvv_v1.c
  213. ZTRMMUTCOPY_M = ztrmm_utcopy_rvv_v1.c
  214. ZTRMMLTCOPY_M = ztrmm_ltcopy_rvv_v1.c
  215. CTRMMUNCOPY_M = ztrmm_uncopy_rvv_v1.c
  216. CTRMMLNCOPY_M = ztrmm_lncopy_rvv_v1.c
  217. CTRMMUTCOPY_M = ztrmm_utcopy_rvv_v1.c
  218. CTRMMLTCOPY_M = ztrmm_ltcopy_rvv_v1.c
  219. LSAME_KERNEL = ../generic/lsame.c
  220. SCABS_KERNEL = ../generic/cabs.c
  221. DCABS_KERNEL = ../generic/cabs.c
  222. QCABS_KERNEL = ../generic/cabs.c
  223. ifndef SGEMM_BETA
  224. SGEMM_BETA = gemm_beta_rvv.c
  225. endif
  226. ifndef DGEMM_BETA
  227. DGEMM_BETA = gemm_beta_rvv.c
  228. endif
  229. ifndef CGEMM_BETA
  230. CGEMM_BETA = zgemm_beta_rvv.c
  231. endif
  232. ifndef ZGEMM_BETA
  233. ZGEMM_BETA = zgemm_beta_rvv.c
  234. endif
  235. ZOMATCOPY_CN = zomatcopy_cn_rvv.c
  236. COMATCOPY_CN = zomatcopy_cn_rvv.c
  237. DOMATCOPY_CN = omatcopy_cn_rvv.c
  238. SOMATCOPY_CN = omatcopy_cn_rvv.c