On Sat, 2015-12-26 at 19:57 +0000, Ilya Yaroshenko via Digitalmars-d- announce wrote: > Hi, > > I will write GEMM and GEMV families of BLAS for Phobos. > > Goals: > - code without assembler > - code based on SIMD instructions > - DMD/LDC/GDC support > - kernel based architecture like OpenBLAS > - 85-100% FLOPS comparing with OpenBLAS (100%) > - tiny generic code comparing with OpenBLAS > - ability to define user kernels > - allocators support. GEMM requires small internal allocations. > - @nogc nothrow pure template functions (depends on allocator) > - optional multithreaded > - ability to work with `Slice` multidimensional arrays when > stride between elements in vector is greater than 1. In common > BLAS matrix strides between rows or columns always equals 1.
Shouldn't to goal of a project like this be to be something that OpenBLAS isn't? Given D's ability to call C and C++ code, it is not clear to me that simply rewriting OpenBLAS in D has any goal for the D or BLAS communities per se. Doesn't stop it being a fun activity for the programmer, obviously, but unless there is something that isn't in OpenBLAS, I cannot see this ever being competition and so building a community around the project. Now if the threads/OpenCL/CUDA was front and centre so that a goal was to be Nx faster than OpenBLAS, that could be a goal worth standing behind. Not to mention full N-dimension vectors so that D could seriously compete against Numpy in the Python world. > Implementation details: > LDC all : very generic D/LLVM IR kernels. AVX/2/512/neon > support is out of the box. > DMD/GDC x86 : kernels for 8 XMM registers based on core.simd > DMD/GDC x86_64: kernels for 16 XMM registers based on core.simd > DMD/GDC other : generic kernels without SIMD instructions. > AVX/2/512 support can be added in the future. > > References: >  Anatomy of High-Performance Matrix Multiplication: > http://www.cs.utexas.edu/users/pingali/CS378/2008sp/papers/gotoPaper. > pdf >  OpenBLAS https://github.com/xianyi/OpenBLAS > > Happy New Year! > > Ilya -- Russel. ============================================================================= Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.win...@ekiga.net 41 Buckmaster Road m: +44 7770 465 077 xmpp: rus...@winder.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
Description: This is a digitally signed message part