Any usable SIMD implementation?
Temtaime via Digitalmars-d
digitalmars-d at puremagic.com
Sun Apr 17 18:28:22 PDT 2016
On Monday, 18 April 2016 at 00:27:06 UTC, Joe Duarte wrote:
> On Tuesday, 5 April 2016 at 10:27:46 UTC, Walter Bright wrote:
>> Besides, I think it's a poor design to customize the app for
>> only one SIMD type. A better idea (I've repeated this ad
>> nauseum over the years) is to have n modules, one for each
>> supported SIMD type. Compile and link all of them in, then
>> detect the SIMD type at runtime and call the corresponding
>> module. (This is how the D array ops are currently
>> implemented.)
>
> There are many organizations in the world that are building
> software in-house, where such software is targeted to modern
> CPU SIMD types, most typically AVX/AVX2 and crypto instructions.
>
In addition it's COMPILER work, not programmer!
Compiler SHOULD be able to vectorize the code using SSE/AVX
depending on command line switch. Why i should write all these
merde ? Let compiler do its work.
Also compiler CAN generate multiple versions of one function
using different SIMD instructions : Intel C++ Compiler works this
way : it generates a few versions of a function and checks at
run-time CPU capabilities and executes the fastest one.
More information about the Digitalmars-d
mailing list