Top.Mail.Ru
Гайд по Huawei Atlas 300I Duo: подготовка окружения и запуск инференса | Блог Serverflow Скачать
прайс-лист
Бесплатная
доставка по РФ
Distribution of
Server Components
8 (800) 222-70-01 Консультация IT-специалиста Сравнение

Гайд по Huawei Atlas 300I Duo: подготовка окружения и запуск инференса

~ 10 мин
287
Сложный
Гайды
Гайд по Huawei Atlas 300I Duo: подготовка окружения и запуск инференса

Введение

ИИ-ускорители компании 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
Интерфейс консоли 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
Установка файлов драйверов Huawei Atlas 300i Duo 96GB.

Находясь в директории с .run файлами, делаем их исполняемыми с помощью команды chmod +x *.run. Теперь переходим непосредственно к установке драйверов. Установка должна происходить в строгой последовательности: driver → toolkit → kernels:
  1. ./Ascend-hdk-310p-npu-driver_ваша_версия.run --full
  2. ./Ascend-cann-toolkit_8.2.Ваша.Версия.run --install
  3. ./Ascend-cann-kernels-310p_8.2.Ваша.Версия.run --install
Обратите внимание, что в некоторых драйверах необходимо добавить префикс full, а в других нужен префикс install. После завершения установки выполните перезагрузку сервера командой reboot

NPU-драйвер Huawei Atlas
Установка 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.

Ввод команд npu-smi info и ls /dev/
Тестирование работы Atlas 300i Duo посредством ввода команд npu-smi info и ls /dev/. 

Загрузка Docker-контейнера

Если все отображается корректно и ускоритель готов к работе, нужно загрузить Docker-контейнер с готовым окружением, собранный энтузиастами:

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

Конечно, Docker-контейнер — это необязательный компонент, и окружение можно собрать самостоятельно. Однако если вы являетесь настоящим ИИ-энтузиастом и все же решили подготовить среду своими руками, то будьте готовы потратить огромное количество времени из-за массы зависимостей, которые требует драйвер Ascend, фреймворк Huawei CANN и потенциальный torch_NPU.

Установка Docker-контейнера
Процесс установки 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
Загрузка локальной языковой модели GPT-2 на Huawei Atlas 300i Duo 96GB.

Выводы

В этом руководстве мы рассказали лишь о подготовке ускорителя Huawei Atlas к работе и базовых принципах взаимодействия с ним при помощи Python и PyTorch, включая запуск простейшего инференса GPT-2. Однако на этом возможности Huawei Atlas не заканчиваются и спектр применения этих интересных NPU-решений намного шире, чем может показаться на первый взгляд. В следующих материалах мы намерены продемонстрировать запуск полноценного инференса больших языковых моделей, открывая путь к коммерческому использованию этих китайских ИИ-решений. 

Автор: Serverflow Serverflow
Поделиться

Комментарии 0

Написать комментарий
Сейчас тут ничего нет. Ваш комментарий может стать первым.
Написать отзыв
До 6 фото, размером до 12Мб каждое
Мы получили ваш отзыв!

Он появится на сайте после модерации.

Написать комментарий

Комментарий появится на сайте после предварительной модерации

До 6 фото, размером до 12Мб каждое
Мы получили ваш отзыв!

Он появится на сайте после модерации.

Мы свяжемся с вами утром

График работы: Пн-Пт 10:00-19:00 (по МСК)

Обработаем вашу заявку
в ближайший рабочий день

График работы: Пн-Пт 10:00-19:00 (по МСК)