GPU при обучении загружен на 30-40 процентов, упёрся в даталоадер и не пойму куда копать

Рейтинг: 49% · 10 голосов
Machine learning и deep learning: обучение и дообучение моделей, датасеты, PyTorch, TensorFlow, эксперименты, метрики, MLOps и аналитика данных.
Ответить
Аватара пользователя
jwil1440
Сообщения: 51
Зарегистрирован: 11 май 2026, 05:07

GPU при обучении загружен на 30-40 процентов, упёрся в даталоадер и не пойму куда копать

Сообщение jwil1440 »

Учу ViT-S на своём датасете, 2.3 млн картинок, классификация. Сервер с A5000 24GB, торч 2.7, cuda 12.4. И вот беда: nvidia-smi показывает загрузку 30-40%, эпоха идёт почти 6 часов, по прикидкам должна быть часа 2.

Что имеем: картинки jpeg по 200-400кб лежат на сетевом сторадже (NFS, так исторически сложилось), стандартный ImageFolder плюс albumentations, batch 256, num_workers пробовал 8, 12, 16, разницы почти нет. pin_memory=True, AMP включён.

В htop воркеры даталоадера не упираются в 100% cpu, то есть вроде и не декод jpeg виноват? Но GPU явно голодает: на синтетических тензорах из памяти утилизация 95+ и скорость как ожидал.

Куда копать? Профилировщиком торча толком не умею пользоваться, если честно, тыкните, что там смотреть.
👍1 ❤️1 🔥1 😄 🤔
✔ Лучший ответ сформирован автоматически — Sdgator
Воркеры не в 100% cpu при голодающем GPU это почти всегда io, и твой NFS первый подозреваемый, выше правильно сказали. 2.3 млн мелких файлов по сети это худший паттерн для NFS, на каждый файл куча метадата-запросов. Если весь датасет на ноду не влезает (у тебя это что-то около 600-700 гигов), пакуй в шарды: webdataset или просто tar по 5-10к картинок. Читается последовательно, NFS такое переварив…
Перейти к ответу →
Аватара пользователя
Matemate
Сообщения: 6
Зарегистрирован: 15 май 2026, 05:03

Re: GPU при обучении загружен на 30-40 процентов, упёрся в даталоадер и не пойму куда копать

Сообщение Matemate »

@jwil1440, NFS. вот и весь тред. скопируй датасет на локальный nvme и приходи рассказывай
👍3 ❤️ 🔥 😄 🤔1
Аватара пользователя
Sdgator
Сообщения: 59
Зарегистрирован: 12 май 2026, 01:12

Re: GPU при обучении загружен на 30-40 процентов, упёрся в даталоадер и не пойму куда копать

Сообщение Sdgator »

✔ Лучший ответ — сформирован автоматически
Воркеры не в 100% cpu при голодающем GPU это почти всегда io, и твой NFS первый подозреваемый, выше правильно сказали. 2.3 млн мелких файлов по сети это худший паттерн для NFS, на каждый файл куча метадата-запросов.

Если весь датасет на ноду не влезает (у тебя это что-то около 600-700 гигов), пакуй в шарды: webdataset или просто tar по 5-10к картинок. Читается последовательно, NFS такое переваривает на порядок лучше, перепаковка это скрипт на полчаса.

По профилировке: torch.profiler с activities CPU+CUDA на 50 шагов, трейс открываешь в perfetto и смотришь дырки между cuda kernels. Если между батчами пустота по 200-300мс, это точно данные. Ну или совсем по-простому: замерь время next(iter(loader)) отдельно от форварда, сразу всё станет ясно.
👍 ❤️ 🔥 😄 🤔1
Аватара пользователя
svelte88
Сообщения: 63
Зарегистрирован: 12 май 2026, 11:49

Re: GPU при обучении загружен на 30-40 процентов, упёрся в даталоадер и не пойму куда копать

Сообщение svelte88 »

nvidia-smi utilization это кстати почти бесполезная цифра, она показывает, был ли хоть один kernel за период, а не насколько GPU занят реально. карта может показывать 90% и считать в полсилы. смотрите SM occupancy через dcgm или nsight, а не на этот градусник. в вашем случае и так понятно, что данные, но на будущее имейте в виду
👍1 ❤️1 🔥1 😄 🤔
Аватара пользователя
Manuelriere
Сообщения: 58
Зарегистрирован: 13 май 2026, 17:46

Re: GPU при обучении загружен на 30-40 процентов, упёрся в даталоадер и не пойму куда копать

Сообщение Manuelriere »

у меня была почти такая же картина, тоже грешил на диски, а виноваты оказались аугментации. albumentations с resize на оригинальных фотках в 3-4 мегапикселя жрёт будь здоров, при этом по htop размазано и в глаза не бросается. сделал офлайн ресайз всего датасета до 256px, он стал весить в 7 раз меньше и внезапно влез на локальный ssd. эпоха с 5 часов упала до полутора, два зайца одним скриптом
👍1 ❤️1 🔥2 😄 🤔
Аватара пользователя
wireguardmaker
Сообщения: 12
Зарегистрирован: 19 май 2026, 08:10

Re: GPU при обучении загружен на 30-40 процентов, упёрся в даталоадер и не пойму куда копать

Сообщение wireguardmaker »

а зачем вообще ViT-S на 2 млн картинок? возьми предобученный и файнтюнь, или convnext, на таких объёмах трансформер с нуля себя не оправдывает. понимаю, что вопрос был не об этом, но вы оптимизируете обучение, которое может и не нужно
👍1 ❤️ 🔥 😄 🤔1
Аватара пользователя
asyncpro
Сообщения: 17
Зарегистрирован: 15 май 2026, 10:37

Re: GPU при обучении загружен на 30-40 процентов, упёрся в даталоадер и не пойму куда копать

Сообщение asyncpro »

он и не говорил, что учит с нуля. и даже если файнтюн, 6 часов на эпоху при голодном GPU всё равно надо чинить, так что мимо
👍2 ❤️ 🔥 😄 🤔
Ответить
Поделиться темой: ✈ Telegram VK

Вернуться в «Машинное обучение и Data Science»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость