Интеграция для арендатора

Подключите свой backend к удалённым GPU: ONNX-инференс и обучение CatBoost на CUDA. Свой nginx для моделей не обязателен — файлы можно загрузить через API.

Базовый URL API: https://gpu-share.ru

Аутентификация: Authorization: Bearer gpu_sk_… (ключ выдаёт администратор после заявки).

Два пути старта

Quick — проверка за 5 минут

Один POST /v1/gpu/invoke с публичной MNIST-моделью (без upload). Подходит для smoke-теста ключа и GPU.

Production — свои данные

POST /v1/artifacts → получите url → передайте в invoke. Для CatBoost: NPZ + JSON-конфиг (см. ниже).

Чеклист (10 шагов)

  1. Получить API-ключ gpu_sk_….
  2. Проверить GET /health и GET /v1/nodes (нужен узел online).
  3. Опционально: pip install gpu-share и gpu-share doctor --base-url … --api-key ….
  4. GET /v1/gpu/runtimesonnx_cuda, при train — catboost_cuda.
  5. Quick: invoke с публичным ONNX (пример в Swagger).
  6. Production: upload артефактов → invoke с returned URL.
  7. При CHECKSUM_MODE=enforce — SHA-256 при upload и в invoke.
  8. Poll GET /v1/gpu/invokes/{id} каждые 5–10 с до done.
  9. Результат в result: outputs_inline_base64 или outputs_url; metrics.device = cuda.
  10. Серия forward: POST /v1/gpu/sessions (модель в VRAM).

Hosted artifacts новое

Загрузка model / inputs / config без своего HTTPS:

curl -X POST "https://gpu-share.ru/v1/artifacts?kind=inputs&content_sha256=SHA256_HEX" \
  -H "Authorization: Bearer gpu_sk_…" \
  -H "Content-Type: application/octet-stream" \
  --data-binary @dataset.npz

Ответ: url, id, expires_at (TTL 24 ч). Используйте url в model_url / inputs_url.

kindЛимит
model, config64 MiB
inputs512 MiB
квота tenant10 GiB активных

Hello World (ONNX)

curl -s -X POST "https://gpu-share.ru/v1/gpu/invoke" \
  -H "Authorization: Bearer gpu_sk_…" \
  -H "Content-Type: application/json" \
  -d '{
    "runtime": "onnx_cuda",
    "model_url": "https://github.com/onnx/models/raw/main/validated/vision/classification/mnist/model/mnist-12.onnx",
    "inputs_url": "",
    "timeout_sec": 600
  }'

CatBoost train (catboost_cuda)

model_url — JSON train_config.json; inputs_url — NPZ с признаками и полем y.

curl -s -X POST "https://gpu-share.ru/v1/gpu/invoke" \
  -H "Authorization: Bearer gpu_sk_…" \
  -H "Content-Type: application/json" \
  -d '{
    "runtime": "catboost_cuda",
    "model_url": "https://gpu-share.ru/v1/artifacts/art_…/download",
    "inputs_url": "https://gpu-share.ru/v1/artifacts/art_…/download",
    "model_checksum_sha256": "…",
    "inputs_checksum_sha256": "…",
    "timeout_sec": 1200
  }'

Крупные результаты train — через outputs_upload (presigned PUT на ваш storage), не inline.

Документация

Ошибки

КодДействие
401Проверьте API key
422URL, runtime, checksum
503Нет online GPU — ждите провайдера
410Артефакт истёк — загрузите снова
failedGET …/logs