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

double - 特斯拉双精度

我正在寻找信息,如何在 tesla gpu 中实现硬件的双精度。我读过,两个流处理器正在处理单个双精度值,但我没有找到任何来自 nvidia 的官方文件。

提前致谢。PPS 为什么大多数 GPU 只使用单精度计算(因为颜色可以存储为 RR.GG.BB.TT,其中每个字符都是 8 位值)?

PS 谷歌它对我没有帮助

0 投票
3 回答
1666 浏览

cuda - CUDA 或 OpenCL 中的稀疏数组

我有一个大数组(比如 512K 元素),驻留在 GPU 中,其中只需要处理一小部分元素(比如 5K 随机分布的元素 - 集合 S)。找出哪些元素属于 S 的算法非常有效,因此我可以轻松地创建一个数组 A,其中包含指向集合 S 中元素的指针或索引。

仅在 S 中的元素上运行 CUDA 或 OpenCL 内核的最有效方法是什么?我可以在数组 A 上运行内核吗?到目前为止,我看到的所有示例都处理连续的 1D、2D 或 3D 数组。引入一层间接有什么问题吗?

0 投票
3 回答
1077 浏览

opencl - OpenCL:关于 SIMT 执行模型的基本问题

“SIMT”架构的一些概念和设计我仍然不清楚。

从我所看到和阅读的内容来看,完全不同的代码路径和 if() 是一个相当糟糕的主意,因为许多线程可能会步调一致地执行。现在这到底是什么意思?怎么样的东西:

参数“flag”对于所有工作单元都是相同的,并且所有工作单元都采用相同的分支。现在,GPU 是否会执行所有代码,仍然序列化所有内容,并且基本上仍然采用未采用的分支?还是更聪明一点,只要所有线程都同意所采用的分支,只会执行所采用的分支?这里总是如此。

即序列化总是发生还是仅在需要时发生?对不起这个愚蠢的问题。;)

0 投票
1 回答
2594 浏览

opencl - OpenCL, direct access to host memory from GPU kernels

Is there any way to allocate memory on host, that is accessible directly from GPU, without copying?

Like cudaHostGetDevicePointer in CUDA.

0 投票
1 回答
3302 浏览

queue - OpenCL 事件和命令队列

我正在将一个 CUDA 应用程序(如果你必须知道的话)翻译成 OpenCL。原始应用程序使用 C 风格的 CUDA API,使用单个流只是为了避免在读取结果时自动忙等待。

现在我注意到 OpenCL 命令队列看起来很像 CUDA 流。但是在设备读取命令中,同样在写入和内核执行命令中,我也注意到事件的参数。所以我想知道,按顺序执行设备写入、多个内核(例如,一次调用一个内核,然后调用 100 次调用另一个内核)和读取设备需要什么?

  1. 如果我只是将它们按顺序排入同一个队列,它们会像在 CUDA 中那样按顺序执行吗?
  2. 如果这不起作用,我可以/应该菊花链事件,使每个呼叫的等待列表成为前一个呼叫的事件吗?
  3. 或者我应该将所有以前的事件添加到每个呼叫的等待列表中,比如是否有 N^2 搜索依赖项或其他什么?
  4. 还是我只需要为每个调用单独调用 event.wait(),就像AMD 教程中所说的那样?

谢谢!

0 投票
4 回答
10557 浏览

cmake - 只在 cmake 中运行 C 预处理器?

我正在尝试使用 cmake 来简化我的 OpenCL 程序的分发。我有一个内核文件,其中包含几个头文件和其他源文件,我想要一个独立的可执行文件。

我的计划是让 cmake 在内核源代码上运行C预处理器,将 cl 文件及其包含的内容变成一个更易于使用的单元。

我可以通过使用 -E 调用 gcc/clang 来使用 add_custom_command 来执行此操作,但是我没有得到包含正确目录以在命令中查找各种头文件的标志,而且我看不到一个简单的方法查找要在对编译器的自定义调用中使用的所有当前包含目录。

有没有办法只在当前 cmake 环境的文件上运行C预处理器?

0 投票
2 回答
6034 浏览

memory - 如何确定 OpenCL 中的可用设备内存?

在分配缓冲区之前,我想知道我的设备上有多少可用内存。这可能吗?我知道CL_DEVICE_GLOBAL_MEM_SIZE总内存和CL_DEVICE_MAX_MEM_ALLOC_SIZE单个对象的最大大小,但我想知道当前的内存状态。

就目前而言,我可能不得不使用 OpenGL 供应商特定的扩展。

0 投票
2 回答
1601 浏览

function - Can OpenCL inline functions return OpenCL types?

I know OpenCL supports inline functions, but can those functions accept and return OpenCL types?

Specifically, I am interested in something with this signature: float4 func(float4 x, float4 y)

0 投票
2 回答
1223 浏览

open-source - Apple 使用 CLang 和 LLVM 实现的 OpenCL 是开源的吗?

很明显,Apple 有一个基于 Clang 和 LLVM的OpenCL实现。Apple 工程师还谈到了如何让 OpenCL 在 LLVM 上运行

然而,这个实现的代码是在某种开源许可下可用还是这个闭源软件?如果代码尚未发布,有人知道它是否可能在未来发布?在我们开始尝试实现我们自己的之前,想知道是否有基于 Clang 和 LLVM 的开源 OpenCL 实现......

0 投票
4 回答
7381 浏览

opengl - 当有 OpenCL 时,GLSL 的意义何在?

考虑一下标题中问题的完整形式:由于 OpenCL 可能是未来严重 GPU 编程的通用标准(在其他设备编程中),为什么不在为 OpenGL 编程时——以一种面向未来的方式——利用所有 GPU OpenCL 上的操作?这样您就可以获得 GLSL 的优势,而不受其编程限制。