gpt4 book ai didi

java - 我们可以用 OpenCL 做什么?

转载 作者:搜寻专家 更新时间:2023-11-01 01:18:59 24 4
gpt4 key购买 nike

我一直在阅读有关 OpenCL 的文章,我发现了这一行:

OpenCL gives any application access to the Graphics Processing Unit for non-graphical computing.

假设我需要在 Java 或 Clojure 中执行 CPU 密集型操作或算法(甚至可能运行 Hadoop MapReduce),我可以使用 OpenCL 在 GPU 中执行操作吗?如果是,我为什么要这样做?

既然有 CPU,为什么还要用 GPU?

OpenCL的应用场景有哪些?

我读到 OpenCL 提供并行编程,这是否意味着它将在 CPU 和 GPU 之间划分目标作业?还是单独跨 GPU?

最佳答案

OpenCL 为并行机器上的编程提供了一个可移植的接口(interface)。 OpenCL 程序可以在 CPU 或 GPU 上运行。我还没有见过可以同时在 CPU 和 GPU 上运行代码的技术。

将 GPU 用于通用计算利用了这样一个事实,即 GPU 实际上是由数百甚至数千个简单的小型处理元素 (PE) 构建而成。对于某些任务,此架构可能能够在 CPU 所需时间的一小部分内完成任务。

GPU 的一个缺点是它们实际上是变异的 SIMD(单指令多数据)机器;因此,大量的 PE 被限制在同一时间执行相同的操作,但在不同的数据上。这种限制使程序的设计有点困难。

GPU 非常适合任何可以并行化的任务,而无需在不同线程之间进行大量通信。 NVIDIA 的 CUDA 和 OpenCL 等技术已开始在科学应用和高性能计算中得到大量应用,这两者都相当重视并行性。

关于java - 我们可以用 OpenCL 做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5710047/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com