Where did you learn to program on distributed Nvidia GPUs? The article implied you were self taught and learning to do this is quite challenging for various reasons.
Not least, Nvidia's documentation is not the best resource to learn from. This seems like quite a lot of work to understand ML and write custom CUDA code to get this to work. Do you have any insight about how you taught yourself these things and what tools you use?
Not the OP but I taught myself in a couple of weeks picking apart some of the sample CUDA code and reading some of the (excellent) pdfs on the architecture of the Nvidia range. At the time the GTX285 was hot stuff, the same code runs unchanged on a 1080ti and I would expect it to continue to work on even more modern incarnations. CUDA is pretty good as a platform to build on if you understand the basic idea behind the engine, and some low level experience will come in very handy. And ML on CUDA vs ML in C or some other language is typically a matter of shuttling the data and the results back and forth between main memory and the card as well as implementing the most time consuming portions of the algorithm you are using in a custom kernel, you can usually get 50% or so of the theoretical maximum speed with relatively little effort. Getting to full speed is going to be a lot harder, but then you could of course also add another card (or another three) get get an instant boost.
Usually you would - nowadays at least - use someone else's optimized kernel + ML library but if you wanted to roll your own that's doable.
I'm not your OP but I learnt all these things at univeristy during my BCompSci. Understanding ML algorithms came down to a lot of math / statistics units. I learnt about parallel computing during a dedicated unit called "Distributed and Parallel Computing"
Not least, Nvidia's documentation is not the best resource to learn from. This seems like quite a lot of work to understand ML and write custom CUDA code to get this to work. Do you have any insight about how you taught yourself these things and what tools you use?