"GPU programming enjoys enormous performance benefits, and yet as the shader programmer, it feels that there are few costs to pay for it."'nNot going to lie this one feels a bit of a stretch...'n(Vis-a-vis https://www.rfleury.com/p/multi-core-by-default)
-
"GPU programming enjoys enormous performance benefits, and yet as the shader programmer, it feels that there are few costs to pay for it."
Not going to lie this one feels a bit of a stretch...
(Vis-a-vis https://www.rfleury.com/p/multi-core-by-default)
-
"GPU programming enjoys enormous performance benefits, and yet as the shader programmer, it feels that there are few costs to pay for it."
Not going to lie this one feels a bit of a stretch...
(Vis-a-vis https://www.rfleury.com/p/multi-core-by-default)
One issue with things akin to shadertoy is that it's not exactly representative of how you write code for the GPU normally. It tends to overlook core aspects like work scheduling, and data access, and the requirements the model and hardware imposes on your code structure. In both CPU and GPU programming these differences are the hard parts, not how you deal with a trivially parallel problem. I feel like this article has been somewhat led astray on dealing with what is ultimately the easy part...
-
One issue with things akin to shadertoy is that it's not exactly representative of how you write code for the GPU normally. It tends to overlook core aspects like work scheduling, and data access, and the requirements the model and hardware imposes on your code structure. In both CPU and GPU programming these differences are the hard parts, not how you deal with a trivially parallel problem. I feel like this article has been somewhat led astray on dealing with what is ultimately the easy part...
The reason you can iterate easily in shadertoy is because the data model it's giving you access to is extremely limited. And so shaders tend to reconstruct their entire state per pixel per frame. That's fantastic for low iteration times, but it's not fast. Doing this on the CPU without any data model is immediately the worst case for parallel debugging, with or without a stack, because any job can access any data. Regular bindful shader programming has a lot more information about data access.
-
undefined oblomov@sociale.network shared this topic on