Разница между поверхностной памятью Кеплера и Максвелла

Учитывая следующие инструкции низкого уровня (SASS) для последних двух поколений графических процессоров NVIDIA (ref http://docs.nvidia.com/cuda/cuda-binary-utilities/index.html), каковы (возможно, предполагаемые) различия в структуре иерархии оборудования / памяти (и последствия для производительности)?

Инструкции по поверхностной памяти MAXWELL

SUATOM  Surface Reduction
SULD    Surface Load
SURED   Atomic Reduction on surface memory
SUST    Surface Store

Инструкции по поверхностной памяти KEPLER

SUCLAMP Surface Clamp
SUBFM   Surface Bit Field Merge
SUEAU   Surface Effective Address
SULDGA  Surface Load Generic Address
SUSTGA  Surface Store Generic Address

1 ответ

Массивы CUDA обертывают собственные макеты массивов NVIDIA, оптимизированные для 2D и 3D локализаций. Перевод от координат к адресу преднамеренно запутан разработчиками, поскольку он может меняться от одной архитектуры к другой. Похоже, что NVIDIA решила обернуть этот перевод по-разному - от Kepler до Maxwell, поскольку Kepler внедряет более "RISC-подобный" подход. SASS разборка из surf2dmemset Пример из Руководства CUDA ( https://github.com/ArchaeaSoftware/cudahandbook/blob/master/texturing/surf2Dmemset.cu) показывает 6 инструкций для записи выходных данных:

 SUCLAMP PT, R8, R7, c[0x0][0x164], 0x0;
 SUCLAMP.SD.R4 PT, R6, R6, c[0x0][0x15c], 0x0;
 IMADSP.SD R9, R8, c[0x0][0x160], R6;
 SUBFM P0, R8, R6, R8, R9;
 SUEAU R9, R9, R8, c[0x0][0x154];
 SUSTGA.B.32.TRAP.U8 [R8], c[0x0][0x158], R10, P0;

по сравнению с Максвеллом:

 SUST.D.BA.2D.TRAP [R2], R8, 0x55;

"EA" в инструкциях Kepler означает "эффективный адрес", это более сложный вариант инструкции LEA (эффективный адрес загрузки) в наборах команд CISC.

Что касается SURED/SUATOMэто должны быть поверхностные эквиваленты GRED/GATOM, Оба выполняют атомарные операции, но ATOM варианты возвращают предыдущее значение ячейки памяти и RED вариантов нет. Им не нужны разные внутренние свойства; компилятор выдает правильную инструкцию автоматически.

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