GPUs are built for matrix operations. CPUs are built for serial tasks.
If you need to solve (A+B)/C + D then a CPU will do it faster than a GPU, that’s what its built for. But if A, B, C, and D are each arrays with 10,000 values and you want to perform the same operation on each slot and make array E with the 10,000 answers then you want a GPU. The GPU will load one value into each core and in a little longer than it takes the CPU to solve the one off, the GPU will have given you a value for each core it has and it can have thousands of cores.
Machine learning these days is a lot of neural networks which are lots of little interconnected weights that determine how it processes an input. The more little weights the more accurate the neural network can be but the more computationally heavy it is. When you’re training it there are thousands or tens of thousands of little weights that all need a bit of math done on them, then their value updated, then a bit more math, and so on until you’ve made it through the training set. Since its thousands of parallel operations this is perfect for a GPU
If you make a processor that’s built to handle thousands of similar operations in parallel we wouldn’t call it a CPU because it’d be pretty bad at normal CPU tasks, we’d call it a General Purpose Graphics Processing Unit even if it didn’t have the ability to connect to a screen like the nVidia Tesla cards
Latest Answers