68 points nonmaskable 11 hours ago 16 comments
the__alchemist 45 minutes ago | parent
Note: Cuda-oxide is similar to Cudarc's host component, but uses a rust-style kernel dialect. Advantage: Share structs between host and device. Disadvantage: Trading standard Cuda kernels for a new, WIP dialect.
I haven't tried the tile API yet; looking forward to it.
The last time I checked, Cuda Oxide was Linux only, and required Async; these are why I haven't tried it yet.
embedding-shape 30 minutes ago | parent
Seems more ergonomic in general though, both approaches they share, compared to cudarc, and less build infrastructure and fiddling with environments, which is great.
dllu 43 minutes ago | parent
jacobgorm 10 minutes ago | parent
rvz 34 minutes ago | parent
Secondly, When an issue occurs with a kernel or you want to write your own custom kernel in Rust, now we need to diagnose if the problem came from either cuda-oxide (SIMT), Rust's side, CUDA or Tile (If you decide to choose the Tile track).
Another dependency into the list and course everything is open source except CUDA itself. So any issue that happens on the CUDA level, you are forced to wait for them to fix it.
LarsDu88 21 minutes ago | parent
impulser_ 16 minutes ago | parent
nicebyte 19 minutes ago | parent
jacobgorm 11 minutes ago | parent
The best way to program GPUs is face up to the reality that they are not the same machine as the CPU, write your kernels in separate files, and launch them manually, like in Metal, OpenCL, and D3D12, etc. These days we even have DSLs like Triton that make kernel writing much more ergonomic than anything you would hope to achieve in Rust.
bigyabai 6 minutes ago | parent
manyatoms 5 minutes ago | parent