Paperback: 528 pages
Publisher: Wrox; 1 edition (September 9, 2014)
Language: English
ISBN-10: 1118739329
ISBN-13: 978-1118739327
Product Dimensions: 7.4 x 1.1 x 9.3 inches
Shipping Weight: 2 pounds (View shipping rates and policies)
Average Customer Review: 4.8 out of 5 stars See all reviews (12 customer reviews)
Best Sellers Rank: #215,187 in Books (See Top 100 in Books) #19 in Books > Computers & Technology > Programming > Parallel Programming #89 in Books > Computers & Technology > Programming > Languages & Tools > C & C++ > C #831 in Books > Textbooks > Computer Science > Programming Languages
Before getting into this book, you might want to have at least some high-level overview of CUDA.The authors explain not only how to program in CUDA but also how to get the maximum performance out of the hardware. Issues such as branch divergence, uncoalesced memory, etc. are beautifully explained by means of coding examples. The authors also explain how to use NVIDIA profiling tools to assess the performance of your programs.On the other hand, I was somewhat surprised that the book goes deep into the Fermi (2.x) and Kepler (3.x) architectures, but has no mention of the latest Maxwell (5.x) architecture. I guess that's because the authors use Tesla GPUs (not the usual GeForce GT/GTX card), but anyway the code is portable across devices.I used a GeForce GTX 750 Ti and this required some minor adaptations. Since my card had only 2GB of memory, in those examples where the authors allocate 3 vectors of 1GB each, I simply ran out of memory. The fix was to use a smaller vector size, and things ran smoothly again. Also, since my card was a Maxwell, I used nvcc -arch=sm_50 to compile the code samples. Some minor warnings were easy to fix.Recommended for the serious/advanced programmer.
Very pleased with this. I use it along with the book by Sanders & Kandrot. I get to write working code for all the concepts. The diagrams are very helpful. The instructions for how to set up your system are so good that even though the book is for Linux I had no trouble using Windows instead. If you are a Windows user I would encourage you to still buy this book. Once you get into the subject the OS makes no difference. I appreciate how they provide code to verify and test what you are doing. There is a lot of discussion about optimization and you learn a lot experimenting. It is becoming one of those books that I'm marking with tons of notes and looking like an old shoe.
Awesome book!!! easy to understand, code works way better and easier in VS2013 than the one in CUDA by example, also tried the code in OpenSuse 13.1 and it worked nicely in my 780m card, also the excersises are fun to try, I totally recomend this book!! note that its examples are mostly run in Linux, and is focused in Fermi and Kepler archs and the runtime API not the driver API
Before I buy a book I usually read the Introduction so I can figure out what audience the book is made for and whether it might be a good fit for me. In the introduction of this book, it says (among other possible audiences) that the book does not assume 'copious amounts of experience in C programming'. I'd say that was stretching it a little bit since it begins using pointers and bitwise operations in the second chapter. That said, as a relative newcomer to C programming (having used PHP, Java, and Python previously), I did not understand what those things were so it took a bit of learning on the side. I found that what worked for me was to grab a C Programming book, read a couple chapters into it to get a basic understanding, and then reference the appropriate chapters when I came across something new. Then I simply commented what I learned into the code so that I could look at it later and quickly be reminded what worked for me.All of that said - as a review for the book, I love it. It explains why some things are better than others, often down to the hardware level, which really helps to grasp the material. The examples work great and I usually input them and change some things around to make sure I get a solid understanding of it. I haven't yet got to it, but Chapter 8 goes over various libraries, with cuFFT being the one I'm particularly interested in - I count that as a big plus even if they're just basic introductions. Highly recommended!
Excellent for learning the real inner workings of CUDA and GPU devices. Manny examples combined with code that compiles and runs great. A must for the next step to becoming a professional CUDA programmer.
Very happy I bought this book. Chapter 2 is really all I needed and is worth the price. I hear that CPUs are low latency and GPUs make up for their higher latency by parallelism, yet this book spend an awful lot of time (maybe 70%) telling you how to improve latency on the GPU side. I would much rather have learned how to increase parallelism.Way to much focus on the nitpicky details of GPU generations, memory management, and all of the Nvidia talking points. It would have been better to focus on CUDA C PROGRAMMING and not hardware details.I'm only critical because this subject is important to me, it's a tricky branch of programming. If you are using MS Visual Studio, you will have to adapt the sample code to your project primarily by including common.h in your project with few other tweaks. A little distraction but not a roadblock. I have spent more time with this book than any other in many years.
CUDA Fortran for Scientists and Engineers: Best Practices for Efficient CUDA Fortran Programming Programming #57: C++ Programming Professional Made Easy & Android Programming in a Day (C++ Programming, C++ Language, C++for beginners, C++, Programming ... Programming, Android, C, C Programming) Programming #45: Python Programming Professional Made Easy & Android Programming In a Day! (Python Programming, Python Language, Python for beginners, ... Programming Languages, Android Programming) Programming #8:C Programming Success in a Day & Android Programming In a Day! (C Programming, C++programming, C++ programming language, Android , Android Programming, Android Games) Professional CUDA C Programming MYSQL Programming Professional Made Easy 2nd Edition: Expert MYSQL Programming Language Success in a Day for any Computer User! (MYSQL, Android programming, ... JavaScript, Programming, Computer Software) Programming: Computer Programming for Beginners: Learn the Basics of Java, SQL & C++ - 3. Edition (Coding, C Programming, Java Programming, SQL Programming, JavaScript, Python, PHP) Raspberry Pi 2: Raspberry Pi 2 Programming Made Easy (Raspberry Pi, Android Programming, Programming, Linux, Unix, C Programming, C+ Programming) Android: Programming in a Day! The Power Guide for Beginners In Android App Programming (Android, Android Programming, App Development, Android App Development, ... App Programming, Rails, Ruby Programming) DOS: Programming Success in a Day: Beginners guide to fast, easy and efficient learning of DOS programming (DOS, ADA, Programming, DOS Programming, ADA ... LINUX, RPG, ADA Programming, Android, JAVA) ASP.NET: Programming success in a day: Beginners guide to fast, easy and efficient learning of ASP.NET programming (ASP.NET, ASP.NET Programming, ASP.NET ... ADA, Web Programming, Programming) C#: Programming Success in a Day: Beginners guide to fast, easy and efficient learning of C# programming (C#, C# Programming, C++ Programming, C++, C, C Programming, C# Language, C# Guide, C# Coding) FORTRAN Programming success in a day:Beginners guide to fast, easy and efficient learning of FORTRAN programming (Fortran, Css, C++, C, C programming, ... Programming, MYSQL, SQL Programming) Prolog Programming; Success in a Day: Beginners Guide to Fast, Easy and Efficient Learning of Prolog Programming (Prolog, Prolog Programming, Prolog Logic, ... Programming, Programming Code, Java) R Programming: Learn R Programming In A DAY! - The Ultimate Crash Course to Learning the Basics of R Programming Language In No Time (R, R Programming, ... Course, R Programming Development Book 1) Parallel Programming: Success in a Day: Beginners' Guide to Fast, Easy, and Efficient Learning of Parallel Programming (Parallel Programming, Programming, ... C++ Programming, Multiprocessor, MPI) CUDA by Example: An Introduction to General-Purpose GPU Programming, Portable Documents The CUDA Handbook: A Comprehensive Guide to GPU Programming Programming Raspberry Pi 3: Getting Started With Python (Programming Raspberry Pi 3, Raspberry Pi 3 User Guide, Python Programming, Raspberry Pi 3 with Python Programming) VBScript: Programming Success in a Day: Beginner's Guide to Fast, Easy and Efficient Learning of VBScript Programming (VBScript, ADA, ASP.NET, C#, ADA ... ASP.NET Programming, Programming, C++, C)