问题标签 [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 回答
5633 浏览

openmp - OpenCL:它是否与 OpenMP 配合得很好,我可以将其他语言连接到它,等等

OpenCL 的 1.0 规范几天前刚刚发布(规范在这里),我刚刚开始通读它。我想知道它是否与其他高性能多处理 API(如 OpenMP(规范))配合得很好,我想知道我应该学习什么。所以,这是我的基本问题:

  1. 如果我已经在使用 OpenMP,是否会破坏 OpenCL,反之亦然?
  2. OpenCL 比 OpenMP 更强大吗?或者它们是为了互补?
  3. 是否有将 OpenCL 程序连接到标准 C99 程序(或任何其他语言)的标准方法?它是什么?
  4. 有谁知道是否有人在写一本 OpenCL 书?我正在阅读规范,但我发现书籍更有帮助。
0 投票
5 回答
24753 浏览

c - Levenberg-Marquardt 算法如何以一种可以理解的方式详细地工作?

我是一名程序员,想了解 Levenberg-Marquardt 曲线拟合算法的工作原理,以便我自己实现它。是否有一个很好的教程可以解释它如何与作为程序员而不是数学家的读者一起详细解释它的工作原理。

我的目标是在 opencl 中实现这个算法,这样我就可以让它运行硬件加速。

0 投票
3 回答
6407 浏览

c++ - C++ 模板预处理器工具

是否有编译器或独立预处理器接受 C++ 文件并运行模板扩展传递,生成具有扩展模板实例化的新 C++ 代码?

我记得 90 年代中期这样的工具,当时模板还是新的和实验性的,预处理器是一种在没有原生模板支持的情况下使用编译器进行模板编程的方法。

这比宏处理步骤复杂得多,因为它可能需要解析和标记代码才能理解上下文。

我希望在编写 OpenCL 代码时使用这样的工具。 OpenCL是 C++,但不支持模板。我希望我可以编写模板,甚至是简单的模板,例如仅带有整数或布尔参数的模板,并使用一些工具预解析文件并通过查找模板的使用并扩展调用并为我提供新的 C++ 代码OpenCL 编译器可以理解。

即使是一个非常有限的工具也可能有用,它不需要支持每个模板怪癖,甚至不需要支持多个模块或任何东西。

替代方案:#define无处不在的宏......更丑陋,不安全,效率更低,通用性更低。

0 投票
7 回答
45616 浏览

sdk - 如何获取 OpenCL SDK?

我正在阅读http://www.khronos.org/网站,只找到了 OpenCL 的标头(不是我不关心的 OpenGL)。如何获取 OpenCL SDK?

0 投票
1 回答
1011 浏览

parallel-processing - 是否可以使用 OpenCL 框架执行 MIMD?

很快,我们将拥有能够对多个数据 (MIMD) 执行多个指令的 nVidia GTX 300。我想知道OpenCL是否可以执行MIMD?

0 投票
4 回答
3153 浏览

multithreading - 为什么 CUDA 和 OpenCL 中的 GPU 线程在网格中分配?

我只是在学习OpenCL,我正处于尝试启动内核的时候。为什么 GPU 线程是在网格中管理的?

我将详细阅读有关此内容的更多信息,但如果有一个简单的解释会很好。使用GPGPU时总是这样吗?

0 投票
2 回答
5331 浏览

gpgpu - 在混合供应商的硬件上运行 OpenCL

我一直在玩他们 Stream 2.0 beta 中的 ATI OpenCL 实现。当前测试版中的 OpenCL 目前仅使用 CPU,下一个版本应该支持 GPU 内核。我下载了 Stream,因为我的工作机器中有一个 ATI GPU。

我编写的软件可以从使用 GPU 的收益中受益匪浅。然而,这个软件在客户机器上运行,我没有奢侈(就像许多科学计算环境一样)选择要开发的确切硬件,并为此进行优化。所以我的问题是,如果我将 ATI OpenCL 实现与我的应用程序一起分发,这是否意味着它将永远无法使用例如 NVidia 视频卡?如果我使用 NVidia OpenCL SDK,它永远不会在 AMD 芯片上以最佳方式运行(考虑到 ATI/AMD 链接)?

换句话说,最终谁负责提供 OpenCL 实现?用户是否能够为他们的 NVidia 视频卡安装一个 OpenCL“驱动程序”,以及一个为他们的 AMD CPU 提供最佳性能的“驱动程序”?

顺便说一句,除了 Khronos 留言板之外,还有什么好的/积极的 OpenCL 支持论坛,或者那是去的地方吗?我看到 ATI 有一块板,NVidia 大概也有自己的,OpenCL 用户/开发者社区在哪里闲逛?它是否已经合并到一个地方?

0 投票
4 回答
6275 浏览

c++ - std::vector 和 c 样式数组

我正在尝试使用OpenCL来提高我们软件的速度。我们经常使用地图,为了简化,将地图表示为 std::vector< std::vector >。OpenCL API 将原始 c 风格的指针作为参数,例如上面例子中的 int*。

我的问题:

  • stl 中是否有实现保证向量在内部在内存中是连续的?
  • 我可以安全地将 std::vector 转换为 int* 并期望它起作用吗?
  • 在向量向量的情况下,我仍然可以假设这是正确的吗?我希望向量能够保存其他状态数据,或对齐问题,或者其他东西......
  • 解决这个问题的最佳方法是什么?编写一个自定义的 2d 数据结构,它包含一个内部的、连续的内存缓冲区并使用它?我必须从向量中复制很多...

谢谢。

0 投票
2 回答
3495 浏览

c++ - 使用 #include 加载 OpenCL 代码

我很久以前就看到过使用 hlsl/glsl 着色器代码完成此操作——#include在源代码文件上使用 a 将代码粘贴到 achar*中,以便在运行时不会发生文件 IO。

如果我将它表示为伪代码,它看起来有点像这样:

现在这当然#define行不通,因为它只会尝试使用这些引号来开始字符串。

0 投票
5 回答
8034 浏览

algorithm - 常用算法的 GPU 与 CPU 性能对比

我很想知道是否有任何常用算法(排序、搜索、图表等)已移植到 OpenCL(或任何 GPU 语言),以及性能与 CPU 执行的相同算法相比如何。我对结果(数字)特别感兴趣。

谢谢!