4

这里在文档中指出,prefetchptxprefetchu指令“在指定状态空间中预取包含指定内存层次结构级别的通用地址的行”。还提到语法是

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

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

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

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

1 回答 1

2

统一缓存确实是常量缓存,如《CUDA应用设计与开发》一书中所述:

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

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

于 2015-12-28T21:42:31.733 回答