The natural way to start with CUDA if you plan to be self taught is:
-
CUDA by Example: An Introduction to General-Purpose GPU Programming by Jason Sanders and Edward Kandrot Nice introduction. It is more like playing with your GPU and admire its capabilities.
-
Programming Massively Parallel Processors, Second Edition: A Hands-on Approach by David B. Kirk and Wen-mei W. Hwu It explains a lot of things in GPU Programming. You simply can't go without it.
-
CUDA Application Design and Development by Rob Farber I would recommend a nice look at it. Grasp some concepts and then move to.
-
CUDA Programming: A Developer's Guide to Parallel Computing with GPUs (Applications of GPU Computing Series) by Shane Cook I would say it will explain a lot of aspects that Farber cover with examples.
Thanks so much for sharing @