4 ms·
Would you (or your friend) be able to drop any good CUDA learning resources? I'd like to be worth my weight in gold...
by bbkane 2y ago
Would you (or your friend) be able to drop any good CUDA learning resources? I'd like to be worth my weight in gold...
- throwaway81523 2y agoA working knowledge of C++, plus a bit of online reading about CUDA and the NVidia GPU architecture, plus studying the LCZero chess engine source code (the CUDA neural net part, I mean) seems like enough to get started. I did that and felt like I could contribute to that code, at least at a newbie level, given the hardware and build tools. At least in the pre-NNUE era, the code was pretty readable. I didn't pursue it though. Of course becoming "really good" is a lot different and like anything else, it presumably takes a lot of callused fingertips (from typing) to get there.
- 8n4vidtmkvmk 2y agoDoes this pay more than $500k/yr? I already know C++, could be tempted to learn CUDA.
- throwaway81523 2y agoI kinda doubt it. Nobody paid me to do that though. I was just interested in LCZero. To get that $500k/year, I think you need up to date ML understanding and not just CUDA. CUDA is just another programming language while ML is a big area of active research. You could watch some of the fast.ai ML videos and then enter some Kaggle competitions if you want to go that route.
- almostgotcaught 2y agoYou're wrong. The people building the models don't write CUDA kernels. The people optimizing the models write CUDA kernels. And you don't need to know a bunch of ML bs to optimize kernels. Source: I optimize GPU kernels. I don't make 500k but I'm not that far from.
- throwaway81523 2y agoHeh I'm in the wrong business then. Interesting. Used to be that game programmers spent lots of time optimizing non-ML CUDA code. They didn't make anything like 500k at that time. I wonder what the ML industry has done to game development, or for that matter to scientific programming. Wow.
- HarHarVeryFunny 2y agoHow much performance difference is there between writing a kernel in a high level language/framework like PyTorch (torch.compile) or Triton, and hand optimizing? Are you writing kernels in PTX? What's your opinion on the future of writing optimized GPU code/kernels - how long before compilers are as good or better than (most) humans writing hand-optimized PTX?
- throwaway81523 2y agoThe CUDA version of LCZero was around 2x or 3x faster than the Tensorflow(?) version iirc.
- deleted 2y ago[deleted]
- mosselman 2y agoThe real challenge is probably getting your hands on a 4090 for a price you can pay before you are worth your weight in gold. Because an arm and a limb in gold is quite a lot.
- throwaway81523 2y agoYou don't really need a 4090. An older board is plenty. The software is basically the same. I fooled around with what I think was a 1080 on Paperspace for something like 50 cents an hour, but it was mostly with some Pytorch models rather than CUDA directly.
- saagarjha 2y agoModern GPU architectures are quite different than what comes before them if you truly want to push them to their limits.
- wing-_-nuts 2y agoEveryone and I mean everyone I know doing AI / ML work values VRAM above all. The absolute bang for buck are buying used p40's and if you actually want to have those cards be usable for other stuff, used 3090's are the best deal around and they should be ~ $700 right now.
- saagarjha 2y agoWhat they really value is bandwidth. More VRAM is just more bandwidth.
- wing-_-nuts 2y agoWell, to give an example, 32GB of vram would be vastly more preferable to 24GB of higher bandwidth vram. You really need to be able to put the entire LLM in memory for best results, because otherwise you're bottlenecking on the speed of transfer between regular old system ram and the gpu. You'll also note that M1/2 macs with large amounts of system memory are good at inference because of the fact that the gpu has a very high speed interconnect between the soldiered on ram modules and the on die gpu. It's all about avoiding bottlenecks whereever possible.
- robotnikman 2y agoAre there any certifications or other ways to prove your knowledge to employers in order to get your foot in the door?
- suresk 2y agoHaving dabbled in CUDA, but not worked on it professionally, it feels like a lot of the complexity isn't really in CUDA/C++, but in the algorithms you have to come up with to really take advantage of the hardware. Optimizing something for SIMD execution isn't often straightforward and it isn't something a lot of developers encounter outside a few small areas. There are also a lot of hardware architecture considerations you have to work with (memory transfer speed is a big one) to even come close to saturating the compute units.
- iftheshoefitss 2y ago[flagged]