在OpenCL中,为什么每个英特尔设备都有一个平台?

时间:2019-05-16 17:56:10

标签: opencl intel

我正在启动OpenCL。据我了解,平台是特定于供应商的OpenCL实现,而设备是可以由平台使用的处理单元。

我编写了一个简单的C ++代码,该代码打印平台名称,并为每个设备打印设备名称,其输出为

Platform 0: Intel(R) OpenCL HD Graphics
    Device 0: Intel(R) Gen9 HD Graphics NEO
Platform 1: Intel(R) CPU Runtime for OpenCL(TM) Applications
    Device 0: Intel(R) Core(TM) i5-6200U CPU @ 2.3GHz

我的问题是,我不应该期望这两台设备位于同一平台上吗?假设我有一台笔记本电脑,并且GPU与处理器集成在一起。另外,这是否会禁止我将GPU和CPU设备都分配到同一上下文? (我读过的书具有共享内存的优点)

1 个答案:

答案 0 :(得分:0)

  

我不应该期望这两个设备在同一平台上

仅当供应商为两个设备都提供了带有驱动程序的平台时。我不确定英特尔的“ NEO”平台是否也具有CPU驱动程序,但是我很确定“ CPU运行时”仅具有CPU驱动程序,而没有iGPU。您必须列出每个平台的设备才能找到。

  

然后这将禁止我将GPU和CPU设备都分配到同一上下文

您必须列出设备-如果NEO同时拥有两个设备,则可以使用它们。但是您不能在一个上下文中拥有来自不同平台的设备。