В чем разница между инструкциями prefetch и prefetchu ptx?

Здесь в документации указано, что prefetch а также prefetchu инструкции ptx "строка предварительной выборки, содержащая общий адрес на указанном уровне иерархии памяти в указанном пространстве состояний". Также упоминается, что синтаксис

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.

1 ответ

Равномерный кэш действительно является постоянным кешем, как отмечено в книге "Проектирование и разработка приложений CUDA" следующим образом:

... "SM также содержит константу (помеченный как Uniform cache" (sic)...

https://books.google.com.tr/books?id=Y-XmJO2uwvMC&pg=PA112&lpg=PA112

Другие вопросы по тегам