Ученые из Калифорнийского университета в Риверсайде создали новый метод, названный "одновременная и гетерогенная многопоточность" (SHMT), который базируется на современной технологии одновременной многопоточности. Многопоточность позволяет разделить ядро центрального процессора на несколько потоков, но SHMT идет еще дальше, объединяя графические ускорители и процессоры искусственного интеллекта.
Главное преимущество SHMT заключается в возможности этих компонентов одновременно работать с различными рабочими нагрузками, оптимизированными под их специфические возможности. Этот метод отличается от традиционного подхода, где центральный процессор, графический процессор и ускоритель искусственного интеллекта работают независимо.
SHMT использует "умный планировщик работы с учетом качества" (QAWS), который динамически управляет гетерогенной рабочей нагрузкой между компонентами. Это позволяет сбалансировать производительность и точность, распределяя задачи между процессорами в зависимости от их способности к обработке задач высокой точности. Кроме того, планировщик может в режиме реального времени переназначать задания между компонентами, если один из них отстает.
Проведенные тесты показали, что SHMT повышает производительность на 95 процентов и уменьшает энергопотребление на 51 процент по сравнению с существующими методами. Это ведет к значительному повышению эффективности в 4 раза. В тестировании использовалась плата Nvidia Jetson Nano с четырехъядерным процессором ARM, 128-ядерным графическим процессором Maxwell, 4 ГБ оперативной памяти и ускорителем искусственного интеллекта Edge TPU от Google. Хотя это не самое современное оборудование, оно является стандартным в индустрии. Однако, есть некоторые фундаментальные ограничения.
Ограничение SHMT не связано с самой моделью, а с возможностью программиста пересмотреть алгоритм, чтобы продемонстрировать простоту использования SHMT. Это не простая универсальная аппаратная реализация, доступная для любого разработчика.
Наибольшее улучшение производительности на 95 процентов было достигнуто при максимальной нагрузке в тестировании, в то время как меньшие нагрузки давали менее значительный результат из-за ограничений в возможности распределения параллельных задач. Однако, если этот метод сможет масштабироваться и получить широкую поддержку, его последствия могут быть внушительными.