Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions Changelog.txt
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,9 @@ x86_64:

wasm:
- added optimized kernels for STRSM and DTRSM
- added a 4x4 WASM SIMD128 GEMM microkernel for SGEMM/DGEMM with matching
4-wide packing and TRMM, using relaxed SIMD madd in the inner loop
- gated leftover WASM TRSM call counters behind OPENBLAS_WASM_TRSM_PROFILE

====================================================================
Version 0.3.32
Expand Down
2 changes: 1 addition & 1 deletion Makefile.wasm
Original file line number Diff line number Diff line change
@@ -1 +1 @@
CCOMMON_OPT += -msimd128
CCOMMON_OPT += -msimd128 -mrelaxed-simd
10 changes: 10 additions & 0 deletions kernel/wasm/KERNEL
Original file line number Diff line number Diff line change
Expand Up @@ -95,10 +95,20 @@ DGEMVTKERNEL = ../riscv64/gemv_t.c
CGEMVTKERNEL = ../riscv64/zgemv_t.c
ZGEMVTKERNEL = ../riscv64/zgemv_t.c

# KERNEL.$(TARGET_CORE) is included first; keep its TRMM width if set.
# Unroll-4 GEMM packing uses trmm_*copy_4, which is wrong with a 2x2 kernel.
ifndef STRMMKERNEL
STRMMKERNEL = ../generic/trmmkernel_2x2.c
endif
ifndef DTRMMKERNEL
DTRMMKERNEL = ../generic/trmmkernel_2x2.c
endif
ifndef CTRMMKERNEL
CTRMMKERNEL = ../generic/ztrmmkernel_2x2.c
endif
ifndef ZTRMMKERNEL
ZTRMMKERNEL = ../generic/ztrmmkernel_2x2.c
endif

ifndef SGEMMKERNEL
SGEMMKERNEL = ../generic/gemmkernel_2x2.c
Expand Down
16 changes: 8 additions & 8 deletions kernel/wasm/KERNEL.WASM128_GENERIC
Original file line number Diff line number Diff line change
Expand Up @@ -95,20 +95,20 @@ DGEMVTKERNEL = ../riscv64/gemv_t.c
CGEMVTKERNEL = ../riscv64/zgemv_t.c
ZGEMVTKERNEL = ../riscv64/zgemv_t.c

STRMMKERNEL = ../generic/trmmkernel_2x2.c
DTRMMKERNEL = ../generic/trmmkernel_2x2.c
STRMMKERNEL = ../generic/trmmkernel_4x4.c
DTRMMKERNEL = ../generic/trmmkernel_4x4.c
CTRMMKERNEL = ../generic/ztrmmkernel_2x2.c
ZTRMMKERNEL = ../generic/ztrmmkernel_2x2.c

SGEMMKERNEL = gemmkernel_wasm128.c
SGEMMONCOPY = ../generic/gemm_ncopy_2.c
SGEMMOTCOPY = ../generic/gemm_tcopy_2.c
SGEMMKERNEL = gemmkernel_4x4_wasm128.c
SGEMMONCOPY = ../generic/gemm_ncopy_4.c
SGEMMOTCOPY = ../generic/gemm_tcopy_4.c
SGEMMONCOPYOBJ = sgemm_oncopy$(TSUFFIX).$(SUFFIX)
SGEMMOTCOPYOBJ = sgemm_otcopy$(TSUFFIX).$(SUFFIX)

DGEMMKERNEL = gemmkernel_wasm128.c
DGEMMONCOPY = ../generic/gemm_ncopy_2.c
DGEMMOTCOPY = ../generic/gemm_tcopy_2.c
DGEMMKERNEL = gemmkernel_4x4_wasm128.c
DGEMMONCOPY = ../generic/gemm_ncopy_4.c
DGEMMOTCOPY = ../generic/gemm_tcopy_4.c
DGEMMONCOPYOBJ = dgemm_oncopy$(TSUFFIX).$(SUFFIX)
DGEMMOTCOPYOBJ = dgemm_otcopy$(TSUFFIX).$(SUFFIX)

Expand Down
Loading
Loading