ИИ-ускорители компании Huawei серий Atlas и Ascend пользуются огромным спросом в Китае за счет внушительного объема VRAM, приемлемой вычислительной мощности и значительно меньшего ценника, чем у GPU от Nvidia. Однако, несмотря на всю заманчивость этих передовых решений, у них есть один серьезный недостаток — это далеко не “plug and play” устройства, поскольку если их интегрировать в систему без глубокой предварительной настройки, то они просто не будут работать, и простой установкой драйверов здесь не обойтись. В этом гайде специалисты команды ServerFlow расскажут вам, как правильно запускать инференс ИИ-моделей с помощью NPU-ускорителей Huawei на примере решения Huawei Atlas 300i Duo 96GB.
Используемая ОС
Для запуска инференса на Huawei Atlas 300i Duo 96GB мы используем дистрибутив Linux Ubuntu 20.04 Server. Это рекомендуемая версия Ubuntu Server, которая обеспечивает корректную работу всех программных зависимостей. Также поддерживается Ubuntu 22.04 Server, но система работает менее стабильно (стандартные Ubuntu 20.04 и Ubuntu 22.04 тоже пригодны к использованию). К сожалению, использование актуальной LTS-версии Ubuntu невозможно из-за проблем с совместимостью ОС и ИИ-ускорителя. Эта же проблема наблюдается не только у Atlas 300i, но и у всех решений на базе чипов Ascend 910A/B/C, которые также требуют создания собственного, уникального окружения.
Интерфейс консоли Ubuntu 20.04 Server.
Установка зависимостей
Первый шаг — обновление списка пакетов зависимостей для установки драйверов с помощью команды sudo apt update (важно не выполнять команду upgrade). Поскольку множество последующих операций потребует привилегий root, рекомендуется перейти в 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
Установка драйверов
Второй этап — установка драйверов ускорителя. Но перед этим мы рекомендуем заранее сложить все файлы драйверов в одну директорию для удобства их последующей установки. Важно упомянуть, что перед установкой драйверов необходимо добавить пользователя HwHiAiUser (он действительно так называется, имя пользователя нельзя заменить) и одноименную группу, поскольку драйвера Huawei не делают этого автоматически. Для этого введите следующие команды:
groupadd HwHiAiUser
useradd -g HwHiAiUser HwHiAiUser
Для установки понадобятся следующие файлы:
Ascend-hdk-310p-npu-driver_ваша_версия.ru
Ascend-cann-toolkit_8.2.Ваша.Версия.run
Ascend-cann-kernels-310p_8.2.Ваша.Версия.run
Установка файлов драйверов Huawei Atlas 300i Duo 96GB.
Находясь в директории с .run файлами, делаем их исполняемыми с помощью команды chmod +x *.run. Теперь переходим непосредственно к установке драйверов. Установка должна происходить в строгой последовательности: driver → toolkit → kernels:
Обратите внимание, что в некоторых драйверах необходимо добавить префикс full, а в других нужен префикс install. После завершения установки выполните перезагрузку сервера командой reboot.
Установка NPU-драйвера Huawei Atlas.
Управление Huawei Atlas 300i Duo 96GB
Для управления работой NPU-ускорителя Atlas 300i Duo необходимо использовать фирменную утилиту huawei через команду npu-smi info (входит в toolkit), запуск которой рекомендуется выполнять от имени администратора. Эта утилита будет отображать вычислительную нагрузку на оба NPU-чипа Huawei Atlas 300i Duo 96GB, их температуру и потребление памяти, что делает ее полным аналогом утилиты nvidia-smi по функционалу. Чтобы убедиться, что оба чипа ускорителя работают, выполните команду ls /dev/. В выводе вы должны увидеть устройства: davinci0, davinci1, davinci_manager.
Тестирование работы Atlas 300i Duo посредством ввода команд npu-smi info и ls /dev/.
Загрузка Docker-контейнера
Если все отображается корректно и ускоритель готов к работе, нужно загрузить Docker-контейнер с готовым окружением, собранный энтузиастами:
Конечно, Docker-контейнер — это необязательный компонент, и окружение можно собрать самостоятельно. Однако если вы являетесь настоящим ИИ-энтузиастом и все же решили подготовить среду своими руками, то будьте готовы потратить огромное количество времени из-за массы зависимостей, которые требует драйвер Ascend, фреймворк Huawei CANN и потенциальный torch_NPU.
Процесс установки Docker-контейнера.
Тестирование
Если загрузка контейнера прошла успешно, можно выполнять тестовые скрипты на PyTorch. В рамках нашего тестирования мы запустили разработанный нашими специалистами скрипт test_card.py. Этот скрипт тестирует карту через операцию матричного умножения (matmul) и имеет простой UI, выводящий информацию о работе NPU в реальном времени. Успешное выполнение скрипта подтверждает работоспособность NPU для математических вычислений.
Следующим будет скрипт bench.py. Он выполняет различные математические операции на карте с помощью Python. Отслеживая npu-smi, вы можете наблюдать за вычислительной нагрузкой на чипах NPU ускорителя Huawei Atlas 300i Duo 96GB.
Запуск выполнения математических операций на Huawei Atlas 300i Duo 96GB.
Последний тест — test_ascend.py. Он проводит тестирование на основе локальной языковой модели GPT-2. Скрипт загружает датасет GPT-2 и выполняет инференс на чипе NPU для простой задачи, при выполнении которой модель будет угадывать слова в предложении.
Загрузка локальной языковой модели GPT-2 на Huawei Atlas 300i Duo 96GB.
Выводы
В этом руководстве мы рассказали лишь о подготовке ускорителя Huawei Atlas к работе и базовых принципах взаимодействия с ним при помощи Python и PyTorch, включая запуск простейшего инференса GPT-2. Однако на этом возможности Huawei Atlas не заканчиваются и спектр применения этих интересных NPU-решений намного шире, чем может показаться на первый взгляд. В следующих материалах мы намерены продемонстрировать запуск полноценного инференса больших языковых моделей, открывая путь к коммерческому использованию этих китайских ИИ-решений.
Сейчас тут ничего нет. Ваш комментарий может стать первым.
Получите скидку 3 000 рублей или бесплатную доставку за подписку на новости*!
* — скидка предоставляется при покупке от 30 000 рублей, в ином случае предусмотрена бесплатная доставка.
Мы получили ваш отзыв!
Он появится на сайте после модерации.
Мы получили ваш отзыв!
Он появится на сайте после модерации.
Продолжная использовать наш сайт, вы даете согласие на использование файлов Cookie, пользовательских данных (IP-адрес, вид операционной системы, тип браузера, сведения о местоположении, источник, откуда пришел на сайт пользователь, с какого сайта или по какой рекламе, какие страницы
открывает и на какие страницы нажимает пользователь) в целях функционирования сайта, проведения статистических исследований и обзоров. Если вы не хотите, чтобы ваши данные обрабатывались, покиньте сайт.