Optimizing OpenCL Programs for Multithreaded Architectures