RCUDA
rCUDA — программный фреймворк типа middleware для удалённой виртуализации графических процессоров. Полностью совместим с CUDA и её интерфейсом программирования приложений (API), позволяет выделять одну или несколько поддерживаемых CUDA видеокарт для работы одного приложения. Каждая GPU может находиться как в составе кластера, так и работать внутри виртуальной машины. Такой подход направлен на повышение эффективности использования ресурсов в кластерах, где видеокарты загружены не полностью. Виртуализация GPU снижает необходимое количество видеокарт в кластере, что, в свою очередь, уменьшает общую стоимость — затраты на электроэнергию, приобретение и обслуживание.
Рекомендуемая архитектура распределённого ускорения — это кластер высокопроизводительных вычислений с видеокартами, подключёнными только к некоторым узлам. Когда узел без локального GPU выполняет приложение, требующее ресурсов видеокарты, удалённый запуск ядра обеспечивается пересылкой данных и кода между оперативной памятью локального узла и памятью удалённой видеокарты. rCUDA разрабатывалась для поддержки такой клиент-серверной архитектуры. На стороне клиента используется набор обёрток для интерфейса CUDA Runtime API высокого уровня, а на стороне сервера — сетевой сервис, принимающий запросы через TCP-порт. Несколько узлов, выполняющих различные приложения с ускорением на GPU, могут одновременно использовать весь набор ускорителей, установленных в кластере. Клиент пересылает запрос на один из серверов, который обращается к установленной видеокарте и выполняет вычисление. Временная мультиплексировка GPU, то есть совместное использование ресурсов, реализуется запуском различных серверных процессов для каждого запроса удалённого выполнения на видеокарте[1].[2][3][4][5][6]
Общие сведения
| rCUDA | |
|---|---|
| Тип | GPGPU |
| Разработчик | Политехнический университет Валенсии |
| Операционная система | Linux |
| Последняя версия | 20.07 (26 июля 2020) |
| Сайт | rcuda.net |
rCUDA v20.07
Пакет rCUDA позволяет одновременно использовать устройства с поддержкой CUDA удалённо.
Для связи между клиентами и серверами rCUDA применяет либо сеть InfiniBand, либо сокетный API. rCUDA может быть полезна в трёх различных сферах:
- Кластеры. Позволяет сократить число GPU, установленных в вычислительных кластерах, что ведёт к экономии электроэнергии, затрат на приобретение, обслуживание, размещение, охлаждение и т. д.
- Академическая область. В обычных вычислительных сетях предоставляет одновременный доступ к нескольким высокопроизводительным видеокартам большому числу студентов.
- Виртуальные машины. Позволяет предоставлять доступ к возможностям CUDA для приложений, запускаемых в виртуальных машинах на физическом оборудовании.
Текущая версия rCUDA (v20.07) поддерживает CUDA версии 9.0 (за исключением интеграции с графикой). rCUDA v20.07 рассчитана на работу под управлением Linux (64-битные архитектуры) как на стороне клиента, так и на стороне сервера.
Код приложений, использующих CUDA, не требует изменений для работы с rCUDA.
Примечания
- ↑ J. Prades; F. Silla (2019-12). “GPU-Job Migration: the rCUDA Case” [англ.]. Transactions on Parallel and Distributed Systems, vol 30, no. 12. Проверьте дату в
|date=(справка на английском) - ↑ J. Prades; C. Reaño; F. Silla (2019-03). “On the Effect of using rCUDA to Provide CUDA Acceleration to Xen Virtual Machines” [англ.]. Cluster Computing, vol.22, no. 1. Проверьте дату в
|date=(справка на английском) - ↑ F. Silla; S. Iserte; C. Reaño; J. Prades (2017-07). “On the Benefits of the Remote GPU Virtualization Mechanism: the rCUDA Case” [англ.]. Concurrency and Computation: Practice and Experience, vol. 29, no. 13. Проверьте дату в
|date=(справка на английском) - ↑ J. Prades; B. Varghese; C. Reaño; F. Silla (2017-10). “Multi-Tenant Virtual GPUs for Optimising Performance of a Financial Risk Application” [англ.]. Journal of Parallel and Distributed Computing, vol. 108. arXiv:1606.04473. Проверьте дату в
|date=(справка на английском) - ↑ F. Pérez; C. Reaño; F. Silla (2016-06-06). “Providing CUDA Acceleration to KVM Virtual Machines in InfiniBand Clusters with rCUDA” [англ.]. 16th IFIP International Conference on Distributed Applications and Interoperable Systems (DAIS 2016), Ираклион, Крит, Греция.
- ↑ S. Iserte; J. Prades; C. Reaño; F. Silla (2016-05-16). “Increasing the Performance of Data Centers by Combining Remote GPU Virtualization with Slurm” [англ.]. 16th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (CCGRID 2016), Картахена, Колумбия.