You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
K1 remainder: float32 kernels, Dot1D and the dot inside GEMM, Maximum/Minimum move to go-simd/floats #98
Tracking issue for the part of K1 of go-scikit/roadmap#27 (docs/performance-campaign.md, section 4.3) that #97 (v0.37.0) did not move into go-simd/floats. Each is a kernel go-ndarray keeps privately; the rule is that a kernel lives once, in the lowest library every user can import.
float32 elementwise: Bin32 (add32/sub32/mul32/div32: SSE2 on amd64, NEON on arm64, VSX, LSX, RVV, vector facility), Sqrt32 (internal/kernels/bin32.go)
float32 extrema Max32/Min32 (extrema32*.go), with the signed-zero contract of go-simd/floats (issue filed there)
AddBlocks8F32, the eight-accumulator pairwise block of the float32 sum (blocks8*.go, used by typed.go's pairwise sum)
Dot1D / Dot1DP, and the dot inside GEMM/MatVecP (dotFMA, gemm_amd64.go): floats.Dot is FMA and lane-blocked like it; the change needs the tolerance its tests use and a measurement against the BLAS-backed np.dot
Maximum/Minimum (pairwise, NaN-propagating; scalar Go in ndarray today)
the ppc64le, loong64, riscv64 and s390x float64 kernels (see the go-simd/floats issue on porting them with NumPy's order)
then delete ndarray's copies and its dead sum_<arch>.s; GEMM stays here (campaign rule: every user of dense matrix products already imports ndarray)
Activity