最初,GPU是设计来配合计算机的CPU(中央处理器),以承担图像的计算任务。渲染3D图像场景是一个并行计算任务。由于图像中各区域之间没有联系或依赖关系,因此,这个任务可以轻易地被拆解成若干个独立的任务,每个任务可以同时并行——这样也可以加快速度。
正是这种并行计算让GPU厂商为GPU找到了完全不同的新用途。通过优化GPU,它们可以完成庞大的并行计算任务。于是,GPU变成了专门运行并行代码的处理器,而不仅仅只是用来处理图像。而CPU则始终被用来完成单线程任务,因为大多数通用软件依然是单线程。
CPU通常有单核、双核、四核或八核,而GPU则不同,它可以有成千上万核。比如说,Facebook服务器中使用的 NVIDIA Tesla M40有3,072个所谓的CUDA cores。然而,这种庞大的并行能力需要付出代价:必须编写专门的软件才能利用这样的优势,而GPU很难编程。