68 ядер в одном чипе: новая архитектура процессоров обещает 100-кратный прорыв

Flow Computing показала, как сочетание разных ядер перевернет мир вычислений.


wp2kymiexv859egvo58jvudtu2ox4msq.jpg


Финская компания Flow Computing представила новый подход к повышению производительности процессоров, стремясь вернуть им ключевую роль в современных вычислительных системах.

Flow Computing предлагает отказаться от традиционных архитектур с одинаковыми ядрами в пользу гибридной системы, которая сочетает стандартные ядра с блоками параллельной обработки (Parallel Processing Unit, PPU ). Такой подход может обеспечить рост производительности до 100 раз по сравнению с существующими решениями.

Новая архитектура предлагает использовать 4 стандартных ядра и 64 PPU на том же пространстве, что и традиционные решения с несколькими одинаковыми ядрами. Такой вариант оптимизирует выполнение задач, которые могут быть распараллелены. Концепция архитектуры была представлена на конференции IEEE Hot Chips в августе.

Блоки PPU предназначены для ускорения выполнения параллельных задач, когда стандартные процессоры неэффективны, а передача задач на графический процессор (GPU) слишком ресурсоемкая. Отмечается, что технология Flow Computing может быть полезна даже при небольших объемах задач, которые ранее считались трудными для распараллеливания из-за издержек на их распределение и синхронизацию.

В компании считают, что сложно создать единую архитектуру, которая была бы оптимизирована как для последовательных, так и для параллельных задач. Поэтому в решении Flow Computing функции разделяются: последовательные задачи обрабатываются стандартными ядрами процессора, а параллельные — PPU, что позволяет использовать сильные стороны каждого вида ядер.

Для оптимизации работы с параллельной обработкой данных в PPU учтены четыре основных аспекта:

  • Уменьшение задержек при доступе к памяти, что означает поиск решений для минимизации простоев, пока данные загружаются из памяти.
  • Достаточная пропускная способность для связи между потоками данных, которые выполняются параллельно.
  • Эффективная синхронизация, обеспечивающая правильный порядок выполнения параллельных частей кода.
  • Низкоуровневая параллельная обработка, то есть возможность одновременного использования нескольких функциональных блоков, выполняющих математические и логические операции.
PPU используют многопоточность для скрытия задержек при доступе к памяти: если поток вызывает данные из памяти, другой поток может продолжать выполнение, пока первый ожидает ответа. Гибкая коммуникационная сеть внутри PPU позволяет оптимизировать пропускную способность и реализовать низкоуровневую параллелизацию. Для минимизации задержек синхронизации разработан алгоритм wave synchronization, который, как заявляет компания, более эффективен по сравнению с традиционными протоколами.

Для демонстрации возможностей PPU был создан прототип на базе FPGA. В сравнительных тестах эта архитектура показала 100-кратный прирост производительности по сравнению с коммерческими процессорами, при условии использования PPU в виде кремниевого чипа с аналогичной частотой. В настоящее время команда работает над компилятором для PPU и рассматривает возможность сотрудничества с производителями процессоров для дальнейшего внедрения технологии.