В чем разница между инструкциями 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