On Monday, 27 June 2016 at 18:58:25 UTC, Ola Fosheim Grøstad
wrote:
On Monday, 27 June 2016 at 18:23:11 UTC, default0 wrote:
Regarding C++ I found this to be a fun read:
http://yosefk.com/c++fqa/ :-)
A lot of it makes sense... C++ is what happens when you evolve,
evolve, evolve and evolve a language from a starting-point that
was not a high level language, desperately trying to hone it
into high level shoes... Those shoes will never fit perfectly,
obviously.
It gets even more expansive when you add inn compiler
extensions. For instance gcc/clang simd extensions is basically
taking in parts of OpenCL into C++. In order to figure out how
they work you have to read the OpenCL spec... I only found out
today that I can do "simd.even" and "simd.odd" to get even and
odd elements from a simd register in Clang... after
implementing it manually first. ;-/
OpenCL is for micro threading, not simd. OpenCL allows you to run
thousands of instances of the same function in parallel, in
either the cpu and/or the gpu.
SIMD or single instruction multiple data, is for instruction
level parallelism,aka vector add op that adds 4 floats to 4 other
floats in a single cpu instruction.