Skip to content

riscv64: wire TRSM, complex SYMV, and complex GEMM copy RVV kernels#5807

Open
mengzhuo wants to merge 1 commit into
OpenMathLib:developfrom
mengzhuo:no_gen
Open

riscv64: wire TRSM, complex SYMV, and complex GEMM copy RVV kernels#5807
mengzhuo wants to merge 1 commit into
OpenMathLib:developfrom
mengzhuo:no_gen

Conversation

@mengzhuo
Copy link
Copy Markdown

Wire existing RVV-optimized kernels into KERNEL.RISCV64_ZVL128B and KERNEL.RISCV64_ZVL256B that were already implemented but not referenced:

  • TRSM (S/D/C/Z, all 4 directions): replace ../generic/trsm_kernel_.c with trsm_kernel__rvv_v1.c
  • TRSM copy: add TRSMCOPY*M and ZTRSMCOPY*M variables using trsm*copy_rvv_v1.c and ztrsm*copy_rvv_v1.c
  • Complex SYMV (C/Z): replace ../generic/zsymv_k.c with zsymv_*_rvv.c
  • HEMV (C/Z): replace zhemv_vector.c with zhemv_rvv.c
  • Complex GEMM copy (C/Z): replace ../generic/zgemm_ncopy/tcopy with zgemm_ncopy_rvv_v1.c / zgemm_tcopy_rvv_v1.c

Generic fallback counts: ZVL256B 56->28, ZVL128B 63->47

Wire existing RVV-optimized kernels into KERNEL.RISCV64_ZVL128B and
KERNEL.RISCV64_ZVL256B that were already implemented but not referenced:

- TRSM (S/D/C/Z, all 4 directions): replace ../generic/trsm_kernel_*.c
  with trsm_kernel_*_rvv_v1.c
- TRSM copy: add TRSMCOPY*_M and ZTRSMCOPY*_M variables using
  trsm_*copy_rvv_v1.c and ztrsm_*copy_rvv_v1.c
- Complex SYMV (C/Z): replace ../generic/zsymv_k.c with zsymv_*_rvv.c
- HEMV (C/Z): replace zhemv_*_vector.c with zhemv_*_rvv.c
- Complex GEMM copy (C/Z): replace ../generic/zgemm_ncopy/tcopy with
  zgemm_ncopy_rvv_v1.c / zgemm_tcopy_rvv_v1.c

Generic fallback counts: ZVL256B 56->28, ZVL128B 63->47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant