Увеличиваем производительность автоматика
Данный гайд написан для Windows. Линуксогоспода могут попытать счастья в обновлении torch/xformers по альтернативному гайду.
Обновляем библиотеки torch, torchvision и xformers
Памятка по обучению
torch 2.0 несовместим с актуальной версией sd_dreambooth_extension (на состояние 16.02.2023). Если вам нужна возможность обучать LoRA или полновесные модели, то у вас есть такие варианты:
- Держать отдельную версию автоматика со старыми либами и использовать её для обучения
- Либо использовать sd-scripts. Подробную информацию можно найти в LoRA-гайде от анонов
Ожидаемое изменение производительности генераций
Обновление либ даёт существенный прирост производительности для 40XX поколения, и менее значительный для 30XX и 20XX.
Нижерасположенная таблица содержит отчёты анонов об изменении производительности после обновления либ.
Видеокарта | Производительность после обновления либ |
---|---|
RTX 4090 | +70% — +100% [1] [2] |
RTX 3080 | -5% — +15% [1] [2] |
RTX 3070 | +15% — +20% [1] |
RTX 3060 | +8% [1] |
RTX 2060 Super | +10% — +15% [1] |
Вариант 1 (простой путь) - используем заранее скомпилированные либы
- Открываем консоль в папке с автоматиком и выполняем данную команду. Она необходима для того, чтобы все дальнейшие манипуляции с python-пакетами применялись к текущей директории (где находится установленный автоматик), а не ко всей системе глобально
- Удаляем старые версии либ
- Ставим либы от 18.02.2023
- На этом всё
Вариант 2 (путь страданий) - используем свежайшие версии torch, torchvision и компилируем xformers из исходников
Disclaimer
Данный вариант требует наличие прямых рук и умение гуглить, если консолька упала с ошибкой. Используйте данную инструкцию на свой страх и риск.
В то время, как последние версии библиотек torch и torchvision ежедневно публикуются в виде скомпилированных пакетов, готовых к установке, xformers актуальных версий поставляется только в виде исходников, так что, для получения последней версии, вам придётся собрать его из исходников.
Устанавливаем инструменты для компиляции xformers
Для компиляции xformers на вашей машине должны быть установлены Windows SDK и MSVC, которые входят в комплект MS Build tools. Также вам необходим CUDA SDK.
Установка Windows SDK и MSVC Build tools
Качаем MS Build tools с официального сайта Microsoft, запускаем и выбираем вкладку Individual components
В появившемся списке ищем и проставляем галки для компонентов Windows 10 SDK
(либо Windows 11 SDK
, оба варианта будут работать на Windows 10) и MSVC x64/x86 build tools (Latest)
в списке компонентов для установки. Панель справа должна выглядеть попохожей на картинку ниже.
Проверяем, что всё проставили корректно и устанавливаем.
Установка CUDA SDK
Качаем CUDA SDK с официального сайта NVidia и устанавливаем компоненты Development и Runtime.
Получение и компиляция последних версий библиотек
Получаем последние версии torch и torchvision
Необходимо найти актуальные версии библиотек torch и torchvision, билды которых ежедневно публикуются на официальном сайте pytorch.
Чтобы понять, какой файл из списка вам нужен, необходимо понимать структуру умени публикуемых файлов - она отображена на иллюстрации ниже.
Вам необходимо найти библиотеки torch 2.0
и torchvision 0.15
, которые удовлетворяют следующим условиям:
- выпущены как можно позднее (в идеале - сегодня или вчера); билды публикуются каждый день
- собраны под CUDA 11.8
- используют Python 3.10 (эта версия питона используется в автоматике, так что вам нужна именно она, даже если у вас глобально в системе используется более новая версия)
- собраны под вашу платформу
Вы можете скачать их через браузер, либо сохранить http-ссылки на загрузку файлов и потом использовать их напрямую при установке, оба варианта команд, приведённых ниже, являются корректными (не надо их выполнять, это пример):
Устанавливаем свежий torch и torchvision
- После того, как нашли (или скачали) нужные нам версии библиотек torch и torchvision, открываем консоль в папке с автоматиком и выполняем данную команду. Она необходима для того, чтобы все дальнейшие манипуляции с python-пакетами применялись к текущей директории (где находится установленный автоматик), а не ко всей системе глобально
- Удаляем старые версии либ (кроме torch и torchvision мы сразу удаляем xformers, который мы соберём позднее)
- Устанавливаем последние версии torch и torchvision, которые мы нашли ранее:
Как только оба файла установились, можете их удалить (если вы скачивали их заранее), их содержимое уже установлено в автоматик.
Компилируем и устанавливаем xformers
Свежие версии xformers поставляются только в виде исходников, поэтому вам придётся скомпилировать их вручную. Для этого необходимо выполнить следующие команды:
В последней команде точка обязательна. Скорость компиляции xformers зависит от того, насколько быстрый у вас процессор. На 5900x это занимает минут 5.
По завершении данных манипуляций у вас должны быть установлены последние версии torch, torchvision и xformers.
Hardware scheduling
Неоднократно была упомянута информация, что выключение hardware scheduling приводит к увеличению производительности.
Переключатель искать в Settings -> Display -> Graphics settings
.
TODO
- Добавить опросник для сбора статистики по приросту производительности
- Добавить информацию про triton