Финская компания Flow Computing разработала новый подход к улучшению производительности процессоров, чтобы вернуть им ключевую роль в мире современных вычислительных устройств.
Flow Computing предлагает отказаться от привычных архитектур со множеством одинаковых ядер и заменить их на гибридную систему, сочетающую стандартные ядра с уникальными блоками параллельной обработки (Parallel Processing Unit, PPU), что позволит увеличить производительность до 100 раз по сравнению с существующими решениями.
Вместо традиционных решений с несколькими одинаковыми ядрами, новая архитектура предполагает использование 4-х стандартных ядер и 64 PPU-ядер на том же пространстве. Такой подход призван увеличить эффективность при выполнении задач, которые можно совершать параллельно. На конференции IEEE Hot Chips в августе команда Flow Computing представилаконцепцию своей архитектуры.
PPU ускоряют выполнение параллельных задач, где стандартный ЦП не справляется с обработкой, а перенос задачи на графический процессор (GPU) может быть слишком затратным. Отмечается, что такая технология позволит оптимизировать работу даже с небольшими объемами задач, которые раньше считались непригодными для параллелизации из-за издержек на их распределение и синхронизацию.
В Flow Computing заявили, что архитектуру компьютера сложно оптимизировать для последовательных и параллельных задач одновременно. Поэтому разработка компании предполагает разделение функций: последовательные задачи обрабатываются стандартными ядрами ЦП, а параллельные – ядрами PPU, что позволяет использовать сильные стороны каждого из типов ядер.
Чтобы добиться оптимизации при параллельной обработке данных, PPU-архитектура ориентируется на 4 ключевых требования:
- снижение задержек при доступе к памяти, что означает поиск способов не просто простаивать, пока из памяти загружается следующая часть данных;
- обеспечение достаточной пропускной способности для связи между потоками данных – цепочками инструкций процессора, которые выполняются параллельно;
- эффективная синхронизация, что означает обеспечение выполнения параллельных частей кода в правильном порядке;
- использование низкоуровневой параллельной обработки – возможность использовать несколько функциональных блоков, которые фактически выполняют математические и логические операции одновременно.
Flow Computing разработала архитектуру, способную справляться с указанными требованиями.
В PPU применяется многопоточность для скрытия задержек доступа к памяти. Когда поток вызывает данные из памяти, другой поток может начать выполнение, пока первый ожидает ответа. Гибкая сеть коммуникации между функциональными блоками PPU обеспечивает оптимизацию пропускной способности и возможность низкоуровневой параллелизации. Для минимизации задержек синхронизации был разработан алгоритм wave synchronization, который, по утверждениям Flow Computing, в 10 000 раз эффективнее традиционных протоколов.
Для демонстрации возможностей PPU специалисты создали прототип на базе FPGA. В сравнительных тестах производительность PPU оказалась до 100 раз выше по сравнению с коммерческими процессорами при условии использования PPU в виде кремниевого чипа с той же частотой работы. Сейчас команда разрабатывает компилятор для PPU и ищет партнёров среди производителей процессоров для потенциального сотрудничества по внедрению технологии.