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

cuda - 带有基准的 OpenCL 示例

我正在寻找一些 OpenCL 的介绍性示例,这些示例说明了可以体验到速度大幅提升(例如,50x-1000x)的应用程序类型。 Cuda有很多很好的例子,但我没有为 OpenCL 找到同样的例子。

一个很好的例子可能是通过粒子群、模拟退火、进化算法、蚁群优化等对复杂函数进行全局优化。

0 投票
3 回答
6817 浏览

c++ - 从指针计算数组索引

我和一些同行正在开发一款游戏(Rigs ofRods),并试图将 OpenCL 集成到物理计算中。同时,我们正在尝试对我们的数据结构进行一些急需的清理。我想我应该说我们正在尝试清理我们的数据结构并注意 OpenCL 的要求。

使用开放 CL 的问题之一是无法使用指针,因为内存空间不同。据我所知,OpenCL 是将所有数据复制到 GPU 上,然后执行计算,指针值将被复制,但地址与预期地址不对应。

有问题的数据集中在一个数组中,当对象需要该数据时,它们使用指向所需对象的指针,或存储数组索引。

考虑 OpenCL 的一种解决方案是使用数组索引而不是指针。这会导致硬耦合,这可能会在以后导致头痛。作为一种解决方案,我想到了根据起始地址和当前地址计算数组索引。这当然只适用于连续数组。

我编写了一个示例应用程序来测试它,它工作得很好,有些人也在不同的平台上对其进行了验证。

我担心这更像是一个杂乱无章的解决方案。我知道这在没有非连续记忆的情况下是行不通的。

基本上我的问题是这样的:
在已知的连续记忆中使用这种方法会有什么陷阱?
你怎么能说它是连续的?
人们在处理此类问题时使用了哪些方法?

谢谢,如果格式关闭,我很抱歉,这是我第一次发布问题。

0 投票
7 回答
3196 浏览

concurrency - 并行编程入门

所以看起来多核及其所有相关的并发症都将继续存在。我正在计划一个肯定会从并行性中受益的软件项目。问题是我几乎没有编写并发软件的经验。我在大学学习过它,并且很好地理解了概念和理论,但是从学校开始,我在构建可在多个处理器上运行的软件方面的有用经验为零。

所以我的问题是,开始多处理器编程的最佳方式是什么? 我主要熟悉 Mac OS X 上的 C/C++ 和 Obj-C 中的 Linux 开发,Windows 经验几乎为零。此外,我计划的软件项目将需要对大量数据进行 FFT 和可能的浮点比较。

有 OpenCL、OpenMP、MPI、POSIX 线程等……我应该从哪些技术入手?

以下是我正在考虑的几个堆栈选项,但不确定它们是否会让我尝试朝着我的目标努力:

  • 我应该获得 Snow Leopard 并尝试让 OpenCL Obj-C 程序在我的笔记本电脑上的 ATI X1600 GPU 上运行吗?或者
  • 我是否应该获得一个 Playstation 并尝试编写 C 代码以跨越其六个可用的 Cell SPE 内核?或者
  • 我应该用 Nvidia 卡构建一个 Linux 机器并尝试使用 CUDA 吗?

在此先感谢您的帮助。

0 投票
2 回答
1930 浏览

osx-snow-leopard - OpenCL 编译器预处理定义?

我正在 Snow Leopard 上开发 OpenCL 代码,并且了解 OpenCL 即时编译是由 Clang/LLVM 完成的。是否使用了 C 预处理器?有没有办法用编译器设置预处理定义?存在哪些定义?

我希望代码知道它是为 CPU 还是 GPU 编译的,所以我可以使用 printf 语句进行调试。

0 投票
3 回答
7138 浏览

osx-snow-leopard - 在 OpenCL 内核中使用 __constant 限定符

我在我的 OpenCL 内核中使用__constant限定符时遇到问题。我的平台是雪豹。

我尝试在 GPU 上初始化一个 CL 只读内存对象,将我的常量数组从主机复制到其中。然后我像使用__global内存参数一样设置内核参数,但这不能正常工作,但我没有看到任何错误或警告。我也尝试过直接在 clSetKernelArg 函数中使用数据,就像使用floatint类型一样,它都不起作用。

我犯了任何错误还是Apple的实施有问题?我想看看任何工作示例是如何完成的,包括 OpenCL (gpu) 和主机代码。

0 投票
2 回答
4008 浏览

xcode - How to get the linker in gcc to recognize OpenCL library functions?

I'm getting my feet wet with OpenCL. I'm sure this problem is not specific to OpenCL, however.

the top of my main file looks like:

I'm doing this on Snow Leopard. I can build and run Apple's examples using XCode. I can also compile and run NVIDIA's sample code by running make.

How do I properly compile my code without using XCODE?

0 投票
4 回答
5053 浏览

cell - 细胞处理器的死亡

上次我听到很多人声称 Cell 处理器已经死了,主要是由于以下原因:

  • 新的playstation 3缺乏支持,因为用户无法安装linux
  • GPU 处理能力的提高及其成本的下降
  • 存在针对不同 GPU 而不是针对 CBE 的统一编程方法 (openCL)(今天宣布针对 Cell!)
  • 现实世界中使用细胞的例子(学术界除外)
  • 全球的失败感

你怎么看?如果您在两三年前开始对单元进行编程,您会继续这样做还是考虑改用 GPU?新版本的细胞要来了吗?

谢谢

0 投票
2 回答
9871 浏览

c++ - 为什么我会收到 CL_MEM_OBJECT_ALLOCATION_FAILURE?

我在GPU上分配了一个 cl_mem 缓冲区并对其进行处理,它可以正常工作,直到超过某个大小。在这种情况下,分配本身会成功,但执行或复制不会。我确实想使用设备的内存来加快操作,所以我分配如下:

现在我不明白的是大小限制。我正在复制大约 16 MB,但应该能够使用大约 128 MB(请参阅 参考资料CL_DEVICE_MAX_MEM_ALLOC_SIZE)。

为什么这些数字相差如此之大?


以下是 oclDeviceQuery 的一些摘录:

0 投票
1 回答
5239 浏览

c - 简单的 OpenCL 程序编译运行但输出不正确

我基于 SDK 编写了一个简单的 OpenCL 程序,它可以编译并运行,但是输出错误。有什么我做错了吗?

非常感谢任何有关学习调试 C 和 OpenCL 的建议。我对这个平台很陌生。

代码如下。

数组 c 中的输出全为零。

谢谢。

test_opencl.h

test_opencl.cl

test_opencl.cpp

0 投票
2 回答
1208 浏览

c++ - 有没有在 openCL 之上构建的好的 3rd 方库?

我特别考虑处理原语,如 FFT、卷积、相关、矩阵数学、任何类型的机器视觉原语。我一直没能在这些方面找到任何东西,有人知道有什么好的项目如雨后春笋般涌现吗?