Required DMD changes for Mir and few thoughts about D future

Laeeth Isharc via Digitalmars-d digitalmars-d at puremagic.com
Mon Sep 26 19:36:49 PDT 2016


On Tuesday, 27 September 2016 at 01:55:17 UTC, Nicholas Wilson 
wrote:
> On Monday, 26 September 2016 at 22:34:59 UTC, Andrei 
> Alexandrescu wrote:
>> On 9/26/16 10:11 PM, Ilya Yaroshenko wrote:
>>> A precompiled library based on top of Mir GLAS can be used 
>>> with DMD.
>>
>> That would work out as long as interaction is seamless. Please 
>> advise. Overall: I think Ilya's work can make a real 
>> difference for D, and we can't afford it to not work with the 
>> reference implementation. -- Andrei
>
> Mir will be (optionally) integrated with dcompute (once it is 
> ready)
> and dcompute CANNOT be compiled at all by dmd, although I 
> suppose
> you could use dmd for rapid development cycle, but you would 
> have to
> make dmd only figure out the .mangleof of the kernel (as the 
> .mangleof
> is required for the library-side API bashing magic) and not try 
> to do any
> semantic analysis or compilation, as it would fail horribly.

Can dcompute even be compiled by stock ldc?  If so, you should 
change the documents as code.dlang.org suggests otherwise.

As I understand it dcompute is a GPU library.   Not everyone will 
want to or need GPU for doing work with matrices,  so even 
if/when dcompute can be compiled by stock ldc, I wonder if it 
makes sense to prevent Mir being compiled without the dependency. 
   You say it us optional,  but then the rest of your message when 
read quickly almost suggests it's difficult not to include it.

The emphasis is that mir is faster than openblas,  which is 
great,  and natural as a library author to be proud of.   I guess 
to displace other options in other languages you will also need 
to be faster than any other sensible choices,  including Blaze 
(and I don't know if this is yet the case).   It's a tough sell 
persuading the Julia and Rust guys to use your library instead,  
because people aren't completely rational about languages,  and 
it's almost an admission of defeat for them to adopt your 
solution permanently (more likely in my view us they try to use 
your tricks to improve their own performance) - it would need to 
be a lot better,  is my guess.

Whatever the outcome there is, the emphasis in superior 
performance isn't the only one that users will have.   If you 
want to do matrix work in D, then having a sensible native 
solution is much easier - speed is nice,  but mostly about ease 
of use and reduction in complexity and context switching.   Most 
people are not at the frontier of performance needs,  so this 
point applies to many potential users, not a minority.




More information about the Digitalmars-d mailing list