使用 OpenCL,我能够获得系统中可用的显卡列表(下面的代码片段(,但我还没有找到确定运行时正在使用哪一个的方法。这可能吗?
for (CLPlatform platform : CLPlatform.listCLPlatforms())
{
for (CLDevice gpuDevice : platform.listCLDevices())
{
// The CPU shows up as a device, so filter it out.
if (gpuDevice.getType() == CLDevice.Type.GPU && gpuDevice.isAvailable())
{
availableGPUDevices.add(gpuDevice);
numGPUDevices++;
}
}
}
从理论上讲,我希望能够添加以下内容:
if (platform.getActiveGpu().getType() != AMD or NVIDIA) (pseudo-code)
{
// show warning that a more powerful GPU is available
}
我唯一缺少的是确定当时哪个GPU处于活动状态的能力。非常感谢任何帮助 - 谢谢!!
澄清:通过"哪个 GPU 处于活动状态",我的意思是我希望确定,目前我检查此的代码正在执行,哪个 GPU 负责在屏幕上呈现内容。我的理解是,两个GPU不会同时渲染屏幕的一部分,所以虽然我知道它可以切换很多,但我想捕获当时正在运行的GPU的快照。
不幸的是,OpenCL不支持这一点。