О чём это руководство
Ускорители Huawei привлекают простой арифметикой: много видеопамяти за цену заметно ниже сопоставимых решений NVIDIA. Для задач, где объём памяти определяет саму возможность запустить модель, аргумент весомый.
Но за экономию приходится платить временем на настройку. Это не устройство, которое заработает после установки драйвера — платформа требует специфической подготовки окружения, где важен и порядок действий, и версии компонентов.
Ниже — путь от чистой системы до первого работающего инференса на Atlas 300i Duo 96GB. Каждый шаг с объяснением, почему он именно такой: без этого при отклонении от инструкции непонятно, что чинить.
Шаг 1. Выбор операционной системы
Первое решение определяет, получится ли всё остальное.
Для Atlas 300i Duo 96GB рекомендуется Ubuntu Server 20.04. Именно на ней стек драйверов Ascend работает предсказуемо.
Формально поддерживается и 22.04, включая настольные редакции, но на практике стабильность ниже. Более свежие выпуски использовать не получится — они несовместимы со стеком драйверов и библиотек, которого требует ускоритель.
Это не особенность конкретной модели: аналогичная ситуация со всей линейкой на чипах Ascend, где под каждое решение собирается своё специфическое окружение.
Вывод для планирования: сервер под этот ускоритель придётся держать на старой версии системы. Если в вашей инфраструктуре есть требование к актуальным версиям ОС, это нужно согласовать заранее.
Шаг 2. Системные зависимости
После установки системы обновляем список пакетов:
sudo apt update
Важный нюанс: команду apt upgrade выполнять не нужно. Обновление системы целиком способно нарушить совместимость с драйверами, которые мы будем ставить дальше. Обновляем только индекс пакетов, не сами пакеты.
Дальнейшие шаги требуют прав администратора, поэтому переходим в root-режим:
sudo -s
Устанавливаем набор пакетов, необходимых для сборки и работы драйверов:
apt install build-essential gcc g++ make cmake unzip zlib1g-dev libbz2-dev python3-pip libssl-dev libncurses5-dev liblzma-dev mc vim dkms module-assistant linux-headers-$(uname -r) docker net-tools
Что здесь и зачем:
- build-essential, gcc, g++, make, cmake — компиляторы и инструменты сборки;
- zlib1g-dev, libbz2-dev, libssl-dev, liblzma-dev — библиотеки для работы с архивами и криптографией;
- python3-pip — понадобится для Python-окружения;
- dkms, module-assistant, linux-headers — необходимы для сборки модулей ядра, без них драйвер не соберётся;
- docker, net-tools — потребуются на последующих этапах.
Шаг 3. Драйверы Ascend
Самый ответственный этап. Здесь чаще всего и возникают проблемы.
Обязательный шаг, который легко пропустить
Перед установкой нужно вручную создать пользователя и группу HwHiAiUser. Имя фиксированное — драйверы ожидают именно его и сами не создают:
groupadd HwHiAiUser
useradd -g HwHiAiUser HwHiAiUser
Пропуск этого шага приводит к ошибкам установки, причина которых по сообщению не всегда очевидна.
Что понадобится
Три установочных файла, которые стоит заранее собрать в одну директорию:
Ascend-hdk-310p-npu-driver_<версия>.run— драйвер устройства;Ascend-cann-toolkit_<версия>.run— набор инструментов CANN;Ascend-cann-kernels-310p_<версия>.run— вычислительные ядра под платформу 310p.
Делаем их исполняемыми:
chmod +x *.run
Порядок установки имеет значение
Компоненты ставятся строго в этой последовательности: сначала драйвер, затем набор инструментов, и только потом вычислительные ядра. Нарушение порядка приводит к ошибкам:
./Ascend-hdk-310p-npu-driver_<версия>.run --full
./Ascend-cann-toolkit_<версия>.run --install
./Ascend-cann-kernels-310p_<версия>.run --install
Обратите внимание: ключи запуска у пакетов разные — у драйвера --full, у остальных --install. Это не опечатка и не взаимозаменяемые варианты.
После установки всех трёх компонентов перезагружаем сервер:
reboot
Шаг 4. Проверка ускорителя
После перезагрузки убеждаемся, что оба чипа видны системе.
Для управления используется фирменная утилита, входящая в набор инструментов. Запускаем от администратора:
npu-smi info
По назначению это прямой аналог привычной nvidia-smi: показывает загрузку каждого из двух чипов ускорителя, температуру и потребление памяти в реальном времени.
Дополнительно проверяем наличие устройств на уровне ядра:
ls /dev/
В выводе должны присутствовать:
- davinci0 и davinci1 — два физических чипа ускорителя;
- davinci_manager — управление ими на уровне драйвера.
Если все три устройства на месте, а утилита возвращает корректные данные — ускоритель готов к работе. Если чего-то не хватает, возвращайтесь к предыдущему шагу: чаще всего причина в порядке установки или в отсутствии пользователя HwHiAiUser.
Шаг 5. Рабочее окружение в Docker
Дальше нужна среда для запуска кода на PyTorch с поддержкой ускорителя.
Собирать её вручную можно, но это долго: приходится увязывать между собой драйвер, набор инструментов CANN и отдельно устанавливаемую поддержку PyTorch для NPU. Компонентов много, и они взаимозависимы.
Практичнее взять готовый образ, собранный сообществом. Запускаем контейнер с пробросом устройств ускорителя и файлов драйвера:
docker run --name ascend_container --device /dev/davinci1 --device /dev/davinci0 --device /dev/davinci_manager --device /dev/devmm_svm --device /dev/hisi_hdc -v /usr/local/dcmi:/usr/local/dcmi -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi -v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/ -v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info -v /etc/ascend_install.info:/etc/ascend_install.info -it ascendai/pytorch:2.2.0 bash
Разберём, что здесь происходит:
- через
--deviceв контейнер пробрасываются оба чипа и служебные устройстваdevmm_svmиhisi_hdc; - через
-v— утилита управления, библиотеки драйвера и файлы с информацией об установке.
В результате контейнер работает с ускорителем так, будто запущен на хосте напрямую.
Шаг 6. Проверка на реальных задачах
Проверять работоспособность имеет смысл поэтапно — от простого к сложному, чтобы при сбое понимать, на каком уровне проблема.
Базовая математика. Первым делом прогоняется операция матричного умножения — самая простая проверка того, что ускоритель считает. Если она проходит, значит драйвер, библиотеки и связка с PyTorch работают.
Расширенный набор операций. Дальше — набор различных математических операций. Параллельно полезно держать открытым вывод npu-smi, чтобы видеть, как нагрузка распределяется между двумя чипами. Это заодно подтверждает, что задействованы оба, а не один.
Реальная модель. Финальная проверка — инференс языковой модели. Классический вариант для такого теста — небольшая модель, предсказывающая следующее слово в предложении. Успешное выполнение означает, что ускоритель готов не только к синтетическим вычислениям, но и к настоящим задачам.
Такая последовательность экономит время при диагностике: если падает первый тест — проблема в установке, если третий — вопрос к окружению Python или самой модели.
Что стоит учесть заранее
Итог практического опыта работы с платформой.
Заложите время. Первая настройка занимает существенно больше, чем разворачивание аналогичного окружения на привычной платформе. Это нормально и предсказуемо, если запланировано.
Зафиксируйте версии. Записывайте версии всех компонентов, которые заработали вместе. При переустановке или разворачивании второго сервера это сэкономит часы.
Не обновляйтесь без необходимости. Работающая связка версий ценнее актуальности. Обновление одного компонента способно сломать всю цепочку.
Проверьте совместимость моделей до покупки. Ускоритель не даёт ничего, если ваши модели на нём не запускаются или требуют серьёзной адаптации. Этот вопрос решается до заказа железа, а не после.
Коротко
Ускорители Huawei дают много видеопамяти за разумные деньги, но требуют аккуратной настройки, где важны и версия системы, и порядок установки компонентов.
Ключевые моменты, на которых спотыкаются чаще всего: Ubuntu Server 20.04, отказ от apt upgrade, обязательное ручное создание пользователя HwHiAiUser, строгий порядок установки трёх пакетов с разными ключами запуска.
Готовый Docker-образ избавляет от самой трудоёмкой части — ручной сборки окружения. Проверять работоспособность стоит поэтапно, от матричного умножения к реальной модели.
И главное при планировании: основной риск не в настройке железа, а в совместимости ваших моделей с платформой. Проверять это нужно первым делом.
Рассматриваете ускорители Huawei под свои задачи — расскажите, какие модели планируете запускать, поможем оценить применимость и подобрать конфигурацию.