在没有OpenCL的情况下编程Intel IGP(例如Iris Pro 5200)硬件

时间:2013-08-20 12:58:21

标签: opencl gpu intel

桌面i7-4770k @ 4GHz核心的峰值GFLOPS为4GHz * 8(AVX)*(4 FMA)* 4核心= 512 GFLOPS。但最新的英特尔IGP(Iris Pro 5100/5200)峰值超过800 GFLOPS。因此,一些算法在IGP上运行得更快。将核心与IGP结合在一起甚至会更好。此外,IGP不断消耗更多硅。 Iris Pro 5100现在占硅的30%以上。似乎很清楚英特尔台式机处理器的发展方向。

据我所知,英特尔IGP大多被程序员忽略,但OpenCL / OpenGL除外。我很想知道如何在没有OpenCL的情况下为计算机(例如SGEMM)编程英特尔高清显卡硬件?

添加评论 他们没有英特尔支持Linux上的高清显卡和OpenCL。我发现beignet是开源尝试,至少为Ivy Bridge HD图形添加对Linux的支持。我没试过。可能是开发Beignet的人知道如何在没有OpenCL的情况下对HD图形硬件进行编程。

3 个答案:

答案 0 :(得分:4)

请注意,将数据复制到视频卡并返回会有性能损失,因此必须考虑这一点。 AMD即将发布APU芯片,这些芯片在同一芯片上为CPU和GPU提供统一内存,这将大大有助于缓解这一问题。

在CUDA和OpenCL之前使用GPU的方式是使用DirectX或OpenGL来表示要作为纹理进行操作的内存。谢天谢地,我们不再那样做了!

AMD正在推动APU / OpenCL模式,因此更多程序应该通过OpenCL利用GPU - 如果有性能权衡的话。目前,GPU计算是一个利基市场,已经转向高性能计算或数字处理,这是网页浏览和文字处理所不需要的。

答案 1 :(得分:4)

供应商让你使用低级别的ISA进行编程没有任何意义。

  1. 这很难,而且大多数程序员都不会使用它。
  2. 它使他们在将来的版本中不会调整ISA。
  3. 所以程序员使用一种语言(比如OpenCL中的C99),运行时就可以在用户的​​机器上进行特定于ISA的优化。

    这样做的一个例子:AMD从VLIW向量机转换为标量机,现有内核仍然运行(大多数运行得更快)。如果您直接编写ISA,则无法执行此操作。

答案 2 :(得分:1)

在没有opencl的情况下对虹膜等协处理器进行编程就像驾驶没有方向盘的汽车一样。

OpenCL旨在揭示虹膜所需的并行性,以实现其理论性能。你不能只在它上面生成100个线程或进程并期望性能。让线程块做同样的事情,同时,在类似的内存地址上,是问题的全部关键。

也许你可以想出一个比opencl更好的范例来实现这个目标;但是在你做之前,我建议你尝试学习一些opencl。如果你是python; pyopencl是一个很好的起点。