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