问题标签 [gpgpu]

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 投票
1 回答
4708 浏览

c - cudaMemcpy 无法复制值

我正在调用 cudaMemcpy 并且副本成功返回,但是源值没有被复制到目标。我使用 memcpy() 写了一篇类似的文章,效果很好。我在这里想念什么?

..

没有一个 CUDAErrors 报告任何问题,但第二个 FAILURE 被调用..?

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 投票
3 回答
38647 浏览

cuda - CUDA 模型 - 什么是经纱尺寸?

最大工作组大小和扭曲大小之间有什么关系?假设我的设备有 240 个 CUDA 流处理器 (SP) 并返回以下信息 -

CL_DEVICE_MAX_COMPUTE_UNITS:30

CL_DEVICE_MAX_WORK_ITEM_SIZES:512 / 512 / 64

CL_DEVICE_MAX_WORK_GROUP_SIZE:512

CL_NV_DEVICE_WARP_SIZE:32

这意味着每个流式多处理器(即计算单元)有 8 个 SP。现在warp size = 32 与这些数字有什么关系?

0 投票
3 回答
5309 浏览

opengl - 在 GLSL 片段着色器中,如何访问特定 mipmap 级别的纹素?

我正在使用 OpenGL 通过一个顶点着色器和一个片段着色器的组合来进行一些 GPGPU 计算。我需要对不同比例的图像进行计算。我想使用 mipmap,因为它们的生成可以是自动的和硬件加速的。但是我无法访问片段着色器中的 mipmap 纹理。

我启用了自动 mipmap 生成:glTexParameteri(GL_TEXTURE_2D, GL_GENERATE_MIPMAP, GL_TRUE);

我尝试在着色器中使用texture2DLod,但没有成功,它只是保持正常纹理。我还尝试在主程序中使用 glTextureParameteri(GL_BASE_LEVEL, X) 并没有改变任何东西。

你会怎么做?

我正在使用 Linux。我的显卡是相当老的 Nvidia Quadro。是我的 glxinfo 输出,包含所有受支持的扩展。

0 投票
1 回答
905 浏览

optimization - OpenGL ES 2.0 中元胞自动机的纹理格式

我需要一些快速的建议。

我想在 GPU 上模拟一个元胞自动机(来自A Simple, Efficient Method for Realistic Animation of Clouds )。但是,我仅限于不支持任何位运算的 OpenGL ES 2.0 着色器(在 WebGL 中)。

由于此元胞自动机中的每个单元都代表一个布尔值,因此每个单元存储 1 位将是理想的。那么在 OpenGL 的纹理格式中表示这些数据的最有效方法是什么?有什么技巧还是我应该坚持使用直接的 RGBA 纹理?

编辑:这是我到目前为止的想法......

目前我正在考虑使用普通的 GL_RGBA8、GL_RGBA4 或 GL_RGB5_A1:

  • 可能我可以选择 GL_RGBA8,并尝试使用浮点运算提取原始位。例如x*255.0,给出一个近似整数值。但是,提取单个位有点麻烦(即除以 2 并四舍五入几次)。我也对精度问题保持警惕。

  • 如果我选择 GL_RGBA4,我可以为每个组件存储 1.0 或 0.0,但我也可以尝试与之前使用 GL_RGBA8 相同的技巧。在这种情况下,它只是x*15.0. 不确定它是否会更快或看不到,因为提取位的操作应该更少,但每次纹理读取的信息更少。

  • 使用 GL_RGB5_A1 我可以尝试看看是否可以将我的单元格与一些附加信息打包在一起,例如每个体素的颜色,其中 alpha 通道存储 1 位单元格状态。

0 投票
1 回答
1896 浏览

.net - openTK 与 openCL.NET

我开始在 .NET 上使用 openCL。openTK 与 openCL.NET 相比如何——哪个更好?

0 投票
4 回答
7381 浏览

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

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

0 投票
3 回答
1939 浏览

opengl - GLSL 是否使用 SLI?有 OpenCL 吗?多 GPU 的 GLSL 或 OpenCL 哪个更好?

OpenGL 的 GLSL 在多大程度上利用了 SLI 设置?它是在执行时使用还是仅用于最终渲染?

同样,我知道 OpenCL 与 SLI 不同,但假设一个有多个 GPU,它在多处理方面与 GLSL 相比如何?

由于它可能取决于应用程序,例如常见转换或光线追踪,您能否提供有关不同应用程序类型差异的见解?