2015-02-04 14 views
1

ли сопроцессоры как Intel Xeon-Phi предполагается использовать так же, как графические процессоры, так что один должны разгрузить большое количество блоков, исполняющих одно ядром, так что только общие пропускная способность обработка сопроцессора приводит к ускорению, ИЛИ Разгрузка независимых потоков (задач) также повысит эффективность?сопроцессор ускорителей по сравнению с графическими процессорами

+1

Как правило, оба требуют существенной степени параллелизма , Для чего-либо более значимого ваш вопрос чрезвычайно широк. –

+0

Неправильно предположить, что эти модели использования являются взаимоисключающими. Intel Xeon Phi поддерживает их обоих. Для более подробного ответа задайте более точный вопрос. – Jeff

ответ

2

Xeon Phi требует большой степени как функционального параллелизма (разных потоков), так и векторного параллелизма (SIMD). Поскольку ядра существенно усовершенствованы процессорами Pentium, серийный код работает медленно. Это несколько изменится со следующим поколением, поскольку оно будет использовать более быстрые и современные ядра. Нынешний Xeon Phi также страдает от узкого места ввода-вывода, как и любой сопроцессор, которому приходится общаться по шине PCIe.

Итак, вы можете разгрузить ядро ​​каждому процессору и использовать 512-разрядную векторию (аналогично GPGPU), вы также можете разделить свой код на множество различных функциональных блоков (т.е. разные коды/ядра) и запускать их на различные наборы процессоров Intel Xeon Phi. Опять же, различные блоки кода также должны использовать 512-битные SIMD-векторы.

Xeon Phi также работает как собственный процессор, поэтому вы можете получить доступ к другим ресурсам, установив деревья деревьев NFS, обмен данными между картами и другими процессорами в кластере с использованием TCP/IP, используя MPI и т. Д. Обратите внимание, что это не 'offload', но собственное выполнение. Но шина PCIe по-прежнему является значительным ограничителем ввода-вывода бутылки.

Резюмируя,

  • Вы можете нам модель Разгрузка аналогична той, которая используется GPGPUs, сама по себе может также поддерживать функциональный параллелизм (более одного ядра), но каждое ядро ​​должно также использовать
  • Xeon Phi 512-битный SIMD.
  • Вы также можете написать собственный код и использовать MPI, обработку Xeon Phi в качестве обычного (не-выгрузки) узла (всегда помня PCIe узкого I/O)
+0

Спасибо. Меня больше всего интересует использование OpenMP/OpenACC для разгрузки задач. Не могли бы вы узнать, как «threadblocks» * привязаны к ядрам? Являются ли блоки, запланированные так или иначе похожими на модель программирования CUDA (случайным образом)? Или всегда есть только один блок threadblock, который распределяет потоки во всех доступных ядрах? –

+1

С помощью OpenMP Intel предоставляет переменные среды, которые позволяют указать, где и как вы хотите, чтобы потоки были назначены. KMP_PLACE_THREADS позволяет указать количество ядер, которые вы хотели бы использовать, и сколько потоков вы хотели бы использовать на ядро. KMP_AFFINITY позволяет указать, как вы хотите, чтобы потоки были назначены. Компактная сродство будет назначать потоки в порядке. Ароматическое рассеяние будет пытаться поместить поток на сердечники круглым способом. Кстати, эти переменные работают и на других процессорах Intel. – froth

+0

@froth, где я могу найти дополнительную информацию об этом? (т. е. эти переменные, а также модель программирования для Intel Xeon Phi?) –

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

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