Выполнение инструкции в GPGPU

Я изучаю аппаратное обеспечение графического процессора (архитектура AMD GCN). Я немного смущен выполнением инструкций. Позвольте мне привести пример:

      for(i=0;i<64;i++) c[i] = a[i] + b[i] 

для приведенного выше кода. Предполагая, что деформация/волновой фронт имеет 64 потока. Теперь один варп/волновой фронт содержит следующие инструкции:

  1. PC+0 имеет векторную загрузку a (инструкция simd)
  2. PC+4 имеет векторную нагрузку b (инструкция simd)
  3. PC+8 имеет векторное добавление (инструкция simd)
  4. PC+12 имеет векторное хранилище c в памяти (инструкция simd)

AMD GCN имеет 4 SIM-карты. Теперь только один варп/волновой фронт обрабатывается одним SIMD. Предположим, SIMD0 выполняется над варпом. Каждый SIMD имеет 16 векторов alu.

Согласно техническому документу, они упомянули, что для выполнения 64 потоков требуется 4 цикла. Мой вопрос заключается в том, как работает одна инструкция SIMD. У меня нет ясности в этих понятиях. Пожалуйста, поправьте меня, если я ошибаюсь в объяснении приведенного выше примера.

0 ответов

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