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.

Примечания

  1. J. Prades; F. Silla (2019-12). “GPU-Job Migration: the rCUDA Case” [англ.]. Transactions on Parallel and Distributed Systems, vol 30, no. 12. Проверьте дату в |date= (справка на английском)
  2. 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= (справка на английском)
  3. 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= (справка на английском)
  4. 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= (справка на английском)
  5. 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), Ираклион, Крит, Греция.
  6. 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), Картахена, Колумбия.

Ссылки