4 ms·
https://github.com/Maratyszcza/NNPACK/blob/master/src/x86_64-fma/blas/sgemm.py https://github.com/Maratyszcza/NNPACK/blob/master/src/x86_64... (from https://gi
by ajtulloch 10y ago
https://github.com/Maratyszcza/NNPACK/blob/master/src/x86_64-fma/blas/sgemm.py https://github.com/Maratyszcza/NNPACK/blob/master/src/x86_64...
(from https://github.com/Maratyszcza/NNPACK https://github.com/Maratyszcza/NNPACK) is also a pretty reasonable AVX2 GEMM implementation written in a Python assembler, it's a bit easier to follow than the OpenBLAS kernels and has very reasonable performance vs OpenBLAS/MKL.
I second the guidance to just use a BLAS library. I'd guess you'd see a 2-10x speedup at least. It looks like you're only implementing a classical MLP library (which is fine for learning, but not the best choice for something like this, integrating VW into Redis would be a much better choice IMO).
- genericpseudo 10y agoVW is the business. Strongly recommended.