Компания Intel опубликовала код для поддержки сопроцессора Knights Corner в Linux
Пока Knights Corner насчитывает всего 50 ядер, но уже способен обеспечить производительность до 1 терафлопса в операциях двойной точности. Для сравнения, самый мощный подобный специализированный вычислительный ускоритель NVIDIA Tesla, в аналогичных операциях демонстрирует топовый результат лишь на уровне 665 гигафлопс, что заметно ниже решения Intel. Важно подчеркнуть, что Knights Corner не является традиционным центральным процессором (CPU), это, скорее, сопроцессор, предназначенный для управления и ускорения сложных параллельных вычислений на многоядерных процессорах. Вторая его важная особенность – пока он единственный из существующих процессоров, который полностью поддерживает спецификацию PCI-Express 3.0.
Опубликованный программный стек для поддержки Knights Corner был самостоятельно реализован силами Intel специально для Linux, и предназначен в первую очередь для предоставления возможности создания суперкомпьютеров и сверхпроизводительных кластерных систем с обеспечением эффективных параллельных вычислений. Этот программный стек состоит в частности из модифицированного компилятора GCC, программного драйвера, а также специально модифицированного отладчика GDB. Также включается исходный код Linux-окружения, способного работать поверх процессоров Knights Corner. Данная реализация выполнена на основе ядра Linux 2.6.34 и была протестирована в дистрибутивах Red Hat Enterprise Linux 6 и SuSE Linux Enterprise Server 11.
Один из разработчиков Intel описывает программный стек для Knights Corner следующим образом: ”Представленное обновление обеспечивает поддержку нового набора инструкций и ABI, инициализирует и контролирует работу SMP, и предоставляет всё необходимое программное обеспечение для связывания воедино и синхронизации работы хост-системы и сопроцессора Knights Corner. Другая важная особенность обновления – интерфейс Symmetric Communications Interface (SCIF), оформленный в виде отдельного RPM-пакета, предоставляет механизм эффективного взаимодействия между разными вычислительными узлами в рамках одной платформы. Теперь в рамках SCIF узлом может выступать как устройство Knights Corner, так и процессор Intel Xeon. Таким образом, SCIF формализует детали реализации всех коммуникаций через шину PCI Express, также это дает возможность выполнять вызовы SCIF API как из пространства пользователя (uSCIF), так и из пространства ядра (kSCIF)”.
В тоже время разработчик подчеркивает о пока неполной реализации поддержки Knights Corner, в частности отсутствии поддержки векторных инструкций (vector instructions): ”Сейчас GCC для Knights Corner реально работает лишь при сборке ядра и связанных с ним системных инструментов. На данный момент наш релиз не предназначен для сборки приложений с поддержкой Knights Corner, попытка этого чаще всего будет приводить к тому, что будет использоваться старый медленный код”. При этом утверждается, что в следующем выпуске это будет исправлено путем генерации пользовательского кода с помощью GCC vectorizer, но пока для этого требуется более широкая техническая дискуссия в рамках сообщества разработчиков GCC, в частности о том, как наиболее правильно и эффективно это должно быть сделано.
Источник: http://www.opennet.ru/opennews/art.shtml?num=34098
|
0 | Tweet | Нравится |
|