Well... I want to broaden my horizon. The intended use so far is for computational statistics and machine learning. So, CUDA: 1. NVIDIA only. 2. Propietary (So continuous support from NVIDIA is almost guaranteed, but vendor lock-in). 3. Have better performance than OpenCL (from what I've read). OpenCL: 1. ATI/AMD and NVIDIA graphic card can use this. 2. Since ATI is an option, they say ATI card gives more "bang for the buck" than NVIDIA. I haven't researched about this. 3. Open Source. To be honest, my heart lean to OpenCL than CUDA for my first time learning. Recommend me which one should I learn first?