在没有OpenCL的情况下编程英特尔IGP(如Iris Pro 5200)硬件

在没有OpenCL的情况下编程英特尔IGP(如Iris Pro 5200)硬件,opencl,gpu,intel,Opencl,Gpu,Intel,桌面i7-4770k@4GHz的内核峰值GFLOPS为4GHz*8(AVX)*(4 FMA)*4内核=。但最新的英特尔IGP(Iris Pro 5100/5200)的峰值超过了。因此,一些算法在IGP上运行得更快。将核心与IGP结合在一起会更好。此外,IGP不断消耗更多的硅。Iris Pro 5100现在占据了超过30%的硅市场。英特尔桌面处理器的发展方向似乎很明确 然而,就我所见,除了OpenCL/OpenGL之外,英特尔IGP大多被程序员忽视。我很想知道在没有OpenCL的情况下,如何为英特

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

然而,就我所见,除了OpenCL/OpenGL之外,英特尔IGP大多被程序员忽视。我很想知道在没有OpenCL的情况下,如何为英特尔高清图形硬件(如SGEMM)编程

添加评论:
他们在Linux上不支持英特尔高清图形和OpenCL。我发现,这是一个开源的尝试,它至少为长春藤桥高清图形添加了对Linux的支持。我没有试过。也许开发Beignet的人知道如何在没有OpenCL的情况下编程HD图形硬件。

请记住,将数据复制到视频卡和视频卡会影响性能,因此必须考虑这一点。AMD即将发布APU芯片,该芯片在同一个芯片上为CPU和GPU提供统一的内存,这将大大缓解这个问题

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


AMD真的在推动APU/OpenCL模式,所以如果性能有折衷的话,更多的程序应该通过OpenCL利用GPU。目前,GPU计算是一个利基市场,属于高性能计算或数字运算,而网络浏览和文字处理则不需要

对于供应商来说,让您使用低级ISA编程已经没有任何意义了

  • 这很难,大多数程序员都不会使用它
  • 它防止他们在未来的修订中调整ISA 因此,程序员使用一种语言(如OpenCL中的C99),运行时在用户机器上执行特定于ISA的优化


    这样做的一个例子是:AMD从VLIW向量机切换到标量机,现有内核仍然运行(大多数运行速度更快)。如果您直接编写ISA,就无法做到这一点。

    在没有opencl的情况下编写像iris这样的协处理器,就像驾驶没有方向盘的汽车一样

    OpenCL旨在展示iris实现其理论性能所需的必要并行性。您不能仅仅在其上生成100个线程或进程并期望性能。让线程块同时在相似的内存地址上做同样的事情,这是问题的关键所在


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

    注意:它不是。还有,为什么要乘以
    8(AVX)*(4fma)
    ?我改为GLOPS。FMA同时进行乘法和加法运算,得到一个因子2,Haswell可以同时执行两条FMA指令,得到另一个因子2。每个FMA可以执行一条AVX指令,给出另一个因子8(单浮点)。GLSL编程?DirectCompute?PTX?几年前,我用680x0组件编程了Amiga硬件、blitter等(在我从CS切换到物理之前)。CPU之外的硬件通过内存映射寄存器进行编程。英特尔IGP不应该有类似的东西吗?OpenCL通过视频驱动程序。我觉得我应该能够直接写硬件,跳过中间人。为什么要重新发明轮子?OpenCL如何不能满足您的需求?如果您正在寻找一种高性能的嵌入式解决方案,也许可以选择内置Radeon GPU的AMD mobos?OpenCL依赖于供应商的设备驱动程序。想象一下,如果您必须等待Intel为您提供设备驱动程序(针对每个操作系统)来编程x86。没人会容忍的!上次我检查时,HD4000的OpenCL驱动程序不支持Linux。也许现在是这样。供应商也可以停止支持设备驱动程序(Nvidia在很长一段时间内都在OpenCL支持中加入了少量错误)。由于IGP似乎是桌面处理器的未来,所以应该有可能在C++中编程,就像使用类似于本质的东西来在X86上做SIMD。我猜OpenCL是目前唯一可行的选择。是的,等到你找出所有寄存器并优化它时,英特尔要么发布OpenCL支持要么发布新硬件。如果您真的想优化OpenCL代码,可以考虑使用诸如float2、float3、float4等向量。这些向量应该使用SIMD。然而,向量支持因设备而异(NVIDIA现在很糟糕),如果不小心的话,你可以为特定设备过度优化你的内核。是的,我考虑过了。但x86内核并非如此。这意味着大多数人正在浪费大量的硅(和计算潜力),特别是如果他们使用的是离散的GPU。但英特尔已经在台式机用户身上实施了这一措施。我宁愿有更多的x86内核。唯一的选择是OpenCL及其驱动程序。我认为Intel的OpenCL HD驱动程序在Linux上不起作用。我还没累。此外,英特尔最新的OpenCL SDK仅在上运行。如果您正在寻找一个基于Linux的小型解决方案,我再次推荐一些便宜的AMD硬件和一个像样的集成GPU。在这一点上,AMD似乎是最擅长支持Linux的。你关于AMD转向标量机器的说法正确吗?我想你是说AMD从VLIW转向了超标量机器。来自遥远未来的消息: