prefetch和prefetchu ptx指令有什么区别?

时间:2015-04-06 00:03:42

标签: cuda gpu gpgpu prefetch ptx

文档中的

Here表示prefetchprefetchu ptx指令" 预取行包含指定级别的内存层次结构中的通用地址,在指定的状态空间"。还提到语法是

prefetch{.space}.level [a]; // prefetch to data cache
prefetchu.L1 [a]; // prefetch to uniform cache

.space = { .global, .local };
.level = { .L1, .L2 };

我想知道这里提到的是uniform cache;而语法(在第二行)指定数据将被预取到L1中?在存在允许预取到L1的prefetchu指令的情况下,prefetch是多余的?例如,下面的代码行之间有什么区别?

prefetch.global.L1  [a];  // a maps to global memory.
prefetchu.L1  [a];  // a maps to global memory.

1 个答案:

答案 0 :(得分:1)

统一缓存确实是常量缓存,如“CUDA应用程序设计和开发”一书中所述,如下所示:

...“SM还包含常量(标记的统一缓存”(原文如此)......

https://books.google.com.tr/books?id=Y-XmJO2uwvMC&pg=PA112&lpg=PA112#v=onepage&q&f=false