Professional Cuda C Programming by John Cheng