На 56-м ежегодном Международном симпозиуме IEEE/ACM по микроархитектуре исследователи из Калифорнийского университета в Риверсайде (UCR) продемонстрировали подход, при котором любые вычислительные компоненты платформы по-настоящему будут работать одновременно. За счёт этого можно в два раза увеличить скорость вычислений и в два раза сократить потребление энергии. Технология может работать на любых процессорах и ускорителях от смартфонов до серверов ЦОД, но требует доработки.
«Вам не нужно [для ускорения вычислений] добавлять новые процессоры, потому что они у вас уже есть», — сказал Хунг-Вей Ценг (Hung-Wei Tseng), адъюнкт-профессор факультета электротехники и вычислительной техники Калифорнийского университета и соавтор исследования. Необходимо лишь грамотно распорядиться имеющимися аппаратными ресурсами, а не выстраивать их все в очередь.
Разработанная исследователями платформа, которую они назвали одновременной и гетерогенной многопоточностью (SHMT), отходит от традиционных моделей программирования. Вместо того чтобы предоставлять за один промежуток времени данные лишь одному из вычислительных компонентов системы — центральному, графическому, тензорному или другому процессору или ускорителю, технология SHMT распараллеливает исполнение кода сразу по всем компонентам одновременно.
SHMT использует политику планирования многопоточности с учетом такого параметра, как quality-aware work-stealing (QAWS), которая не требует больших затрат ресурсов, но зато помогает поддерживать контроль качества и баланс рабочей нагрузки. Система исполнения создаёт и делит набор виртуальных операций (vOPS) на одну или несколько высокоуровневых операций (HLOPs) для одновременного использования нескольких аппаратных ресурсов. Затем система исполнения SHMT распределяет эти HLOPS по очередям задач для запуска на целевом оборудовании. Поскольку HLOPS не зависят от оборудования, система исполнения может перенаправлять задачи по мере необходимости на тот или иной компонент вычислительной платформы.
Что особенно ценно, исследователи на примере созданной ими тестовой платформы показали эффективность работы новых программных библиотек. Они создали некий гибрид, который можно считать как смартфоном, так и подобием ПК и даже сервера. На базе объединяющей платы с разъёмом PCIe был создан «компьютер» из комбинации модуля NVIDIA Nano Jetson с четырёхъядерным процессором ARM Cortex-A57 (CPU) и 128 графическими ядрами архитектуры Maxwell (GPU). Через слот M.2 Key E на плате был подключен ускоритель Google Edge (TPU).
Основная память представленной системы — это 4 Гбайт LPDDR4 с частотой 1600 МГц и скоростью 25,6 Гбит/с, где хранятся общие данные. Модуль Edge TPU дополнительно содержит 8 Мбайт памяти, а в качестве операционной системы использовался Ubuntu Linux 18.04.
Запуск на импровизированной гетерогенной платформе пакета SHMT с использованием стандартных приложений для тестирования показал, что при наиболее эффективной политике фреймворк QAWS показывает увеличение скорости вычислений в 1,95 раза и значительное сокращение потребления — на 51 % по сравнению с базовым методом распределения вычислений. Если масштабировать этот подход для использования в составе ЦОД, то выигрыш обещает оказаться колоссальным и при этом всё «железо» останется прежним — менять ничего не придётся. Предложенное решение пока не готово к внедрению, но наверняка без труда найдёт заинтересованных в этом лиц.
Источник: