Я работаю над проектом, включающим FastAPI с моделью сегментации чего угодно (SAM) для обработки изображений. У меня есть установка CUDA с графическим процессором (NVIDIA RTX A4000), доступным для ускорения, и я использую FastAPI с 15 рабочими процессами. Однако когда я запускаю сервер FastAPI, используя следующий интерфейс командной строки:
Код: Выделить всё
uvicorn server:app --port 5008 --host 0.0.0.0 --workers 15
только 3–5 рабочих загружаются правильно. Я столкнулся с ошибкой памяти CUDA для остальных рабочих процессов, указывающей на то, что памяти недостаточно. Конкретное сообщение об ошибке, которое я получаю:
Код: Выделить всё
"RuntimeError: CUDA out of memory. Tried to allocate X MiB"
Я пробовал загружать модель SAM при запуске рабочих процессов, но по-прежнему сталкиваюсь с той же проблемой: у рабочих не хватает памяти CUDA. Есть ли способ настроить FastAPI или рабочие процессы для более эффективного использования доступной памяти CUDA, чтобы я мог использовать все 15 рабочих процессов без ошибок памяти?
Буду признателен за любую информацию или предложения по оптимизации использования памяти CUDA для всех работников FastAPI. Спасибо!
Подробнее здесь:
https://stackoverflow.com/questions/784 ... emory-erro