相关疑难解决方法(0)

对于缓存的GPU,哪种内存访问模式更有效?

所以假设我有一个全局内存数组:

|a|b|c| |e|f|g| |i|j|k| |
Run Code Online (Sandbox Code Playgroud)

访问此内存有四个"线程"(OpenCL中的本地工作项),以及此访问的两种可能模式(列是时间片,行是线程):

   0 -> 1 -> 2 -> 3
t1 a -> b -> c -> .
t2 e -> f -> g -> .
t3 i -> j -> k -> .
t4 .    .    . `> .
Run Code Online (Sandbox Code Playgroud)

上述模式将数组拆分为块,每个线程迭代到并访问每个时间片的块中的下一个元素.我相信这种访问适用于CPU,因为它最大化了每个线程的缓存局部性.此外,编译器可以轻松地展开利用此模式的循环.

第二种模式:

   0 -> 1 -> 2 -> 3
t1 a -> e -> i -> .
t2 b -> f -> j -> .
t3 c -> g -> k -> .
t4 .    .    . …
Run Code Online (Sandbox Code Playgroud)

memory caching gpu gpgpu opencl

5
推荐指数
1
解决办法
914
查看次数

标签 统计

caching ×1

gpgpu ×1

gpu ×1

memory ×1

opencl ×1