Re: DCompute is now in the master branch of LDC

2017-05-29 Thread Nicholas Wilson via Digitalmars-d-announce

On Tuesday, 30 May 2017 at 02:46:12 UTC, Walter Bright wrote:

On 5/29/2017 6:10 PM, Nicholas Wilson wrote:
there are also GitHub topics [1] which I will also properly 
fill out. I just done a pass over the README.md


[1]: https://github.com/blog/2309-introducing-topics


Good. Making the content google-friendly is also extremely 
important. Back in the early daze of D, I knew that "D" was not 
google-able, so I was careful to always have the phrase "D 
programming language" somewhere in text about D, and I'd 
harangue others to do the same. Since google knows about "D" 
now, this is less important.


I suspect that this will have less of an effect dcompute as 
"dcompute" is likely to have a far greater signal to noise ratio 
than "D" in its infancy simply due to its frequency on the web, 
but I take your point.


I also plan on getting the documentation up to snuff because I 
know the effect that will have. I have experience learning with 
OpenCL (less successful, confusing documentation) and CUDA (more 
successful, coherent documentation). Yes there are other reasons 
as to the relative successes of OpenCL vs CUDA, but if we are 
trying to take marketshare from OpenCL and CUDA of both new and 
experienced users of heterogenous computing good documentation 
will go a long way.


Re: DCompute is now in the master branch of LDC

2017-05-29 Thread Walter Bright via Digitalmars-d-announce

On 5/29/2017 6:10 PM, Nicholas Wilson wrote:
there are also GitHub topics [1] which I will also properly fill out. I just 
done a pass over the README.md


[1]: https://github.com/blog/2309-introducing-topics


Good. Making the content google-friendly is also extremely important. Back in 
the early daze of D, I knew that "D" was not google-able, so I was careful to 
always have the phrase "D programming language" somewhere in text about D, and 
I'd harangue others to do the same. Since google knows about "D" now, this is 
less important.




Re: DCompute is now in the master branch of LDC

2017-05-29 Thread Nicholas Wilson via Digitalmars-d-announce

On Tuesday, 30 May 2017 at 00:12:51 UTC, Walter Bright wrote:

On 5/29/2017 3:52 PM, Nicholas Wilson wrote:
How about calling it D-GPU ? I bet you'd get a lot more 
clicks on a name like that.


Thanks, I called it dcompute because naming things is right up 
there with cache invalidation.
Calling it D-GPU would be misleading because there should be 
no reason you can't use the generated SPIRV on DSPs, FPGAs and 
whatever else there is an OpenCL runtime for.


From https://github.com/libmir/dcompute :

"This project is a set of libraries designed to work with a 
modified ldc to enable native execution of D on GPUs (and other 
more exotic target of OpenCL, hereafter just 'GPUs')."




OK, I should probably reword that.



The clicks should be rectifiable with a good title and 
description.


Many years ago, D immutable types were called 'invariant'. 
People always asked what invariant meant, and we'd reply 
"invariant types are immutable" and then they'd understand.


After going through that for the thousandth time, we renamed 
'invariant' to 'immutable', and the questions ceased.


The trouble is, all I usually see is simply "DCompute". I have 
to click on a link or do some searching to see what it is for. 
There's nothing to suggest that it's for me if I'm interested 
in using D for FPGA programming. Google isn't going to index it 
under "FPGA".


I'm sorry about being pushy about this, but I really want 
DCompute to succeed, and the current name will impair this. 
Having the right name and branding is extremely important.


A descriptive title could be:

"D-GPU: native D code running on GPUs, FPGAs and DSPs"


Well the GitHub project description is "Native execution of D on 
GPUs" I don't want to do false advertising for features that I 
don't have yet but I will update to reflect this, I'll be 
surprised if google doesn't pick up on 'dlang fpga' along with 
DHDL.


there are also GitHub topics [1] which I will also properly fill 
out. I just done a pass over the README.md


[1]: https://github.com/blog/2309-introducing-topics




