主机是否会拥有多个CPU类型的设备?多核CPU将作为单个设备出现,但双插槽主板呢? OpenCL中是否有两个独立的设备用于每个处理器?
我正在尝试提前计划我正在开发的应用程序。
答案 0 :(得分:4)
根据我的经验,在双插槽主板上你仍然有一个CPU设备。操作系统通常会向用户隐藏核心是位于同一物理CPU上还是位于不同的物理CPU上,即使在NUMA台机器上(当然you can get detailed info,but it's not all that straightforward)。我认为这种行为是合乎逻辑的,至少在SMP机器上,因为核心物理位置没有太大区别(在GPU的情况下,访问其他设备内存非常麻烦;在CPU上固定所有线程相同的物理CPU很少值得担心),因此将两个物理CPU融合到一个OpenCL设备中几乎没有任何缺点,并且它具有简化其使用的优点。
但是我没有在OpenCL specification中看到过这一点,所以它都是特定于实现的,并且不能保证始终保持为真。
答案 1 :(得分:2)
即使在多核CPU上,在多CPU环境中也可能存在多个设备。以IBM的单元为例,OpenCL驱动程序将9核CPU视为2个不同的设备。一个是PPU的设备,另一个是SPU,并且有一个CL_DEVICE_TYPE_ACCELERATOR配置文件。)
答案 2 :(得分:1)
计算群集(具有独立内存的多个物理机)可能在单个“主”节点上被抽象为多个OpenCL设备,但我不知道是否有任何实现实际上这样做。