OpenCL and Cuda are programming APIs. A developer who wants to write code that is run on the GPU has to decide whether he wants to use OpenCL or Cuda. Nvidia started cuda but nobody every jumped on board. I am not even sure if there is anything on OSX that supports Cuda. OpenCL is platform independent and is supported by all GPU manufacturers (Intel, Nvidia, AMD, ..). OpenCL is an open standard and probably the only API developers will focus for that kind of functionality.
They are basically programming languages with Cuda only being supported by Nvidia GPUs and nobody else.