CUDA Programming: A Developer's Guide to Parallel Computing with GPUs (Applications of Gpu Computing)