На 56-м каждогоднем Международном симпозиуме IEEE/ACM по микроархитектуре исследователи из Калифорнийского универа в Риверсайде (UCR) показали подход, при котором любые вычислительные составляющие платформы на самом деле будут трудиться одномоментно. За счёт этого можно в 2-ва раза прирастить скорость вычислений и в 2-ва раза уменьшить потребление энергии. Разработка может трудиться на всех микропроцессорах и ускорителях от телефонов до серверов ЦОД, но просит доработки.
«Для вас не надо [для ускорения вычислений] добавлять новые микропроцессоры, оттого что они у вас уже есть», — произнес Хунг-Вей Ценг (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 на плате был подключен ускоритель Гугл Edge (TPU).
Основная память представленной системы — это 4 Гигабайт LPDDR4 с частотой 1600 МГц и скоростью 25,6 Гбит/с, где хранятся общие данные. Блок Edge TPU дополнительно содержит 8 Мбайт памяти, а в качестве операционной системы употреблялся Ubuntu Линукс 18.04.
Старт на импровизированной гетерогенной платформе пакета SHMT с внедрением стандартных приложений для тестирования показал, что при более действенной политике фреймворк QAWS указывает повышение скорости вычислений в 1,95 раза и существенное уменьшение употребления — на 51 % по сопоставлению с базисным способом рассредотачивания вычислений. Если масштабировать данный подход для использования в составе ЦОД, то приз обещает стать колоссальным и при всем этом всё «железо» остается прежним — поменять ничего не придётся. Предложенное решение пока не готово к внедрению, но стопроцентов без усилий найдёт заинтересованных в этом лиц.