2015-05-22 20 views
0

Учитывая следующие инструкции низкого уровня (SASS) на последних двух поколениях графических процессоров NVIDIA (ref http://docs.nvidia.com/cuda/cuda-binary-utilities/index.html), каковы (возможно, предполагаемые) различия в структуре иерархии аппаратных средств/памяти (и производительности последствия)?Разница между памятью поверхности Kepler vs 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 
+0

ДОПОЛНИТЕЛЬНО: что именно делает SURED? обрабатывается ли ROP? Я видел это в наборе инструкций PTX, но он, похоже, не подвергается расширениям языка C (как прямым, так и косвенным API-интерфейсам). – FHoenig

ответ

3

CUDA массивы завернуть запатентованные макеты массива NVIDIA, которые оптимизированы для 2D и 3D местности. Перевод с координат на адрес намеренно запутывается у разработчиков, так как он может меняться от одной архитектуры к другой. Похоже, что NVIDIA решила перенести этот перевод по-разному от Kepler к Maxwell, при этом Kepler реализует более «подобный RISC» подход. САСС разборка surf2dmemset образца от CUDA Handbook (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; 

«ЕА» в Kepler инструкции означают «эффективный адрес», это более сложный вариант инструкции LEA (load effective address) в наборах CISC.

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

+0

«Массивы CUDA обертывают собственные макеты массивов NVIDIA, оптимизированные для 2D и 3D-местоположения. от координат до адреса намеренно запутывается от разработчиков, поскольку он может меняться от одной архитектуры к другой ». ... Да, конечно. Однако я надеялся на технический ответ. Рассматривает ли SUEAU этот «фирменный» макет? – FHoenig

+1

Да, похоже, что 'SUEAU' выводит вывод' SUBFM' и использует его для вычисления эффективного адреса. Я не вижу, как какой-либо ответ нетехнический. – ArchaeaSoftware

 Смежные вопросы

  • Нет связанных вопросов^_^