• 0 Posts
  • 14 Comments
Joined 1 year ago
cake
Cake day: July 13th, 2023

help-circle
  • How I wish CUDA was an open standard. We use it at work, and the tooling is a constant pain. Being almost entirely controlled by NVIDIA, there’s no alternative toolset, and that means little pressure to make it better. Clang being able to compile CUDA code is an encouraging first step, meaning we could possibly do without nvcc. Sadly the CMake support for it on Windows has not yet landed. And that still leaves the SDK and runtime entirely in NVIDIA’s hands.

    What irritates me the most about this SDK is the versioning and compatibility madness. Especially on Windows, where the SDK is very picky about the compiler/STL version, and hence won’t allow us to turn on C++20 for CUDA code. I also could never get my head around the backward/forward compatibility between SDK and hardware (let alone drivers).

    And the bloat. So many GBs of pre-compiled GPU code for seemingly all possible architectures in the runtime (including cudnn, cublas, etc). I’d be curious about the actual number, but we probably use 1% of this code, yet we have to ship the whole thing, all the time.

    If CPU vendors were able to come up with standard architectures, why can’t GPU vendors? So much wasted time, effort, energy, bandwidth, because of this.

    How do you people manage this?










  • I second this. I lead a team of engineers, and to us the main dividing line between senior and not senior is if you’re able to take on a project and lead it autonomously. I.e., you’ve gone past the stage where all you do is take on the next ticket in your task tracker; you have an awareness and understanding of the bigger picture, which allows you to create tickets on your own and select the most appropriate thing to work on next. The lead (me) is still there to help prioritize, fetch requirements, unblock things, etc, but it’s fairly light touch management.

    (Edit: my job title is Principal Software Engineer)