问题标签 [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.
c - cudaMemcpy 无法复制值
我正在调用 cudaMemcpy 并且副本成功返回,但是源值没有被复制到目标。我使用 memcpy() 写了一篇类似的文章,效果很好。我在这里想念什么?
..
没有一个 CUDAErrors 报告任何问题,但第二个 FAILURE 被调用..?
cuda - CUDA 或 OpenCL 中的稀疏数组
我有一个大数组(比如 512K 元素),驻留在 GPU 中,其中只需要处理一小部分元素(比如 5K 随机分布的元素 - 集合 S)。找出哪些元素属于 S 的算法非常有效,因此我可以轻松地创建一个数组 A,其中包含指向集合 S 中元素的指针或索引。
仅在 S 中的元素上运行 CUDA 或 OpenCL 内核的最有效方法是什么?我可以在数组 A 上运行内核吗?到目前为止,我看到的所有示例都处理连续的 1D、2D 或 3D 数组。引入一层间接有什么问题吗?
opencl - OpenCL:关于 SIMT 执行模型的基本问题
“SIMT”架构的一些概念和设计我仍然不清楚。
从我所看到和阅读的内容来看,完全不同的代码路径和 if() 是一个相当糟糕的主意,因为许多线程可能会步调一致地执行。现在这到底是什么意思?怎么样的东西:
参数“flag”对于所有工作单元都是相同的,并且所有工作单元都采用相同的分支。现在,GPU 是否会执行所有代码,仍然序列化所有内容,并且基本上仍然采用未采用的分支?还是更聪明一点,只要所有线程都同意所采用的分支,只会执行所采用的分支?这里总是如此。
即序列化总是发生还是仅在需要时发生?对不起这个愚蠢的问题。;)
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.
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 与这些数字有什么关系?
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 输出,包含所有受支持的扩展。
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 位单元格状态。
.net - openTK 与 openCL.NET
我开始在 .NET 上使用 openCL。openTK 与 openCL.NET 相比如何——哪个更好?
opengl - 当有 OpenCL 时,GLSL 的意义何在?
考虑一下标题中问题的完整形式:由于 OpenCL 可能是未来严重 GPU 编程的通用标准(在其他设备编程中),为什么不在为 OpenGL 编程时——以一种面向未来的方式——利用所有 GPU OpenCL 上的操作?这样您就可以获得 GLSL 的优势,而不受其编程限制。
opengl - GLSL 是否使用 SLI?有 OpenCL 吗?多 GPU 的 GLSL 或 OpenCL 哪个更好?
OpenGL 的 GLSL 在多大程度上利用了 SLI 设置?它是在执行时使用还是仅用于最终渲染?
同样,我知道 OpenCL 与 SLI 不同,但假设一个有多个 GPU,它在多处理方面与 GLSL 相比如何?
由于它可能取决于应用程序,例如常见转换或光线追踪,您能否提供有关不同应用程序类型差异的见解?