282 lines
8.5 KiB
Plaintext
282 lines
8.5 KiB
Plaintext
# **********************************************************************************
|
|
# Copyright (c) 2022, The OpenBLAS Project
|
|
# All rights reserved.
|
|
# Redistribution and use in source and binary forms, with or without
|
|
# modification, are permitted provided that the following conditions are
|
|
# met:
|
|
# 1. Redistributions of source code must retain the above copyright
|
|
# notice, this list of conditions and the following disclaimer.
|
|
# 2. Redistributions in binary form must reproduce the above copyright
|
|
# notice, this list of conditions and the following disclaimer in
|
|
# the documentation and/or other materials provided with the
|
|
# distribution.
|
|
# 3. Neither the name of the OpenBLAS project nor the names of
|
|
# its contributors may be used to endorse or promote products
|
|
# derived from this software without specific prior written permission.
|
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
# ARE DISCLAIMED. IN NO EVENT SHALL THE OPENBLAS PROJECT OR CONTRIBUTORS BE
|
|
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
|
|
# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
# **********************************************************************************
|
|
|
|
SAMAXKERNEL = amax_rvv.c
|
|
DAMAXKERNEL = amax_rvv.c
|
|
CAMAXKERNEL = zamax_rvv.c
|
|
ZAMAXKERNEL = zamax_rvv.c
|
|
|
|
SAMINKERNEL = amin_rvv.c
|
|
DAMINKERNEL = amin_rvv.c
|
|
CAMINKERNEL = zamin_rvv.c
|
|
ZAMINKERNEL = zamin_rvv.c
|
|
|
|
SMAXKERNEL = max_rvv.c
|
|
DMAXKERNEL = max_rvv.c
|
|
|
|
SMINKERNEL = min_rvv.c
|
|
DMINKERNEL = min_rvv.c
|
|
|
|
ISAMAXKERNEL = iamax_rvv.c
|
|
IDAMAXKERNEL = iamax_rvv.c
|
|
ICAMAXKERNEL = izamax_rvv.c
|
|
IZAMAXKERNEL = izamax_rvv.c
|
|
|
|
ISAMINKERNEL = iamin_rvv.c
|
|
IDAMINKERNEL = iamin_rvv.c
|
|
ICAMINKERNEL = izamin_rvv.c
|
|
IZAMINKERNEL = izamin_rvv.c
|
|
|
|
ISMAXKERNEL = imax_rvv.c
|
|
IDMAXKERNEL = imax_rvv.c
|
|
|
|
ISMINKERNEL = imin_rvv.c
|
|
IDMINKERNEL = imin_rvv.c
|
|
|
|
SASUMKERNEL = asum_rvv.c
|
|
DASUMKERNEL = asum_rvv.c
|
|
CASUMKERNEL = zasum_rvv.c
|
|
ZASUMKERNEL = zasum_rvv.c
|
|
|
|
SSUMKERNEL = sum_rvv.c
|
|
DSUMKERNEL = sum_rvv.c
|
|
CSUMKERNEL = zsum_rvv.c
|
|
ZSUMKERNEL = zsum_rvv.c
|
|
|
|
SAXPYKERNEL = axpy_rvv.c
|
|
DAXPYKERNEL = axpy_rvv.c
|
|
CAXPYKERNEL = zaxpy_rvv.c
|
|
ZAXPYKERNEL = zaxpy_rvv.c
|
|
|
|
SAXPBYKERNEL = axpby_rvv.c
|
|
DAXPBYKERNEL = axpby_rvv.c
|
|
CAXPBYKERNEL = zaxpby_rvv.c
|
|
ZAXPBYKERNEL = zaxpby_rvv.c
|
|
|
|
SCOPYKERNEL = copy_rvv.c
|
|
DCOPYKERNEL = copy_rvv.c
|
|
CCOPYKERNEL = zcopy_rvv.c
|
|
ZCOPYKERNEL = zcopy_rvv.c
|
|
|
|
SDOTKERNEL = dot_rvv.c
|
|
DDOTKERNEL = dot_rvv.c
|
|
CDOTKERNEL = zdot_rvv.c
|
|
ZDOTKERNEL = zdot_rvv.c
|
|
DSDOTKERNEL = dot_rvv.c
|
|
|
|
SNRM2KERNEL = nrm2_rvv.c
|
|
DNRM2KERNEL = nrm2_rvv.c
|
|
CNRM2KERNEL = znrm2_rvv.c
|
|
ZNRM2KERNEL = znrm2_rvv.c
|
|
|
|
SROTKERNEL = rot_rvv.c
|
|
DROTKERNEL = rot_rvv.c
|
|
CROTKERNEL = zrot_rvv.c
|
|
ZROTKERNEL = zrot_rvv.c
|
|
|
|
SSCALKERNEL = scal_rvv.c
|
|
DSCALKERNEL = scal_rvv.c
|
|
CSCALKERNEL = zscal_rvv.c
|
|
ZSCALKERNEL = zscal_rvv.c
|
|
|
|
SSWAPKERNEL = swap_rvv.c
|
|
DSWAPKERNEL = swap_rvv.c
|
|
CSWAPKERNEL = zswap_rvv.c
|
|
ZSWAPKERNEL = zswap_rvv.c
|
|
|
|
SGEMVNKERNEL = gemv_n_rvv.c
|
|
DGEMVNKERNEL = gemv_n_rvv.c
|
|
CGEMVNKERNEL = zgemv_n_rvv.c
|
|
ZGEMVNKERNEL = zgemv_n_rvv.c
|
|
|
|
SGEMVTKERNEL = gemv_t_rvv.c
|
|
DGEMVTKERNEL = gemv_t_rvv.c
|
|
CGEMVTKERNEL = zgemv_t_rvv.c
|
|
ZGEMVTKERNEL = zgemv_t_rvv.c
|
|
|
|
CTRMMKERNEL = ztrmmkernel_rvv_v1x4.c
|
|
ZTRMMKERNEL = ztrmmkernel_rvv_v1x4.c
|
|
|
|
# SGEMM_UNROLL_N set in params.h
|
|
ifeq ($(SGEMM_UNROLL_N), 8)
|
|
# UNROLL_M is VLMAX
|
|
SGEMMKERNEL = gemmkernel_rvv_v1x8.c
|
|
SGEMMINCOPY = gemm_ncopy_rvv_v1.c
|
|
SGEMMITCOPY = gemm_tcopy_rvv_v1.c
|
|
SGEMMONCOPY = gemm_ncopy_$(SGEMM_UNROLL_N)_rvv.c
|
|
SGEMMOTCOPY = gemm_tcopy_$(SGEMM_UNROLL_N)_rvv.c
|
|
SGEMMINCOPYOBJ = sgemm_incopy$(TSUFFIX).$(SUFFIX)
|
|
SGEMMITCOPYOBJ = sgemm_itcopy$(TSUFFIX).$(SUFFIX)
|
|
SGEMMONCOPYOBJ = sgemm_oncopy$(TSUFFIX).$(SUFFIX)
|
|
SGEMMOTCOPYOBJ = sgemm_otcopy$(TSUFFIX).$(SUFFIX)
|
|
|
|
STRMMKERNEL = trmmkernel_rvv_v1x8.c
|
|
|
|
STRMMUNCOPY_M = trmm_uncopy_rvv_v1.c
|
|
STRMMLNCOPY_M = trmm_lncopy_rvv_v1.c
|
|
STRMMUTCOPY_M = trmm_utcopy_rvv_v1.c
|
|
STRMMLTCOPY_M = trmm_ltcopy_rvv_v1.c
|
|
|
|
SSYMMUCOPY_M = symm_ucopy_rvv_v1.c
|
|
SSYMMLCOPY_M = symm_lcopy_rvv_v1.c
|
|
endif
|
|
|
|
# SGEMM_UNROLL_N set in params.h
|
|
ifeq ($(DGEMM_UNROLL_N), 8)
|
|
# UNROLL_M is VLMAX
|
|
DGEMMKERNEL = gemmkernel_rvv_v1x8.c
|
|
DGEMMINCOPY = gemm_ncopy_rvv_v1.c
|
|
DGEMMITCOPY = gemm_tcopy_rvv_v1.c
|
|
DGEMMONCOPY = gemm_ncopy_$(DGEMM_UNROLL_N)_rvv.c
|
|
DGEMMOTCOPY = gemm_tcopy_$(DGEMM_UNROLL_N)_rvv.c
|
|
DGEMMINCOPYOBJ = dgemm_incopy$(TSUFFIX).$(SUFFIX)
|
|
DGEMMITCOPYOBJ = dgemm_itcopy$(TSUFFIX).$(SUFFIX)
|
|
DGEMMONCOPYOBJ = dgemm_oncopy$(TSUFFIX).$(SUFFIX)
|
|
DGEMMOTCOPYOBJ = dgemm_otcopy$(TSUFFIX).$(SUFFIX)
|
|
|
|
DTRMMKERNEL = trmmkernel_rvv_v1x8.c
|
|
DTRMMUNCOPY_M = trmm_uncopy_rvv_v1.c
|
|
DTRMMLNCOPY_M = trmm_lncopy_rvv_v1.c
|
|
DTRMMUTCOPY_M = trmm_utcopy_rvv_v1.c
|
|
DTRMMLTCOPY_M = trmm_ltcopy_rvv_v1.c
|
|
|
|
DSYMMUCOPY_M = symm_ucopy_rvv_v1.c
|
|
DSYMMLCOPY_M = symm_lcopy_rvv_v1.c
|
|
endif
|
|
|
|
CGEMMKERNEL = zgemmkernel_rvv_v1x4.c
|
|
CGEMMINCOPY = zgemm_ncopy_rvv_v1.c
|
|
CGEMMITCOPY = zgemm_tcopy_rvv_v1.c
|
|
CGEMMONCOPY = zgemm_ncopy_4_rvv.c
|
|
CGEMMOTCOPY = zgemm_tcopy_4_rvv.c
|
|
|
|
CGEMMINCOPYOBJ = cgemm_incopy$(TSUFFIX).$(SUFFIX)
|
|
CGEMMITCOPYOBJ = cgemm_itcopy$(TSUFFIX).$(SUFFIX)
|
|
CGEMMONCOPYOBJ = cgemm_oncopy$(TSUFFIX).$(SUFFIX)
|
|
CGEMMOTCOPYOBJ = cgemm_otcopy$(TSUFFIX).$(SUFFIX)
|
|
|
|
ZGEMMKERNEL = zgemmkernel_rvv_v1x4.c
|
|
|
|
ZGEMMINCOPY = zgemm_ncopy_rvv_v1.c
|
|
ZGEMMITCOPY = zgemm_tcopy_rvv_v1.c
|
|
ZGEMMONCOPY = zgemm_ncopy_4_rvv.c
|
|
ZGEMMOTCOPY = zgemm_tcopy_4_rvv.c
|
|
|
|
ZGEMMINCOPYOBJ = zgemm_incopy$(TSUFFIX).$(SUFFIX)
|
|
ZGEMMITCOPYOBJ = zgemm_itcopy$(TSUFFIX).$(SUFFIX)
|
|
ZGEMMONCOPYOBJ = zgemm_oncopy$(TSUFFIX).$(SUFFIX)
|
|
ZGEMMOTCOPYOBJ = zgemm_otcopy$(TSUFFIX).$(SUFFIX)
|
|
|
|
STRSMKERNEL_LN = trsm_kernel_LN_rvv_v1.c
|
|
STRSMKERNEL_LT = trsm_kernel_LT_rvv_v1.c
|
|
STRSMKERNEL_RN = trsm_kernel_RN_rvv_v1.c
|
|
STRSMKERNEL_RT = trsm_kernel_RT_rvv_v1.c
|
|
|
|
DTRSMKERNEL_LN = trsm_kernel_LN_rvv_v1.c
|
|
DTRSMKERNEL_LT = trsm_kernel_LT_rvv_v1.c
|
|
DTRSMKERNEL_RN = trsm_kernel_RN_rvv_v1.c
|
|
DTRSMKERNEL_RT = trsm_kernel_RT_rvv_v1.c
|
|
|
|
CTRSMKERNEL_LN = trsm_kernel_LN_rvv_v1.c
|
|
CTRSMKERNEL_LT = trsm_kernel_LT_rvv_v1.c
|
|
CTRSMKERNEL_RN = trsm_kernel_RN_rvv_v1.c
|
|
CTRSMKERNEL_RT = trsm_kernel_RT_rvv_v1.c
|
|
|
|
ZTRSMKERNEL_LN = trsm_kernel_LN_rvv_v1.c
|
|
ZTRSMKERNEL_LT = trsm_kernel_LT_rvv_v1.c
|
|
ZTRSMKERNEL_RN = trsm_kernel_RN_rvv_v1.c
|
|
ZTRSMKERNEL_RT = trsm_kernel_RT_rvv_v1.c
|
|
|
|
TRSMCOPYLN_M = trsm_lncopy_rvv_v1.c
|
|
TRSMCOPYLT_M = trsm_ltcopy_rvv_v1.c
|
|
TRSMCOPYUN_M = trsm_uncopy_rvv_v1.c
|
|
TRSMCOPYUT_M = trsm_utcopy_rvv_v1.c
|
|
|
|
ZTRSMCOPYLN_M = ztrsm_lncopy_rvv_v1.c
|
|
ZTRSMCOPYLT_M = ztrsm_ltcopy_rvv_v1.c
|
|
ZTRSMCOPYUN_M = ztrsm_uncopy_rvv_v1.c
|
|
ZTRSMCOPYUT_M = ztrsm_utcopy_rvv_v1.c
|
|
|
|
SSYMV_U_KERNEL = symv_U_rvv.c
|
|
SSYMV_L_KERNEL = symv_L_rvv.c
|
|
DSYMV_U_KERNEL = symv_U_rvv.c
|
|
DSYMV_L_KERNEL = symv_L_rvv.c
|
|
CSYMV_U_KERNEL = zsymv_U_rvv.c
|
|
CSYMV_L_KERNEL = zsymv_L_rvv.c
|
|
ZSYMV_U_KERNEL = zsymv_U_rvv.c
|
|
ZSYMV_L_KERNEL = zsymv_L_rvv.c
|
|
|
|
CHEMV_L_KERNEL = zhemv_LM_rvv.c
|
|
CHEMV_M_KERNEL = zhemv_LM_rvv.c
|
|
CHEMV_U_KERNEL = zhemv_UV_rvv.c
|
|
CHEMV_V_KERNEL = zhemv_UV_rvv.c
|
|
ZHEMV_L_KERNEL = zhemv_LM_rvv.c
|
|
ZHEMV_M_KERNEL = zhemv_LM_rvv.c
|
|
ZHEMV_U_KERNEL = zhemv_UV_rvv.c
|
|
ZHEMV_V_KERNEL = zhemv_UV_rvv.c
|
|
|
|
ZHEMMLTCOPY_M = zhemm_ltcopy_rvv_v1.c
|
|
ZHEMMUTCOPY_M = zhemm_utcopy_rvv_v1.c
|
|
|
|
CHEMMLTCOPY_M = zhemm_ltcopy_rvv_v1.c
|
|
CHEMMUTCOPY_M = zhemm_utcopy_rvv_v1.c
|
|
|
|
ZSYMMUCOPY_M = zsymm_ucopy_rvv_v1.c
|
|
ZSYMMLCOPY_M = zsymm_lcopy_rvv_v1.c
|
|
|
|
CSYMMUCOPY_M = zsymm_ucopy_rvv_v1.c
|
|
CSYMMLCOPY_M = zsymm_lcopy_rvv_v1.c
|
|
|
|
ZTRMMUNCOPY_M = ztrmm_uncopy_rvv_v1.c
|
|
ZTRMMLNCOPY_M = ztrmm_lncopy_rvv_v1.c
|
|
ZTRMMUTCOPY_M = ztrmm_utcopy_rvv_v1.c
|
|
ZTRMMLTCOPY_M = ztrmm_ltcopy_rvv_v1.c
|
|
|
|
CTRMMUNCOPY_M = ztrmm_uncopy_rvv_v1.c
|
|
CTRMMLNCOPY_M = ztrmm_lncopy_rvv_v1.c
|
|
CTRMMUTCOPY_M = ztrmm_utcopy_rvv_v1.c
|
|
CTRMMLTCOPY_M = ztrmm_ltcopy_rvv_v1.c
|
|
|
|
LSAME_KERNEL = ../generic/lsame.c
|
|
|
|
SCABS_KERNEL = ../generic/cabs.c
|
|
DCABS_KERNEL = ../generic/cabs.c
|
|
QCABS_KERNEL = ../generic/cabs.c
|
|
|
|
ifndef SGEMM_BETA
|
|
SGEMM_BETA = gemm_beta_rvv.c
|
|
endif
|
|
ifndef DGEMM_BETA
|
|
DGEMM_BETA = gemm_beta_rvv.c
|
|
endif
|
|
ifndef CGEMM_BETA
|
|
CGEMM_BETA = zgemm_beta_rvv.c
|
|
endif
|
|
ifndef ZGEMM_BETA
|
|
ZGEMM_BETA = zgemm_beta_rvv.c
|
|
endif
|