OpenCL:内核 运行 在 CPU 上还是在 iGPU 上?
OpenCL: Is kernel running on CPU or iGPU?
我刚刚开始学习 OpenCL。这是在配备 Intel Haswell CPU + Intel HD Graphics 4600 的简单台式机上进行的。现在我使用 PyOpenCL 和提供的示例。我的问题是,代码是 运行ning on CPU 还是 GPU?
platforms = cl.get_platforms()
platforms[0].get_devices()
[<pyopencl.Device 'Intel(R) Core(TM) i5-4570S CPU @ 2.90GHz' on 'Intel(R) OpenCL' at 0x706ac40>]
这看起来像 CPU。但是有什么区别吗?还是英特尔驱动程序决定内核 运行s(CPU 或 GPU)在哪里?如果这只是 CPU 我如何在 iGPU 上使其成为 运行?
好吧,我从未使用过 pyopencl,但您应该能够在 pyopencl 和 C/C++ 中查询设备类型。
查看 pyopencl 文档:
class pyopencl.device_info
...
TYPE
VENDOR
VENDOR_ID
VERSION
您应该能够从当前设备的 device_info 实例中获取设备类型。
OpenCL 在标准中定义了三(四)种不同的设备类型:
CL_DEVICE_TYPE_CPU
CL_DEVICE_TYPE_GPU
CL_DEVICE_TYPE_ACCELERATOR
CL_DEVICE_TYPE_DEFAULT
将您的实际设备类型与 CL_DEVICE_TYPE_CPU
和 CL_DEVICE_TYPE_GPU
的 pyopencl 表示形式进行比较,应该可以为您提供有关执行设备所需的信息。
我发现了问题。它只使用 CPU 并且没有列出 GPU。我在 Windows 7。issue/solution 我在 this 其他 SO 问题上找到的。
Maxim Shevtsov (Intel): Likely this is the actual root-cause. Currently Processor Graphics OCL device in unavailable in the "headless" configuration (without a monitor plugged in).
我正在通过远程桌面连接到所述 PC(不要问为什么...),因此它是无头的,因此 iGPU 不能用作 OpenCL 设备。
根据 Intel 论坛上的 this thread,最新的驱动程序和 Windows 8 或更高版本可以正常工作。但不在 Windows 7 中(据我所知,不在第三代 core-i 处理器上,例如 Ivy bridge)。
刚开始的时候对我来说已经足够好了。稍后我想看看我是否从 GPU 中获得了什么。
我刚刚开始学习 OpenCL。这是在配备 Intel Haswell CPU + Intel HD Graphics 4600 的简单台式机上进行的。现在我使用 PyOpenCL 和提供的示例。我的问题是,代码是 运行ning on CPU 还是 GPU?
platforms = cl.get_platforms()
platforms[0].get_devices()
[<pyopencl.Device 'Intel(R) Core(TM) i5-4570S CPU @ 2.90GHz' on 'Intel(R) OpenCL' at 0x706ac40>]
这看起来像 CPU。但是有什么区别吗?还是英特尔驱动程序决定内核 运行s(CPU 或 GPU)在哪里?如果这只是 CPU 我如何在 iGPU 上使其成为 运行?
好吧,我从未使用过 pyopencl,但您应该能够在 pyopencl 和 C/C++ 中查询设备类型。
查看 pyopencl 文档:
class pyopencl.device_info
...
TYPE
VENDOR
VENDOR_ID
VERSION
您应该能够从当前设备的 device_info 实例中获取设备类型。
OpenCL 在标准中定义了三(四)种不同的设备类型:
CL_DEVICE_TYPE_CPU
CL_DEVICE_TYPE_GPU
CL_DEVICE_TYPE_ACCELERATOR
CL_DEVICE_TYPE_DEFAULT
将您的实际设备类型与 CL_DEVICE_TYPE_CPU
和 CL_DEVICE_TYPE_GPU
的 pyopencl 表示形式进行比较,应该可以为您提供有关执行设备所需的信息。
我发现了问题。它只使用 CPU 并且没有列出 GPU。我在 Windows 7。issue/solution 我在 this 其他 SO 问题上找到的。
Maxim Shevtsov (Intel): Likely this is the actual root-cause. Currently Processor Graphics OCL device in unavailable in the "headless" configuration (without a monitor plugged in).
我正在通过远程桌面连接到所述 PC(不要问为什么...),因此它是无头的,因此 iGPU 不能用作 OpenCL 设备。
根据 Intel 论坛上的 this thread,最新的驱动程序和 Windows 8 或更高版本可以正常工作。但不在 Windows 7 中(据我所知,不在第三代 core-i 处理器上,例如 Ivy bridge)。
刚开始的时候对我来说已经足够好了。稍后我想看看我是否从 GPU 中获得了什么。