«Одновременная и гетерогенная многопоточность» (SHMT) — это программная среда, которая использует преимущества гетерогенных вычислительных систем, содержащих смесь центрального процессора | ЦП, графического процессора | графических процессоров и оборудования для машинного обучения специального назначения (например, Тензорный процессор|TPU).
Каждый компонент обрабатывает информацию по-своему. Часто данным приходится перемещаться между процессорами, что может создавать узкие места, когда один процессор не работает, ожидая завершения работы другого.
== Архитектура ==
Система определяет виртуальные процессоры и виртуальные операции (VOP). VOP разбиваются на одну или несколько операций высокого уровня (HLOP). Затем он распределяет операции между процессорами. Затем система выполнения динамически сопоставляет виртуальные процессоры с физическими процессорами, оценивая доступность ресурсов, чтобы все процессоры были заняты. Планировщик использует упрощенную политику кражи работы (QAWS) с учетом качества.
Обычные среды выполнения назначают один процессор (набор) для каждой подзадачи, оставляя другие типы процессоров простаивающими. Другими словами, процессор(ы) работают (возможно, параллельно), а затем, когда эта подзадача завершается, следующая подзадача передается на графический процессор(ы). Когда они завершат, следующая подзадача передается TPU.
Добавление программной конвейеризации позволяет выполнять вторую подзадачу с использованием частичных результатов первой подзадачи, что улучшает использование ресурсов.
SHMT делает еще один шаг вперед, определяя подзадачи, которые могут выполняться независимо от других на соответствующем типе процессора, что обеспечивает еще лучший параллелизм. Некоторые подзадачи могут выполняться на процессорах нескольких типов. SHMT может разделить одну подзадачу на такие типы процессоров. Таким образом, фундаментальный прорыв заключается в том, чтобы обеспечить одновременную работу большего количества процессоров, сокращая затраты времени и энергии.
== Тест ==
Исследователи протестировали эту концепцию, используя типичную конфигурацию смартфона, измененную так, чтобы она напоминала сервер центра обработки данных.
Аппаратное обеспечение представляло собой модуль Nvidia Jetson | NVIDIA Jetson Nano, содержащий четырехъядерный процессор ARM Cortex-A57 (ЦП) и 128 ядер графического процессора архитектуры Maxwell. Тензорный процессор Google|Edge TPU был подключен через слот M.2 Key E. Процессоры взаимодействовали через встроенный интерфейс PCIe. Общие данные размещались в 64-разрядном диске LPDDR|LPDDR4 объемом 4 ГБ. Edge TPU добавляет 8 МБ памяти устройства. Операционной системой была Ubuntu Linux 18.04.
По сравнению с обычной системой производительность увеличилась в 1,95 раза, а энергопотребление снизилось на 51 % по ряду тестов, включая Blackscholes, DCT8X8, DWT, FFT, Histogram, Hotspot, Laplacian, MF, Sobel, SRAD и GMEAN. .
== См. также ==
* Одновременная многопоточность
* Тема (вычисления)
* Симметричная многопроцессорность
* Асимметричная многопроцессорность
== Ссылки ==
Архитектура программного обеспечения
Параллельные вычисления