我如何知道代码是使用GPU还是CPU执行的?

Ada*_*Lee 3 opengl directx cuda gpu

有没有简单的方法可以让我知道一些代码是在GPU而不是CPU中执行的?

dat*_*olf 10

我认为您需要直接了解CPU和GPU之间的工作分离.如果您编写代码并使用不针对GPU执行的常规编译器进行编译,则代码将始终执行CPU.

在主程序中对OpenGL或DirectX函数的所有调用都在CPU上执行,没有"神奇"的转换层.然而,一些调用让GPU做了一些事情,比如绘制三角形.

CUDA和OpenCL是针对数据并行执行体系结构的语言.GPU就是这样一种架构.但是CUDA和OpenCL代码需要一些主机程序,而后者又会在CPU上执行.可编程着色器(HLSL,GLSL)也是如此.

所以:程序的主机部分(设置工作环境,发出渲染调用或GPU执行)将在CPU上运行.GPU上运行的代码在单独的编译单元中编译(即上传到OpenGL的GLSL着色器代码,使用OpenCL/CUDA编译器编译的OpenCL/CUDA代码).