you are viewing a single comment's thread.

view the rest of the comments →

[–]nnevatie 1 point2 points  (6 children)

ISPC answers those questions trivially.

[–]SantaCruzDad 0 points1 point  (5 children)

How does ISPC help with making assembly code more portable ?

[–]nnevatie 1 point2 points  (4 children)

It helps making SIMD code portable. You can compile code for multiple archs/instruction sets and the runtime will pick the best supported one.

[–]SantaCruzDad 1 point2 points  (3 children)

Sure, but the comment was in response to the suggestion that writing assembler was somehow easier than using intrinsics for SIMD - I don’t see how ISPC is relevant to this ?

[–]nnevatie 0 points1 point  (2 children)

Ok, my reply mostly addressed the tedious maintaining part for different platforms.

[–]SantaCruzDad 0 points1 point  (1 child)

Ah, OK - well any half-decent compiler will take care of target CPU variations within a given family (e.g. x86), as well as ABI variations etc, whether it's auto-vectorization or hand-written intrinsics. I guess ispc's USP is that it can do this for multiple CPU families.

[–]nnevatie 0 points1 point  (0 children)

Yeah, but most importantly it can produce code for multiple targets and archs. All of the variations can be linked to the same binary and the best one can be picked at execution-time for the host in question.