Optimization principles and application performance evaluation of a multithreaded GPU using CUDA | Synapse