问题标签 [opencl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
850 浏览

opencl - 在 GPU 上计算最简单的函数是什么?

我刚开始学习 OpenCL。我试图了解将函数/算法移动到 GPU 时预期的性能提升。

大多数教程中给出的最基本的内核是一个内核,它接受两个数字数组并将相应索引处的值相加并将它们添加到第三个数组中,如下所示:

我假设您永远无法证明在 GPU 上计算它是合理的,内存传输的权重会超过在 CPU 上计算它所需的时间(我可能对此错了,因此这个问题)。

我想知道的是,在使用 OpenCL 内核而不是 CPU 时,您期望显着加速的最简单的例子是什么?

0 投票
1 回答
5370 浏览

opencl - OpenCL 中内核参数数量的限制

我想知道在 OpenCL 中设置为内核函数的参数数量是否有任何限制。我在设置参数时收到错误为 INVALID_ARG_INDEX 。我在内核函数中设置了 9 个参数。请在这方面帮助我。

0 投票
3 回答
50155 浏览

opencl - 如何在 OpenCL 中使用本地内存?

我最近一直在玩 OpenCL,我能够编写只使用全局内存的简单内核。现在我想开始使用本地内存,但我似乎无法弄清楚如何一次使用get_local_size()get_local_id()计算一个“块”输出。

例如,假设我想将 Apple 的 OpenCL Hello World 示例内核转换为使用本地内存的东西。你会怎么做?这是原始内核源代码:

如果这个例子不能轻易地转换成展示如何使用本地内存的东西,任何其他简单的例子都可以。

0 投票
1 回答
2916 浏览

mapreduce - 用 opencl 解决一个经典的 map-reduce 问题?

我正在尝试将一个经典的 map-reduce 问题(可以与 MPI 很好地并行)与 OpenCL,即 AMD 实现并行。但结果让我很困扰。

我先简单介绍一下问题。有两种类型的数据流入系统:特征集(每个参数 30 个)和样本集(每个参数 9000 多个维度)。这是一个经典的 map-reduce 问题,因为我需要计算每个样本(Map)上每个特征的得分。然后,总结每个特征的总体得分(减少)。大约有 10k 个特征和 30k 个样本。

我尝试了不同的方法来解决这个问题。首先,我尝试通过特征来分解问题。问题是分数计算由随机内存访问组成(选择 9000 多个维度中的一些并进行加/减计算)。由于我无法合并内存访问,因此需要成本。然后,我尝试通过样本分解问题。问题是总分的总和,所有线程都在竞争很少的分数变量。它不断覆盖原来不正确的分数。(我不能先进行个人评分,然后再总结,因为它需要 10k * 30k * 4 个字节)。

我尝试的第一种方法在具有 8 个线程的 i7 860 CPU 上给了我相同的性能。但是,我不认为这个问题是无法解决的:它与光线追踪问题非常相似(您需要针对数百万条三角形进行数百万条光线的计算)。有任何想法吗?

此外,我发布了一些我拥有的代码:

按特征分解(有效,但速度慢):

按样本分解,不起作用:

0 投票
1 回答
986 浏览

linux - Linux QT OpenCL 基本设置

Linux 从 OpenCL SDK 编译 C/C++ 示例的基本设置是什么?

0 投票
5 回答
4386 浏览

opencl - 我的 OpenCL 内核在更快的硬件上速度较慢。但为什么呢?

当我为一个多核编程课程完成我的项目编码时,我想到了一些非常奇怪的东西,我想和你讨论。

我们被要求创建任何在为多核平台编程时会显示出显着改进的程序。我决定尝试在 GPU 上编写代码来试用 OpenCL。我选择了矩阵卷积问题,因为我对它非常熟悉(我之前使用 open_mpi 将它并行化,对大图像有很大的加速)。

所以在这里,我选择了一个大的 GIF 文件 (2.5 MB) [2816X2112] 并运行顺序版本(原始代码),平均得到 15.3 秒。

然后我运行我刚刚在 MBP 集成 GeForce 9400M 上编写的新 OpenCL 版本,平均时间为 1.26 秒。到目前为止一切都很好,加速了 12 倍!

但是现在我进入我的节能面板打开“图形性能模式”该模式关闭 GeForce 9400M 并打开我系统的 Geforce 9600M GT。苹果表示,这张卡的速度是集成卡的两倍。

猜猜看,我使用 kick-ass 显卡的平均时间是 3.2 秒……我的 9600M GT 似乎比 9400M 慢了两倍以上。

对于那些倾向于 OpenCL 的人,我在开始之前将所有数据复制到远程缓冲区,因此实际计算不需要往返于主 ram。此外,我让 OpenCL 确定最佳的本地工作大小,因为我读到他们在计算出该参数方面做得很好。

有人有线索吗?

编辑:这里有 makefile 的完整源代码http://www.mathieusavard.info/convolution.zip

0 投票
8 回答
48173 浏览

java - Java 中 GPGPU/CUDA/OpenCL 的最佳方法?

图形处理单元 ( GPGPU )上的通用计算是一个非常有吸引力的概念,可以利用 GPU 的能力进行任何类型的计算。

我很想将 GPGPU 用于图像处理、粒子和快速几何运算。

目前,该领域的两个竞争者似乎是 CUDA 和 OpenCL。我想知道:

  • OpenCL 是否可以在 Windows/Mac 上的 Java 中使用?
  • 与 OpenCL/CUDA 接口的库方法是什么?
  • 直接使用 JNA 是一种选择吗?
  • 我是不是忘记了什么?

任何现实世界的经验/例子/战争故事都值得赞赏。

0 投票
3 回答
7998 浏览

c++ - OpenCL 或 CUDA 走哪条路?

我正在研究使用 GPU 来处理流数据的方法。我有两个选择,但无法决定走哪条路?

我的标准如下:

  1. 易于使用(良好的 API)
  2. 社区和文档
  3. 表现
  4. 未来

我将在 linux 下用 C 和 C++ 编写代码。

0 投票
1 回答
2542 浏览

opencl - 什么是学习 OpenCL 的好项目?

我的一个朋友在一所大学学习游戏开发,目前正在学习 OpenCL 编程。什么是一个简单的项目,可以教授 OpenCL 最重要的方面并且可以在大约 50 到 100 小时内完成?

0 投票
2 回答
1095 浏览

c - OpenCL+NVidia 的独家计算模式

我对 NVidia+OpenCL 的独占计算模式有疑问。

我可以在 nvidia-gpu 上使用 nvidia-smi 设置独占计算模式(cuda 编程指南 3.0 的第 74 页)。这意味着,只有一个程序可以在 gpu 上进行计算。

cuda 运行时比应用程序自动调度。

但是在这种情况下我对 opencl-programs 有一个问题:如果一个应用程序在设置了独占计算模式的 gpu 上运行,而第二个 opencl-program 调用clGetDeviceInfo(..., CL_DEVICE_AVAILABLE, ...)使用相同的 GPU 是result == CL_TRUE. 之后,如果 opencl-app 尝试在此设备上创建上下文,则正在运行的应用程序(两者)都会崩溃。

如何使用 OpenCL 找到可用的 GPU?

谢谢。