问题标签 [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 投票
4 回答
578 浏览

concurrency - 为什么并发编程的书总是忽略数据并行性?

在过去几年中,通过 OpenCL 和 CUDA 等系统向数据并行编程发生了重大转变,但即使在过去六个月内出版的书籍甚至从未提及数据并行编程的主题。

它并不适合所有问题,但似乎这里有一个没有得到解决的重大差距。

0 投票
3 回答
950 浏览

c++ - 应该重写哪些应用程序才能使用 OpenCL?

Mac OS X 10.6 带有 OpenCL,但是如果将它们重写为使用 OpenCL,有多少应用程序可以具有更好的性能呢?应该重写哪些应用程序才能使用 OpenCL?

0 投票
4 回答
8680 浏览

delphi - 使用 Delphi 来利用 GPGPU 技术?

GPGPU 是在显卡上使用并行处理器以大幅提高性能的原理。

有没有人对在 Delphi 中使用 GPGPU,使用 OpenCL 或 CUDA 有任何想法?CUDA 只是 NVidia,但他们也采用了 OpenCL“标准”。

我从 Google 搜索中找到了一些 Delphi 示例,但它们要么崩溃,要么无法编译/运行。

最终的指令样本将是:

  1. 从这里下载并安装 OpenCL DLL。
  2. 从这里下载 OpenCL SDK。
  3. 从这里下载这个示例 Delphi 项目。
  4. 打开并编译 Delphi 项目。如果一切按计划进行,它将做“它应该做的任何事情”

在那个阶段,我可以开始研究 OpenCL SDK 并编写/编译 DLL 以从任何 Delphi 应用程序调用。

这种东西真的开始起飞了。Embarcadero 在这个阶段不需要自己做任何事情(除非他们愿意),但如果有 Delphi 的教程和示例可用,那就太好了。许多示例可用于其他语言,但我们还需要一个良好且简单的 Delphi 示例来展示将 Delphi 用于 GPGPU 应用程序是多么容易。

0 投票
3 回答
7621 浏览

optimization - OpenCL 纹理内存

我对 OpenCL 还很陌生,所以请多多包涵。

在我的代码的第一次迭代中,我为大型数据集使用了基本的内存缓冲区,并将它们声明为全局的。然而,现在我正在寻求改进时间,我想为此使用纹理内存。在 CUDA 版本中,我们使用 cudaBindTexture 和 tex1Dfetch 来获取大型一维浮点数组的数据。根据我对规范的理解,纹理内存与图像内存是一回事。但是,由于只有最大高度和宽度的 2D 和 3D 图像对象,我遇到了一些问题。我的数组大于最大高度/宽度,但不是最大高度 * 最大宽度。我必须将我的一维数组转换为二维吗?或者有更好的方法吗?

还是我完全关闭了?

我确实阅读了http://forums.nvidia.com/index.php?showtopic=151743http://forums.nvidia.com/index.php?showtopic=150454但它们在纹理内存是否具有确切的结论最佳实践和编程指南中提到的实际上是图像对象。

谢谢,非常欢迎任何帮助/建议!

0 投票
9 回答
4375 浏览

macos - 在 Mac 上远程登录时如何在 GPU 上测试 OpenCL?

当我在控制台登录时,我的 OpenCL 程序可以找到 GPU 设备,但当我使用 ssh 远程登录时却找不到。此外,如果我在 ssh 会话中以 root 身份运行该程序,该程序可以找到 GPU。

该计算机是带有 GeForce 9400 GPU 的 Snow Leopard Mac。

如果我从控制台或以 root 身份运行程序(见下文),输出如下(注意“GeForce 9400”行):

但如果只是我,通过 ssh,没有 GeForce 9400 条目:

我想在 GPU 上测试我的代码,而不必是 root。那可能吗?简化的 GPU 查找程序如下:

编辑:我发现在nvidia 的论坛上提出了基本相同的问题。不幸的是,唯一的答案是“这是错误的论坛”形式。

0 投票
1 回答
3393 浏览

opencl - 在 OpenCL 中使用本地内存的奇怪行为

我目前正在开发一个在 NVIDIA Tesla C1060(驱动程序版本 195.17)上起诉 OpenCL 的项目。但是,我遇到了一些我无法真正解释的奇怪行为。这是让我感到困惑的代码(为了清晰和测试目的而减少了):

此代码应将每个工作组的偏移量加载到本地内存中,然后将其读回并将其写入相应的输出向量条目。对于大多数工作项,这是可行的,但对于每个工作组,本地 ID 为 1 到 31 的工作项读取的值不正确。我的输出向量(对于 workgroupsize=128)如下:

我期望的输出是

奇怪的是:只有当我使用少于 itemcount 的工作项时才会出现问题(因此当 globalsize>=itemcount 时它按预期工作,这意味着每个工作项只处理一个条目)。所以我猜它与循环有关。有谁知道我做错了什么以及如何解决?

更新:我发现如果我改变它似乎工作

这更让我吃惊,所以虽然它可能会解决问题,但我觉得以这种方式修复它并不自在(因为它可能会在其他时候中断)。此外,我宁愿避免在 Geforce 8xxx 类硬件上运行时由于额外的(据我了解的硬件未合并)内存访问而损失性能。所以问题仍然存在。

0 投票
3 回答
726 浏览

driver - 我可以在分发给非开发人员机器的应用程序中使用 openCL 吗?

我最近开始学习如何使用 openCL 来加速我的某些部分代码。到目前为止,速度增益令人印象深刻。在一种情况下,代码的运行速度比 CPU 快 50 倍。但是我想知道是否可以在生产环境中开始使用此代码。原因是我第一次尝试运行示例代码时,没有任何效果。我可以通过在 Nvidia openCL SDK 下载页面上下载驱动程序来运行它(我有一个 Geforce GTX260)。在安装过程中它给了我一个蓝色,但之后我能够运行示例程序并创建我自己的代码。

它对我来说“开箱即用”的事实是否意味着主流驱动程序还不支持它,尽管它是专门写在驱动程序下载页面上的?ATI 支持呢?每个人都必须下载安装时蓝屏的特殊驱动程序吗?

简而言之,openCL 准备好用于生产代码了吗?

如果有人可以给我一些细节,我想知道。有没有人能够在许多不同的设备上运行一个简单的程序而无需安装任何与 SDK 相关的东西?

0 投票
8 回答
25090 浏览

opencl - OpenCL 调试器

我正在研究 OpenCL。有谁知道用于 OpenCL 的良好调试器,以便我可以进入 OpenCL 代码并进行跟踪?

0 投票
2 回答
2781 浏览

debugging - OpenCL 中错误代码的 perror() 等效项是什么?

如果我有类似的东西:

我想做:

但是 perror() 不知道诸如“CL_HOST_OUT_OF_MEMORY”之类的错误常量(可以理解)。

我可以四处寻找与 opencl 关联的 .h 文件,但这不是一个理想的解决方案。我愿意接受任何其他方便的方法来追踪错误号。我在 OSX Snow Leopard 上(包括以防万一,但我认为这无关紧要)

0 投票
4 回答
18937 浏览

types - OpenCL 内核中的自定义类型

是否可以在 OpenCL 内核中使用自定义类型,例如 gmp 类型 (mpz_t, mpq_t, ...)?

拥有这样的东西(这个内核不会仅仅因为#include <gmp.h>):

也许通过向第四个参数(选项)添加不同的参数clBuildProgram

还是 OpenCL 已经有了可以处理大量数字的类型?