title: What are key differences of GPUs supported by OpenCL/CUDA?
body: <p>What had to be changed/added by vendors to make their GPUs suitable to work with OpenCL (or e.g. CUDA)? I know that there are Compute Units and Processing Elements (OpenCL). But GPUs were able to do parallel work before, only without the convenience of being programmed that easily. So what's the key differences architecture wise?</p>