问题标签 [gpu-local-memory]
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.
memory - Vulkan 是否支持本地子组内存共享和操作?
在 OpenCL 中,__local
只要我想操作子组内存,我就可以使用它。类比 CUDA 有__shared__
关键字。Vulkan 有类似的东西吗?我在子组教程https://www.khronos.org/blog/vulkan-subgroup-tutorial中看不到任何内容,
尽管我确实看到他们提到了共享内存,但他们从未真正解释过如何初始化它。
opencl - 在 Intel UHD 620 上使用本地内存没有任何好处
我是这些 GPGPU 的新手,现在正在尝试使用 OpenCL 进行 k-means 聚类。出于教育目的,我正在尝试使用N个点和一个质心来实现平方距离表计算的最大性能。
为此,我使用集成的 Intel UHD 620 GPU 并进行了合成设置以简化测试(N 是输入点的总数,D 是每个点的维度):
N:131072 D:256 WorkItemDimensions:1 LocalWorkSize:256
我的幼稚实现使用输入点的合并读取(D x N 矩阵)并给我20.44 MFLOPS(假设我的 GPU 的 peek 性能为~430 GFLOPS看起来真的很糟糕)。这是我天真的内核:
据我了解,对于此类问题,主要瓶颈是内存带宽,因此我决定尝试通过将其放入本地内存来减少对全局质心缓冲区的访问。我的工作组大小是 256,因此我希望将单个质心向量复制到本地内存会提高性能,但没有运气 - 下面的代码给了我19.78 MFLOPS。
现在我真的很想弄清楚这里发生了什么,以及如何为这项任务获得至少 50% 的峰值性能。
提前致谢!