【问题标题】:Direct Cpu Threads or OpenCL直接 CPU 线程或 OpenCL
【发布时间】:2013-11-10 18:59:46
【问题描述】:

我已经搜索了各种问题(和网络),但没有找到任何令人满意的答案。

我很好奇是使用线程直接加载 CPU 的内核还是使用 OpenCL 实现。 OpenCl 只是为了使多处理器/内核更便携,这意味着将代码移植到 GPU 或 CPU 还是 OpenCL 更快、更高效?我知道 GPU 有更多的处理单元,但这不是问题。是代码中的间接多线程还是使用 OpneCL?

对不起,我还有一个问题...

如果 IGP 与 Descrete Graphics Card 共享 PCI 线路并且其驱动程序无法在 Windows 7 下加载,我不得不假设它不可用,即使您只想使用集成 GPU 的处理核心.这是正确的还是有办法在没有驱动程序的情况下访问 IGP。

【问题讨论】:

    标签: multithreading opencl cpu


    【解决方案1】:

    编辑:正如@Yann Vernier 在评论部分指出的那样,我对我使用的术语不够严格。所以在这篇文章中,我使用术语线程作为工作项的同义词。我不是指 CPU 线程。

    我无法将 OCL 与任何其他允许使用 CPU 不同内核的技术进行比较,因为我目前只使用过 OCL。
    不过,我可能会提出一些关于 OCL 的意见,尤其是我不太同意 ScottD 的意见。
    首先,即使为在 GPU 上运行而开发的 OCL 内核也可以在 CPU 上运行,但这并不意味着它会高效。原因很简单,OCL 在 CPU 和 GPU 上的工作方式不同。要更好地了解它的不同之处,请参阅“heterogeneous computing with opencl” 的第 6 章。
    总而言之,虽然 GPU 会在给定的工作组内同时启动一堆线程,但 CPU 将在同一工作组内的一个核心线程上一个接一个地执行。另请参阅the standard 的第 3.4 点,了解 OCL 支持的两种不同类型的编程模型。这可以解释为什么 OCL 内核在 CPU 上的效率可能低于“经典”代码:因为它是为 GPU 设计的。
    开发人员是针对 CPU 还是 GPU 并不是“认真工作”的问题,而只是取决于最适合您需求的编程模型的类型。此外,OCL 也支持 CPU 这一事实很好,因为它可以在没有配备适当 GPU 的计算机上优雅地降级(尽管很难找到这样的计算机)。

    关于 AMD 平台,我注意到 CPU 以及带有 ATI 的笔记本电脑上的一些问题。我观察到我的一些代码性能低下并且也崩溃了。但原因是处理器是英特尔的。 AMD 平台将声明有可用的 CPU 设备,即使它是 Intel CPU。但是,它将无法像应有的那样有效地使用它。当我针对 CPU 运行完全相同的代码但在安装(和使用)英特尔平台之后,所有问题都消失了。这是性能不佳的另一个可能原因。

    关于 iGPU,它不共享 PCIe 线路,它位于 CPU 芯片上(至少是 Intel 的),是的,您需要驱动程序才能使用它。我假设您尝试安装驱动程序并收到类似“您的计算机不符合最低要求......”或类似的消息。我想这取决于计算机,但就我而言,我的台式机配备了 NVIDIA 和 i7 CPU(它有一个 HD4000 GPU)。为了使用 iGPU,我必须首先在 BIOS 中启用它,这样我才能安装驱动程序。当然,显示器一次只使用两个 GPU 中的一个(取决于 BIOS 设置),但我可以使用 OCL 访问这两个。

    【讨论】:

    • 运行 OpenCL 内核的 CPU 不一定要坚持每个线程一个 CL 工作项;它可能使用普通编译器难以访问的向量操作,并且可能不会出现在您运行的每台机器上。它不会像 GPU 那样大规模,但它肯定不同于普通的 C 或 OpenMP。
    • 感谢您的澄清。实际上,我使用线程作为工作项的同义词(来自 NVIDIA 使用术语线程来表示 CUDA)。我将编辑我的评论。
    【解决方案2】:

    在最近使用英特尔 opencl 工具的实验中,我们发现 opencl 的性能与 gcc 和 icc 上的 CUDA 和基于 intrincics 的 AVX 代码非常相似 - 比我们看到 opencl 性能更差的早期实验(几年前)要好得多。

    【讨论】:

      猜你喜欢
      • 2017-03-11
      • 2018-05-27
      • 2013-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-24
      • 2013-01-10
      • 2020-06-01
      相关资源
      最近更新 更多