Re: DCompute is now in the master branch of LDC

2017-05-29 Thread Walter Bright via Digitalmars-d-announce

On 5/29/2017 3:52 PM, Nicholas Wilson wrote:
How about calling it D-GPU ? I bet you'd get a lot more clicks on a name like 
that.


Thanks, I called it dcompute because naming things is right up there with cache 
invalidation.
Calling it D-GPU would be misleading because there should be no reason you can't 
use the generated SPIRV on DSPs, FPGAs and whatever else there is an OpenCL 
runtime for.


From https://github.com/libmir/dcompute :

"This project is a set of libraries designed to work with a modified ldc to 
enable native execution of D on GPUs (and other more exotic target of OpenCL, 
hereafter just 'GPUs')."




The clicks should be rectifiable with a good title and description.


Many years ago, D immutable types were called 'invariant'. People always asked 
what invariant meant, and we'd reply "invariant types are immutable" and then 
they'd understand.


After going through that for the thousandth time, we renamed 'invariant' to 
'immutable', and the questions ceased.


The trouble is, all I usually see is simply "DCompute". I have to click on a 
link or do some searching to see what it is for. There's nothing to suggest that 
it's for me if I'm interested in using D for FPGA programming. Google isn't 
going to index it under "FPGA".


I'm sorry about being pushy about this, but I really want DCompute to succeed, 
and the current name will impair this. Having the right name and branding is 
extremely important.


A descriptive title could be:

"D-GPU: native D code running on GPUs, FPGAs and DSPs"



Re: "Programming in D" is up-to-date

2017-05-29 Thread Ali Çehreli via Digitalmars-d-announce

On 05/29/2017 03:06 PM, Wulfklaue wrote:

> The book is great ( got it recently ) but there are some things that may
> make be better.

Thank you for your feedback. :)

> 87 in memory management the
> experimental unsafe memory management is not written about.

Yes, there are things I would like to add (and change) but it's not 
clear whether I will ever be in a state of mind to carry on with such a 
task. It felt very natural while it lasted. I'm not sure anymore.


> But if you
> want to make follow up chapters, it requires people to rebuy the
> newer book.

Yes and no, because all the material would always be available anyway.

> Is it maybe not better to split the book into several more smaller
> versions? Making it more easy to carry or extend? Like Basic 1, Advanced
> 2, ...

Makes sense and others had suggested that as well. One complication 
would be different cover design for each book. (Even if not the general 
concept, the book cover image is for that specific number of pages (with 
some leeway)).


> And a last one: coloring... My vision is not exactly the best and i
> noticed that colored code is much more easy to read in books. If there
> the possibility for a colored ( more expensive ) version in the future?

