GPU makers: Nvidia and AMD
Like CPUs, the GPU market is down to two players, Nvidia and AMD. In the consumer gaming space, it’s fairly competitive, about a 60/40 split between the two with Nvidia in the lead, according to Jon Peddie Research.
In the data center, though, it’s not even close. Peddie reports Nvidia has a 90 percent share to AMD’s 10 percent. This is due to Nvidia spending the better part of two decades seeding and supporting data-center and other non-gaming use of GPUs.
GPUs and CUDA programming
In the early 2000s, some Stanford University researchers began to delve into the programmable and parallel nature of the GPU. Nvidia hired them to create the CUDA programming language that would allow developers to write applications in C++ that used the GPU for acceleration.
“I give Nvidia a lot of credit. They set up at universities all over the world, hundreds of them, to teach CUDA. So when a student graduated, they were pre-trained CUDA developers and set the foundation for getting CUDA into industries as we know it today,” said Peddie.
One of the Stanford professors in the CUDA team was Ian Buck, now vice president of Nvidia’s Accelerated Computing business unit. He said CUDA was intended to be easy to learn and use. “Anyone who knew C or Fortran, I could teach CUDA in a day. We realized early on we did not want to create a whole new programming language that required you to learn something new,” he said.
So applications already running on CPUs could be parallelized relatively quickly. The main change with CUDA was instead of calling a function once, like a sort routine, you called it thousands of times and each core executed it.
But CUDA is for Nvidia GPUs only. To program an AMD GPU you must use a library called OpenCL which has nowhere near the support that CUDA has.