2016Q1: std.blas
Russel Winder via Digitalmars-d-announce
digitalmars-d-announce at puremagic.com
Sun Dec 27 02:28:53 PST 2015
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:
> [1] Anatomy of High-Performance Matrix Multiplication:
> http://www.cs.utexas.edu/users/pingali/CS378/2008sp/papers/gotoPaper.
> pdf
> [2] OpenBLAS https://github.com/xianyi/OpenBLAS
>
> Happy New Year!
>
> Ilya
--
Russel.
=============================================================================
Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.winder at ekiga.net
41 Buckmaster Road m: +44 7770 465 077 xmpp: russel at winder.org.uk
London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: This is a digitally signed message part
URL: <http://lists.puremagic.com/pipermail/digitalmars-d-announce/attachments/20151227/897eaf25/attachment.sig>
More information about the Digitalmars-d-announce
mailing list