There was no option of color printing when I considered printers (or 
perhaps it was too expensive to even consider; I don't remember). 
However, if you can live with the pdf version of the book, the code 
samples are in color:


  http://ddili.org/ders/d.en/Programming_in_D.pdf

It's the same content and format as the printed book, except it is 
generated from a different CSS file.


Ali



Re: DCompute is now in the master branch of LDC

2017-05-29 Thread Nicholas Wilson via Digitalmars-d-announce

On Monday, 29 May 2017 at 20:36:26 UTC, Walter Bright wrote:

On 5/29/2017 2:33 AM, Nicholas Wilson wrote:

Hi all,

I'm happy to announce that the dcompute modifications to LDC 
are now in the master branch of LDC. The dcompute extensions 
require LLVM 3.9.1 or greater for NVPTX/CUDA and my fork[1] of 
LLVM for SPIRV.


Someone (sorry I've forgotten who!) at dconf said they'd make 
a docker image of the dependencies (ldc llvm), if you're 
reading please let me know! Or if someone else wants to do it 
thats good too.


I'm still quite busy until July (honours thesis), but if 
anyone wanting to contribute to either the runtime stuff 
[2](all D), LDC [3] or LLVM [1](mostly C++) I'm happy to 
answer any questions, providing testing and performance 
feedback on diverse systems is also appreciated. Feel free to 
drop a line at https://gitter.im/libmir/public


[1]: https://github.com/thewilsonator/llvm/tree/compute
[2]: https://github.com/libmir/dcompute
[3]: https://github.com/ldc-developers/ldc


Congratulations! This is great work, and a great contribution.

May I suggest, however, that the name DCompute is a bit 
generic, and provides no hint that it provides GPU programming 
for D.


How about calling it D-GPU ? I bet you'd get a lot more clicks 
on a name like that.


Thanks, I called it dcompute because naming things is right up 
there with cache invalidation.
Calling it D-GPU would be misleading because there should be no 
reason you can't use the generated SPIRV on DSPs, FPGAs and 
whatever else there is an OpenCL runtime for.


The clicks should be rectifiable with a good title and 
description.


Re: "Programming in D" is up-to-date

2017-05-29 Thread Wulfklaue via Digitalmars-d-announce

Hi Ali,

The book is great ( got it recently ) but there are some things 
that may make be better.


I found the book a bit unwieldy ( hardcover ) version. With its 
700+ pages, its kind of hard to take anywhere. When i take it to 
work and back home, its like carrying a brick with me :)


Another issue that i noticed is that the current format makes it 
impossible to extend the book. For example, 87 in memory 
management the experimental unsafe memory management is not 
written about.  But if you want to make follow up chapters, it 
requires people to rebuy the

newer book.

Is it maybe not better to split the book into several more 
smaller versions? Making it more easy to carry or extend? Like 
Basic 1, Advanced 2, ...


And a last one: coloring... My vision is not exactly the best and 
i noticed that colored code is much more easy to read in books. 
If there the possibility for a colored ( more expensive ) version 
in the future?


Re: DCompute is now in the master branch of LDC

2017-05-29 Thread rikki cattermole via Digitalmars-d-announce

On 29/05/2017 10:52 AM, Nicholas Wilson wrote:

On Monday, 29 May 2017 at 09:39:53 UTC, rikki cattermole wrote:

On 29/05/2017 10:33 AM, Nicholas Wilson wrote:

Hi all,

I'm happy to announce that the dcompute modifications to LDC are now 
in the master branch of LDC. The dcompute extensions require LLVM 
3.9.1 or greater for NVPTX/CUDA and my fork[1] of LLVM for SPIRV.


Someone (sorry I've forgotten who!) at dconf said they'd make a 
docker image of the dependencies (ldc llvm), if you're reading please 
let me know! Or if someone else wants to do it thats good too.


I'm still quite busy until July (honours thesis), but if anyone 
wanting to contribute to either the runtime stuff [2](all D), LDC [3] 
or LLVM [1](mostly C++) I'm happy to answer any questions, providing 
testing and performance feedback on diverse systems is also 
appreciated. Feel free to drop a line at https://gitter.im/libmir/public


[1]: https://github.com/thewilsonator/llvm/tree/compute
[2]: https://github.com/libmir/dcompute
[3]: https://github.com/ldc-developers/ldc


Can someone please write up a post e.g. for the D blog to act as the 
official announcement (with a quick tutorial)? That way we can 
announce it to the wider programming community.


I promised Mike a blog post at dconf, but I'd prefer this to be done 
after I hand in my thesis, so that I can:

a) concentrate on it and
b) keep the ball rolling after it is announced.

I will be working for Laeeth next semester with some time reserved for 
dcompute and much more time available as I'll only be doing one (or 
possibly two units, with a lot of time waiting for tanks to reach steady 
state). Plus I think if people start to get familiar with the project 
then the efforts will be much more coordinated once the announcement is 
made and therefore by perception more attractive to potential users not 
already familiar with D.


Ok so announce only within D community atm. Good to know :)



Re: DCompute is now in the master branch of LDC

2017-05-29 Thread Nicholas Wilson via Digitalmars-d-announce

On Monday, 29 May 2017 at 09:39:53 UTC, rikki cattermole wrote:

On 29/05/2017 10:33 AM, Nicholas Wilson wrote:

