Как внешний интерфейс ядра в Xeon Phi распределяет инструкции для его U-трубы и V-трубы?

Согласно нескольким документам Intel, я понимаю, что ядро ​​на Xeon Phi может выдавать до 2 инструкций за цикл. Один на U-трубе и один на V-трубе. В следующей документации говорится, что интерфейс переключается между несколькими контекстами циклически. Эти 2 инструкции происходят из одного контекста? Или они могут прийти из разных контекстов? Я не думаю, что они могут, но я не нашел подробных документов по этому вопросу.

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

Источник: https://software.intel.com/en-us/articles/optimization-and-performance-tuning-for-intel-xeon-phi-coprocessors-part-2-understanding

Кроме того, предполагая, что у нас есть векторная инструкция и скалярная инструкция, передний конец выдает векторную в U-трубе и скалярную в V-трубе для достижения максимальной скорости выдачи? Мне интересно, потому что фактическое использование этих двух конвейеров влияет на частоту выпусков, учитывая, что V-труба может выполнять только небольшое подмножество векторных инструкций.

Ядро представляет собой процессор шириной 2, что означает, что он может выполнять две команды за цикл, одну для U-трубы, а другую для V-трубы. Он также содержит модуль x87 для выполнения команд с плавающей запятой, когда это необходимо.

...

Векторное устройство связывается с ядром и выполняет векторные инструкции, выделенные в U или V конвейере. Ядро может выполнять две команды за такт, одну на U-трубе и другую на V-трубе. V-pipe выполняет подмножество команд и регулируется правилами сопряжения команд, что важно учитывать при получении оптимальной производительности процессора.

Источник: https://software.intel.com/en-us/articles/intel-xeon-phi-core-micro-architecture

1 ответ

Процессор будет одновременно выдавать U и V трубы в одном и том же аппаратном контексте.

Он может сделать это только в том случае, если в потоке команд, связанных с этим аппаратным контекстом, имеются подходящие инструкции U и V pipe.

Поскольку KNC в порядке, довольно часто только одна труба может быть использована для каждой проблемы.

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