SCUDA — Как превратить удалённый GPU в локальный

30 Jun, 2026
2,314
🔱 121
👥 22

Знакомая ситуация — хочется поэкспериментировать с CUDA или обучить модель, но под рукой только слабый ноутбук? SCUDA решает эту проблему элегантно — позволяет "подключить" GPU с другой машины так, будто он установлен локально.

Что это за магия?

SCUDA (GPU-over-IP) — это мост между вашим CPU-устройством и удалённым GPU. Проект перехватывает CUDA-вызовы и прозрачно перенаправляет их по сети на сервер с реальной видеокартой. В результате:

  • Ваши приложения "думают", что работают с локальным GPU
  • Можно запускать CUDA-код даже на MacBook без видеокарты
  • Поддерживаются cuBLAS, cuDNN и другие библиотеки NVIDIA

Демонстрация работы SCUDA

Кому это нужно?

  1. Разработчикам ML-моделей — можно обучать модели на удалённом GPU, работая с ноутбука
  2. Инженерам-исследователям — тестировать CUDA-код без локальной видеокарты
  3. Командам с ограниченным бюджетом — делиться мощными GPU между несколькими разработчиками

Как это работает технически?

SCUDA состоит из двух компонентов:

  1. Сервер — запускается на машине с GPU и слушает входящие соединения
  2. Клиент — перехватывает CUDA-вызовы и отправляет их на сервер

Под капотом используется LD_PRELOAD для перехвата вызовов CUDA API. Вот как выглядит запуск клиента:

Реклама
LD_PRELOAD=./libscuda_12_0.so python3 -c "import torch; print(torch.cuda.is_available())"

Практические кейсы

  1. Тестирование CUDA-кода — проверяйте совместимость без локального GPU
  2. Распределённые вычисления — используйте пул удалённых GPU для обработки данных
  3. Обучение моделей — запускайте тренировки на мощном сервере с удобного ноутбука
  4. Инференс — выполняйте предсказания моделей на удалённом GPU

Насколько это быстро?

Авторы признают — TCP добавляет задержку. Но для многих задач (особенно пакетной обработки) это приемлемо. В планах — оптимизация производительности.

Как попробовать?

  1. Установите CUDA Toolkit и зависимости
  2. Сгенерируйте RPC-код:
cd codegen && python3 ./codegen.py
  1. Соберите проект через CMake
  2. Запустите сервер и подключитесь клиентом

Полная инструкция — в репозитории проекта.

SCUDA — многообещающий проект для тех, кто:

  • Работает с GPU, но не всегда имеет к ним доступ
  • Хочет централизовать управление GPU-ресурсами
  • Ищет бюджетное решение для распределённых вычислений

Если вы давно мечтали о возможности "арендовать" GPU по требованию — самое время поэкспериментировать с SCUDA!

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.