Source

Branch

1/ @s_u_r_a

@AgileJebrim

Why?

2/ @AgileJebrim

Because they’re designed to be data parallel and work with GPUs from the start.
Because they don’t require integrating with an existing bloated library.

SPIR-V is just an incredibly simple and straightforward binary format. We write to it directly as an array of uint32s. You can even read the bytecode in a hex editor directly easily enough if you wanted. Think of it like Java bytecode; it’s portable across a wide range of hardware and vendors.

PTX unfortunately requires generating ASCII output to work with it, so a little more complicated but still nothing like linking to LLVM. It is good for accessing more low level control over NVIDIA GPUs.

We’re also creating our own IR that I suppose one could hypothetically target via code too. We’re doing it internally anyways until our visual editor is ready.