Answers:
这就是要旨。
原则上,该平台可以想像地做任何它想做的事情。可以想象有一种先进的操作系统可以实时将编译后的代码从x86转换为GPU代码。同样,OpenGL驱动程序可以在主机CPU上运行所需的任何内容。
但是实际上,您刚刚描述的是发生了什么。
David Van Brink回答了您的问题。
但是就像他说的那样,OpenGL驱动程序可以在CPU上运行某些东西,实际上它经常发生。特别是在兼容性上下文中,某些奇怪的旧功能无法在图形卡上实现。他们需要软件仿真。例如,我听说在CPU上执行点画之前。您也可以期待采摘带来的惊喜。
在MacOS上使用2.1上下文时,这些意外可能会发生更多,因为苹果已经在其硬件范围内很好地统一了OpenGL的视图,并且一些较小的硬件缺少一些必须模拟的东西。如果上下文创建代码明确指定了软件设备,则实际上可以在CPU上完全执行整个OpenGL 2.1规范。
相反,可以根据API设置标志在GPU或CPU上执行通过计算库(如vexcl或boost计算,或Microsoft的AMP或nVidia推力)执行的代码。
为了画龙点睛,CPU内部还具有DSP架构,其中一部分被称为SIMD。英特尔的ispc编译器为生成“确保”在SIMD通道上运行的代码提供了帮助,并在编译时提供了许多性能诊断,以帮助您充分利用它。将OpenMP添加到其中,您将获得多线程SIMD,它接近于GPU的概念。如果您具有高端CPU和低端GPU,那么实际上可以提高性能。
http://ispc.github.io/