Nvidia announces native GPU programming in Rust

(developer.nvidia.com)

93 points | by nonmaskable 12 hours ago

13 comments

  • claiir 1 hour ago
    > The launch is checked rather than trusted.

    Damn even Nvidia is putting out fully Claude-written articles.

    • bayindirh 23 minutes ago
      That's actually a magnificent observation. This is not only an indication of a keen eye, but a trained brilliant mind as well.
      • hitekker 17 minutes ago
        You’re absolutely right!
    • keybrd-intrrpt 13 minutes ago
      > even Nvidia

      Why "even Nvidia"?

      They are fully behind using AI for basically everything.

      What's next? "Damn, even McDonald's is putting out unhealthy food"

      • keithnz 10 minutes ago
        they even do burgers!
    • mahboi 24 minutes ago
      Thanks, saved me a few minutes
    • manyatoms 33 minutes ago
      not to worry, they have an 'AI generated summary' box too
      • greenavocado 17 minutes ago
        Its a recursive summarization pyramid
        • pizzafeelsright 3 minutes ago
          This thread flags an honest assessment of AI signal detection.
  • dllu 1 hour ago
    Since NVIDIA owns huggingface now and huggingface has the excellent Candle [1] crate for inference on Rust, this seems like a good step towards nice native Rust kernels.

    [1] https://github.com/huggingface/candle

    • jacobgorm 38 minutes ago
      Nobody cares if kernels are written in Rust. Kernels were meant to be written in C, but if you want to go more high-level try Triton or a similar DSL that nicely abstract tile sizes etc.
      • keithnz 6 minutes ago
        kernels aren't meant to be written by any defined language. C is just a traditionally good default language that took over from assembly. No particular reason we have to stick with C.
      • cpill 15 minutes ago
        oh no no no, this is going to break the CPP hold on AI and game dev.
  • jacobgorm 39 minutes ago
    I strongly dislike CUDA. Once you have allowed that proprietary cr*p into your C++ codebase, it is very hard to get rid, and you end up with code that is either tied to a single vendor or an #ifdef hell, probably both.

    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.

    • fg137 17 minutes ago
      > Once you have allowed that proprietary cr*p into your C++ codebase

      People have been doing that all the time for every kind of codebase. It's just part of the business. I don't see how it's worth having any emotions or opinions about it. Seems like you are wasting your energy.

      Are win32 APIs proprietary? So you decide to use them, use a wrapper/UI framework, or don't develop for Windows. Easy choice.

      Developing for embedded devices? So you read the manufacturers manual and implement based on the spec, use some sort of HAL if they are available, or you don't have a job. Even simpler.

      • jacobgorm 4 minutes ago
        CUDA is not an API, CUDA is a language, so you cannot make that comparison.
    • pavon 31 minutes ago
      > 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

      Isn't that how CUDA code is normally written?

      • jacobgorm 3 minutes ago
        No. CUDA allows you to write all the code in a single file, and uses a preprocessor to split it back out and pass it through separate compilers, one for host and one for device.
    • melodyogonna 29 minutes ago
      You could also use Mojo, one language for all targets.
      • carefree-bob 29 minutes ago
        I began to lose interest after the acquisition. Have you been following along, are they still going to open source it?
        • ecl3ctic 21 minutes ago
          The Mojo compiler has been open source for over a month now.

          And the Mojo standard library has been open source for over a year.

          It’s all open source. Go check it out!

        • YuechenLi 24 minutes ago
          I thought they already did and released the compiler source code under Apache 2.0.
    • cpill 12 minutes ago
      yeah, just write a stub/wrapper around it and abstract. it's the classic coupling problem. nothing to do with CUDA
    • bigyabai 34 minutes ago
      Is this satire? D3D12 and Metal aren't any less proprietary than CUDA.
  • bt1a 3 minutes ago
    Will it then be possible to query TJunc hotspot temps on linux?
  • LarsDu88 49 minutes ago
    In this age of LLM written everything which has softly killed my motivation for learning Rust somewhat, this has revived my interest if not only for the fact the LLMs haven't yet been trained on this yet!
    • w4yai 26 minutes ago
      And what prevent you exactly ?

      There were humans far superior than you for writting Rust before LLM, now there's a LLM. The only difference is price and time execution.

      You get an awesome teacher (LLM) ready to answer all your questions about Rust.

      And you still find excuses not to learn it ?

      At some point, just realize you've been lazy to learn it and LLMs are just an excuse.

      • afavour 2 minutes ago
        I think OP’s point is that the payoff in learning a new language has diminished in this AI era. You can call that lazy, I’d consider it smart to consider whether you could be doing other, better, things with your time.
    • impulser_ 44 minutes ago
      LLM don't need to be trained in a library to use it well. It's just Rust which they know well.
  • mococa 1 minute ago
    The world is unsafe
  • mococa 1 minute ago
    AI slop article, how can I trust on this?
  • manyatoms 33 minutes ago
    How does this compare to vectorware? (https://www.vectorware.com/blog/)
  • the__alchemist 1 hour ago
    I'm looking forward to trying these when they stabilize! I currently use WGPU for graphics, and cudarc for CUDA.

    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 58 minutes ago
      cudarc been great for me, because it's easy to look up existing examples and references, and it maps 1-to-1 with what I see. I'm already having a tough time with CUDA itself, a dialect of it makes a tad harder to rely on previous work.

      Seems more ergonomic in general though, both approaches they share, compared to cudarc, and less build infrastructure and fiddling with environments, which is great.

  • nicebyte 47 minutes ago
    what this article tells me is that no one at Nvidia actually cares about this project whatsoever. otherwise, they would have had a person actually write the announcement.
  • rvz 1 hour ago
    First of all, this is a pre-1.0 release that requires a nightly Rust compiler (if you choose the SIMT track with cuda-oxide) so that one is going to be unstable software.

    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.

  • nonmaskable 12 hours ago
    [dead]
  • ReshamJoshi 11 hours ago
    [dead]