Hi all,

I'm happy to announce that the dcompute modifications to LDC 
are now in the master branch of LDC. The dcompute extensions 
require LLVM 3.9.1 or greater for NVPTX/CUDA and my fork[1] of 
LLVM for SPIRV.


Someone (sorry I've forgotten who!) at dconf said they'd make 
a docker image of the dependencies (ldc llvm), if you're 
reading please let me know! Or if someone else wants to do it 
thats good too.


I'm still quite busy until July (honours thesis), but if 
anyone wanting to contribute to either the runtime stuff 
[2](all D), LDC [3] or LLVM [1](mostly C++) I'm happy to 
answer any questions, providing testing and performance 
feedback on diverse systems is also appreciated. Feel free to 
drop a line at https://gitter.im/libmir/public


[1]: https://github.com/thewilsonator/llvm/tree/compute
[2]: https://github.com/libmir/dcompute
[3]: https://github.com/ldc-developers/ldc


Can someone please write up a post e.g. for the D blog to act 
as the official announcement (with a quick tutorial)? That way 
we can announce it to the wider programming community.


I promised Mike a blog post at dconf, but I'd prefer this to be 
done after I hand in my thesis, so that I can:

a) concentrate on it and
b) keep the ball rolling after it is announced.

I will be working for Laeeth next semester with some time 
reserved for dcompute and much more time available as I'll only 
be doing one (or possibly two units, with a lot of time waiting 
for tanks to reach steady state). Plus I think if people start to 
get familiar with the project then the efforts will be much more 
coordinated once the announcement is made and therefore by 
perception more attractive to potential users not already 
familiar with D.




Re: DCompute is now in the master branch of LDC

2017-05-29 Thread rikki cattermole via Digitalmars-d-announce

On 29/05/2017 10:33 AM, Nicholas Wilson wrote:

Hi all,

I'm happy to announce that the dcompute modifications to LDC are now in 
the master branch of LDC. The dcompute extensions require LLVM 3.9.1 or 
greater for NVPTX/CUDA and my fork[1] of LLVM for SPIRV.


Someone (sorry I've forgotten who!) at dconf said they'd make a docker 
image of the dependencies (ldc llvm), if you're reading please let me 
know! Or if someone else wants to do it thats good too.


I'm still quite busy until July (honours thesis), but if anyone wanting 
to contribute to either the runtime stuff [2](all D), LDC [3] or LLVM 
[1](mostly C++) I'm happy to answer any questions, providing testing and 
performance feedback on diverse systems is also appreciated. Feel free 
to drop a line at https://gitter.im/libmir/public


[1]: https://github.com/thewilsonator/llvm/tree/compute
[2]: https://github.com/libmir/dcompute
[3]: https://github.com/ldc-developers/ldc


Can someone please write up a post e.g. for the D blog to act as the 
official announcement (with a quick tutorial)? That way we can announce 
it to the wider programming community.


DCompute is now in the master branch of LDC

2017-05-29 Thread Nicholas Wilson via Digitalmars-d-announce

Hi all,

I'm happy to announce that the dcompute modifications to LDC are 
now in the master branch of LDC. The dcompute extensions require 
LLVM 3.9.1 or greater for NVPTX/CUDA and my fork[1] of LLVM for 
SPIRV.


Someone (sorry I've forgotten who!) at dconf said they'd make a 
docker image of the dependencies (ldc llvm), if you're reading 
please let me know! Or if someone else wants to do it thats good 
too.


I'm still quite busy until July (honours thesis), but if anyone 
wanting to contribute to either the runtime stuff [2](all D), LDC 
[3] or LLVM [1](mostly C++) I'm happy to answer any questions, 
providing testing and performance feedback on diverse systems is 
also appreciated. Feel free to drop a line at 
https://gitter.im/libmir/public


[1]: https://github.com/thewilsonator/llvm/tree/compute
[2]: https://github.com/libmir/dcompute
[3]: https://github.com/ldc-developers/ldc