auto vectorization notes

Bruce Carneal bcarneal at gmail.com
Sat Mar 28 06:56:14 UTC 2020


On Saturday, 28 March 2020 at 05:21:14 UTC, Crayo List wrote:
> On Monday, 23 March 2020 at 18:52:16 UTC, Bruce Carneal wrote:
>> [snip]
>> (on the downside you have to guard against compiler code-gen 
>> performance regressions)
>>
>
> auto vectorization is bad because you never know if your code 
> will get vectorized next time you make some change to it and 
> recompile.
> Just use : https://ispc.github.io/

Yes, that's a downside, you have to measure your performance 
sensitive code if you change it *or* change compilers or targets.

Explicit SIMD code, ispc or other, isn't as readable or 
composable or vanilla portable but it certainly is performance 
predictable.

I find SIMT code readability better than SIMD but a little worse 
than auto-vectorizable kernels.  Hugely better performance though 
for less effort than SIMD if your platform supports it.

Is anyone actively using dcompute (SIMT enabler)?  Unless I hear 
bad things I'll try it down the road as neither going back to 
CUDA nor "forward" to the SycL-verse appeals.






















More information about the Digitalmars-d-learn mailing list