Установка для Huawei Ascend NPU
В этой главе описаны пошаговые действия по установке для кластеров с Huawei Ascend NPU. Для NVIDIA GPU см. Установка для NVIDIA GPU.
Начиная с Alauda Build of Hami v2.8, в форме развертывания доступен переключатель Enable Ascend, который позволяет hami-scheduler планировать Huawei Ascend NPU совместно с NVIDIA GPU (или вместо них).
В отличие от NVIDIA, где при включении переключателя развертываются и hami-scheduler, и device plugin для NVIDIA, при включении Enable Ascend выполняется только настройка hami-scheduler с поддержкой Ascend и поставляется ConfigMap hami-scheduler-device, содержащий шаблоны виртуализации Ascend. DaemonSet Ascend device plugin не входит в комплект чарта HAMi и должен быть установлен отдельно.
Содержание
Предварительные требованияШаг 1: Установите драйвер Ascend и Ascend Docker RuntimeШаг 2: Включите Ascend в форме развертывания HAMiШаг 3: Развернитеascend-device-plugin HAMiШаг 4: ПроверкаУстранение неполадокПредварительные требования
- Права администратора кластера в вашем кластере ACP
- Версия Kubernetes: v1.16+
- Версия ACP: v4.0+
- Один или несколько узлов с поддерживаемым Huawei Ascend NPU (
Ascend 910B,Ascend 310Pи т. д.)
Шаг 1: Установите драйвер Ascend и Ascend Docker Runtime
Alauda Build of NPU Operator — рекомендуемый способ установки драйвера Ascend, прошивки и Ascend Docker Runtime на узлах NPU. Следуйте инструкции Установка Alauda Build of NPU Operator и обратите внимание на параметры формы развертывания:
После завершения работы оператора проверьте драйвер на каждом узле NPU:
Шаг 2: Включите Ascend в форме развертывания HAMi
- Откройте
Administrator->Marketplace->Cluster Plugin, переключитесь на целевой кластер, затем разверните или обновитеAlauda Build of Hami. - В форме развертывания включите
Enable Ascend. Enable NVIDIAможно оставить включенным (смешанный кластер) или выключить (кластер только с NPU).- Отправьте форму. После завершения rollout
hami-schedulerзапускается с--enable-ascend=true, а ConfigMaphami-scheduler-deviceвключает шаблоны Ascendvnpus, которые использует device plugin на шаге 3.
Enable NVIDIA и Enable Ascend независимы. Вы можете выключить любой из них, но рекомендуется оставить включенным как минимум один тип устройства.
Шаг 3: Разверните ascend-device-plugin HAMi
-
Присвойте метку каждому узлу NPU, чтобы DaemonSet запускался только там, где это необходимо:
-
Скачайте манифест DaemonSet
ascend-device-plugin.yamlи примените его к рабочему кластеру:Манифест создаёт:
ServiceAccount,ClusterRoleиClusterRoleBindingс именемhami-ascendв namespacekube-system.DaemonSetс именемhami-ascend-device-plugin, который планируется на узлы с меткойascend=on.- DaemonSet монтирует ConfigMap
hami-scheduler-device, созданный чартом HAMi на шаге 2 и содержащий шаблоны виртуализации Ascend (vnpus).
-
Чтобы использовать пользовательский образ plugin (например, внутреннее зеркало), перед применением измените поле
imageвascend-device-plugin.yaml.
Шаг 4: Проверка
-
Убедитесь, что pod'ы device plugin запущены на каждом узле NPU:
-
Проверьте, что ресурсы NPU отображаются как allocatable (имя ресурса зависит от чипа — например,
huawei.com/Ascend910Bилиhuawei.com/Ascend310P): -
Запустите пример workload, чтобы запросить срез vNPU. В приведённом ниже примере запрашивается один чип
Ascend910B4и ограничивается память до4096MiB; HAMi выбирает самый маленький шаблон виртуализации, который удовлетворяет запросу по памяти:Дополнительные примеры на стороне устройства см. в примерах HAMi ascend-device-plugin.
Для более глубокого понимания того, как работает разбиение vNPU (шаблоны, округление памяти и учет бюджета для каждой карты), см. Как работает разбиение Ascend vNPU.
Устранение неполадок
- Pod остается в состоянии
Pending, при этом ресурсы Ascend не отображаются: убедитесь, что на узле есть меткаascend=onи что podhami-ascend-device-pluginна этом узле находится в состоянииRunning. - В ConfigMap
hami-scheduler-deviceотсутствует секцияvnpus: снова откройте форму развертывания HAMi и убедитесь, чтоEnable Ascendвключен; секция отображается только при включенном переключателе. - Конфликты с
Alauda Build of NPU Operator: убедитесь, что в форме развертывания оператора был отключенAscend Device Plugin. Если он был включен по ошибке, повторно разверните оператор с выключенной опцией, затем снова применитеascend-device-plugin.yamlHAMi. - Нужно настроить шаблоны виртуализации Ascend: отредактируйте секцию
vnpusв ConfigMaphami-scheduler-device(kubectl -n kube-system edit configmap hami-scheduler-device) и перезапустите pod'ыhami-ascend-device-plugin. Имейте в виду, что изменение будет потеряно при следующем обновлении чарта.