←back to thread

80 points homarp | 3 comments | | HN request time: 0.21s | source
Show context
almostgotcaught ◴[] No.44610376[source]
I'm sorry this is a low brow comment but this is the dumbest thing you can do in this space:

> Unit (thread in CUDA, invocation in Vulkan/Wgpu): the smallest execution entity performing computations.

> Plane (warp in CUDA, subgroup in Vulkan/Wgpu): a group of (typically 32) units executing in lockstep and able to share data efficiently through registers.

> Cube (thread block in CUDA, workgroup in Vulkan/Wgpu): a group of units that execute on the same SM, sharing memory and able to synchronize

It's already bad enough that the vendors themselves insisted on different names but why in the bejesus would you rename these concepts and diverge from literally all existing naming conventions when you're providing middleware. Ie when using your tool I'm still going to reference NVIDIA's or AMD's docs to understand how the hardware actually works. Like do you really think otherwise - that your thing is gonna be end of the line???

FYI the word warp isn't random techno babble but is actually a very clever pun that actually fits very well conceptually:

https://en.m.wikipedia.org/wiki/Warp_and_weft

replies(2): >>44610465 #>>44614627 #
nathanielsimard ◴[] No.44610465[source]
Using the naming from one of the existing API would put too much bias towards that API. It started as a WebGPU project early on, but some features are not present so mixing terms wasn't ideal. We're also working on extending CubeCL to CPU, so we want terms not only tied to the GPU word.
replies(2): >>44610540 #>>44610637 #
1. sroussey ◴[] No.44610637[source]
Why unit instead of point?

Unit, plane (as vs train), and cube?

Or point, plane, cube (1d, 2d, 3d)?

replies(2): >>44610677 #>>44611193 #
2. nathanielsimard ◴[] No.44610677[source]
I don't recall the reason why, point is a valid name.
3. kevindamm ◴[] No.44611193[source]
Actually, points are zero dimensional, lines are one dimensional.