Hacker News new | ask | show | jobs
by nikonyrh 732 days ago
Since with CUDA you are programming so close to hardware, and hardware (and CUDA itself) has advanced so much, I recommend you to go trough very carefully all the major CUDA versions and see how it has evolved. Well, strictly speaking I'm talking about different versions of "compute capabilities". Of course Wikipedia has a good summary: https://en.wikipedia.org/wiki/CUDA#Version_features_and_spec...

An other point is that you don't need to write any CUDA code to be able to utilize GPU computing. If you need ML models, you have frameworks like PyTorch and Tensorflow. You just need to express your mathematical problem, and the framework will take care of the rest.

Even if you needed to write custom GPU code, you don't need to do it in C anymore! For example you can JIT Python, using Numba or Triton.

Usually writing custom code is only required when:

- You are doing something novel, like PhD level stuff

- You must optimize the ML project for performance and trough-put at interference time

- You need to brute-force solutions (be it crypto-hashes, passwords, NP-complete problems, ...)

My last point to you is that do you want to learn to use these pre-existing frameworks and libraries, or learn to develop them or maybe even create new ones? What ever your answer is, I'd say that the first option is a great stepping-stone to advance to the second one.

1 comments

I was hoping I could revive my background in lower-level programming, I am not actually interested in creating AI based solutions per se, but rather develop frameworks that allow it. Hence CUDA and algorithmic programming in general.

Thanks for your input, I appreciate it!