Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python OpenCL:内核是在CPU上运行还是在iGPU上运行?_Python_Opencl_Pyopencl - Fatal编程技术网

Python OpenCL:内核是在CPU上运行还是在iGPU上运行?

Python OpenCL:内核是在CPU上运行还是在iGPU上运行?,python,opencl,pyopencl,Python,Opencl,Pyopencl,我刚刚开始学习OpenCL。这是在一台简单的台式机上,配备英特尔Haswell CPU+英特尔高清图形4600。现在我使用PyOpenCL和提供的示例。我的问题是,如果代码是在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 0x70

我刚刚开始学习OpenCL。这是在一台简单的台式机上,配备英特尔Haswell CPU+英特尔高清图形4600。现在我使用PyOpenCL和提供的示例。我的问题是,如果代码是在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>]
platforms=cl.get_platforms()
平台[0]。获取设备()
[]

这看起来像CPU。但是有什么区别吗?还是由英特尔驱动程序决定内核的运行位置(CPU或GPU)?如果这只是CPU,如何使其在iGPU上运行?

我从未使用过pyopencl,但您应该能够在pyopencl和C/C++中查询设备类型

查看pyopencl文档:

class pyopencl.device_info
    ...
    TYPE
    VENDOR
    VENDOR_ID
    VERSION
您应该能够从当前设备的设备信息实例中获取设备类型

OpenCL在标准中定义了三(四)种不同的设备类型:

CL_DEVICE_TYPE_CPU 
CL_DEVICE_TYPE_GPU 
CL_DEVICE_TYPE_ACCELERATOR 
CL_DEVICE_TYPE_DEFAULT

将实际设备的类型与
CL\u device\u type\u CPU
CL\u device\u type\u GPU
的pyopencl表示形式进行比较,应该可以为您提供执行设备所需的信息

我发现了这个问题。它只使用CPU,没有列出GPU。我在Windows7上。我在其他问题上找到的问题/解决方案

马克西姆·谢夫佐夫(英特尔):这可能是真正的根本原因。当前,处理器图形OCL设备在“无头”配置中不可用(未插入显示器)

我通过远程桌面连接到上述PC(不要问为什么…),因此它是无头的,因此iGPU不能作为OpenCL设备使用

根据英特尔论坛上的最新驱动程序和Windows 8或更高版本,这是可行的。但在Windows7中没有(据我所知,在第三代core-I处理器上没有,如Ivy bridge)


当我开始的时候,对我来说已经足够好了。稍后,我想看看我是否从GPU中获得了什么。

这看起来像是我的CPU部分,因为Intel将GPU部分标记为HD xxxx或Iris Pro。
platform
列表是否有其他条目?没有,只有这个条目。我还使用Intel驱动程序更新工具来获取最新的驱动程序。它是一个CPU。英特尔是否区分了这两种技术?如果您有一个带有Intel HD Graphics的CPU,是否应该有两个设备?是的。然而,在linux上为英特尔高清GPU支持OpenCL的英特尔驱动程序是相当新的。也许您缺少一个驱动程序:在这里,您可以使用linux和windows驱动程序在您的Intel设备上启用OpenCL。GPU应该更好一些。所以,不要对CPU结果下结论。是的,如果做得对的话。但我只是出于个人兴趣才开始使用OpenCL。因此,目前来说,性能并不是那么重要。只是想确定我对每件事都理解正确。