Driver and Firmware Installation

Installation Description

The driver and firmware must be installed in a specified sequence. For initial installation, install the driver and then firmware; for overwrite installation or upgrade, install the firmware and then driver.

  • Initial installation: In scenarios where no driver is installed on a hardware device before delivery, or the installed driver and firmware on the hardware device have been uninstalled, you need to install the driver and then firmware.
  • Overwrite installation: In scenarios where the driver and firmware have been installed on a hardware device and you need to install them again, install the firmware and then driver.

Checking the OS and Kernel Versions

Before installing the driver, check the onsite OS and kernel versions to determine whether to install dependencies required for driver build.

Check the OS and kernel versions of the onsite server and compare them with those required by Huawei.
  1. Run the uname -m && cat /etc/*release command to query the OS architecture and version of the server. Information similar to the following is displayed:
    aarch64
    CentOS Linux release 7.6.1810 (AltArch)
    NAME="CentOS Linux"
    VERSION="7 (AltArch)"
    ID="centos"
    ID_LIKE="rhel fedora"
    VERSION_ID="7"
    PRETTY_NAME="CentOS Linux 7 (AltArch)"
  2. Run the uname -r command to check the OS and kernel versions. Information similar to the following is displayed:
    4.14.0-115.el7a.0.1.aarch64
  3. Table 1, Table 2, Table 3, and Table 4 list the OS and kernel versions matching the drivers released by Huawei. Compare the OS and kernel versions queried in 1 and 2 with them. If the OS and kernel versions correspond to the binary installation mode, install the driver and firmware by following instructions in Installing the Driver and Firmware.

    Note: If the OS and kernel versions correspond to the installation from source code mode, or the kernel version does not correspond to the binary installation mode, refer to Installing Dependencies Required for Compiling Driver Source Code to install the dependencies required for driver source code compilation and then refer to Installing the Driver and Firmware to install the driver and firmware.

    Table 1 OS version requirements for the Ascend NPU driver

    Host OS Version

    OS Architecture

    Default Host OS Kernel Version in a Software Package

    GCC Version

    Installation Method

    EulerOS 2.8

    aarch64

    4.19.36-vhulk1907.1.0.h410.eulerosv2r8.aarch64

    4.8.5 or later

      

    EulerOS 2.10

    aarch64

    4.19.90-vhulk2111.1.0.h990

    7.3.0

      

    CentOS 7.6

    AArch64

    4.14.0-115.el7a.0.1.aarch64

    4.8.5 or later

    Binary installation

    Ubuntu 20.04

    AArch64

    5.4.0-26-generic

    N/A

    CentOS 8.2

    AArch64

    4.18.0-193.el8.aarch64

    N/A

    Installation from source code

    BC_Linux 7.6

    AArch64

    4.19.25-200.el7.bclinux.aarch64

    N/A

    BC_Linux 7.7

    AArch64

    4.19.25-203.e17.bclinux.aarch64

    N/A

    Kylin V10 SP1

    AArch64

    4.19.90-17.ky10.aarch64

    N/A

    openEuler 20.03 LTS

    AArch64

    4.19.90-2003.4.0.0036.oe1.aarch64

    N/A

    openEuler 22.03 LTS

    aarch64

    5.10.0-60.18.0.50.oe2203.aarch64

    10.3.1

    Table 2 OS version requirements for the Ascend NPU driver

    Host OS Version

    OS Architecture

    Default Host OS Kernel Version in a Software Package

    GCC Version

    Installation Method

    Ubuntu 18.04.1

    x86_64

    4.15.0-29-generic

    4.8.5 or later

    Binary installation

    CentOS 7.6

    x86_64

    3.10.0-957.el7.x86_64

    4.8.5 or later

    Debian 9.9

    x86_64

    4.19.28

    4.8.5 or later

    Ubuntu 20.04

    x86_64

    5.4.0-26-generic

    N/A

    CentOS 8.2

    x86_64

    4.18.0-193.el8.x86_64

    N/A

    Installation from source code

    BC-Linux 7.6

    x86_64

    4.19.25-200.el7.bclinux.x86_64

    N/A

    Kylin V10 SP1

    x86_64

    4.19.90-17.ky10.x86_64

    N/A

    Debian 10.0

    x86_64

    4.19.0-5-amd64

    N/A

    Ubuntu 18.04.5

    x86_64

    4.15.0-112-generic

    N/A

    openEuler 20.03 LTS

    x86_64

    4.19.90-2003.4.0.0036.oe1.x86_64

    N/A

    Table 3 OS version requirements for the Ascend NPU driver

    Host OS Version

    OS Architecture

    Default Host OS Kernel Version in a Software Package

    GCC Version

    Installation Method

    EulerOS 2.8

    aarch64

    4.19.36-vhulk1907.1.0.h410.eulerosv2r8.aarch64

    4.8.5 or later

      

    EulerOS 2.10

    aarch64

    4.19.90-vhulk2111.1.0.h990

    7.3.0

      

    CentOS 7.6

    AArch64

    4.14.0-115.el7a.0.1.aarch64

    4.8.5 or later

    Binary installation

    Ubuntu 20.04

    AArch64

    5.4.0-26-generic

    N/A

    CentOS 8.2

    AArch64

    4.18.0-193.el8.aarch64

    N/A

    Installation from source code

    BC_Linux 7.6

    AArch64

    4.19.25-200.el7.bclinux.aarch64

    N/A

    BC_Linux 7.7

    AArch64

    4.19.25-203.e17.bclinux.aarch64

    N/A

    Kylin V10 SP1

    AArch64

    4.19.90-17.ky10.aarch64

    N/A

    openEuler 20.03 LTS

    AArch64

    4.19.90-2003.4.0.0036.oe1.aarch64

    N/A

    openEuler 22.03 LTS

    aarch64

    5.10.0-60.18.0.50.oe2203.aarch64

    10.3.1

    Table 4 OS version requirements for the Ascend NPU driver

    Host OS Version

    OS Architecture

    Default Host OS Kernel Version in a Software Package

    GCC Version

    Installation Mode

    Debian 9.9

    x86_64

    4.19.28

    4.8.5 or later

    Binary Installation

    Ubuntu 18.04.1

    AArch64

    4.15.0-29-generic

    4.8.5 or later

    Ubuntu 18.04.1

    x86_64

    4.15.0-29-generic

    4.8.5 or later

    CentOS 7.6

    AArch64

    4.14.0-115.el7a.0.1.aarch64

    4.8.5 or later

    CentOS 7.6

    x86_64

    3.10.0-957.el7.x86_64

    4.8.5 or later

    Ubuntu 20.04

    AArch64

    5.4.0-26-generic

    N/A

    Ubuntu 20.04

    x86_64

    5.4.0-26-generic

    N/A

    CentOS 8.2

    AArch64

    4.18.0-193.el8.aarch64

    N/A

    Installation from Source Code

    CentOS 8.2

    x86_64

    4.18.0-193.el8.x86_64

    N/A

    Kylin V10 SP1

    AArch64

    4.19.90-17.ky10.aarch64

    N/A

    Kylin V10 SP1

    x86_64

    4.19.90-17.ky10.x86_64

    N/A

    Ubuntu 18.04.5

    AArch64

    4.15.0-112-generic

    N/A

    Ubuntu 18.04.5

    x86_64

    4.15.0-112-generic

    N/A

    openEuler 20.03 LTS

    AArch64

    4.19.90-2003.4.0.0036.oe1.aarch64

    N/A

    openEuler 20.03 LTS

    x86_64

    4.19.90-2003.4.0.0036.oe1.x86_64

    N/A

    openEuler 20.03 LTS SP1

    x86_64

    4.19.90-2012.5.0.0054.oe1.x86_64

    7.3.0

Downloading the Driver and Firmware

The Ascend hardware can be used only after the corresponding Ascend NPU driver and firmware are installed. Table 5 describes how to download the Ascend NPU driver and firmware.

Table 5 Software download

Hardware Model

Software Type

Package Name and Download Link

Atlas 800 training server (model 9000)

Ascend NPU Driver

Click the software package link, choose AI Server > Atlas 800 training server (model 9000), select the corresponding CANN, driver, and firmware versions, and download A800-9000-npu-driver_{version}_linux-aarch64.run.

Ascend NPU Firmware

Click the software package link, choose AI Server > Atlas 800 training server (model 9000), select the corresponding CANN, driver, and firmware versions, and download A800-9000-npu-firmware_{version}.run.

Atlas 800 training server (model 9010)

Ascend NPU Driver

Click the software package link, choose AI Server > Atlas 800 training server (model 9010), select the corresponding CANN, driver, and firmware versions, and download A800-9010-npu-driver_{version}_linux-x86_64.run.

Ascend NPU Firmware

Click the software package link, choose AI Server > Atlas 800 training server (model 9010), select the corresponding CANN, driver, and firmware versions, and download A800-9010-npu-firmware_{version}.run.

Atlas 900 PoD (model 9000)

Ascend NPU Driver

Click the software package link, choose AI Cluster > Atlas 900 PoD (model 9000), select the corresponding CANN, driver, and firmware versions, and download A900-9000-npu-driver_{version}_linux-aarch64.run.

Ascend NPU Firmware

Click the software package link, choose AI Cluster > Atlas 900 PoD (model 9000), select the corresponding CANN, driver, and firmware versions, and download A900-9000-npu-firmware_{version}.run.

Atlas 300T training card (model 9000)

Ascend NPU Driver

Click the software package link, choose AI Accelerator Card > Atlas 300T training card (model 9000), select the corresponding CANN, driver, and firmware versions, and download A300t-9000-npu-driver_{version}_linux-x86_64.run.

Ascend NPU Firmware

Click the software package link, choose AI Accelerator Card > Atlas 300T training card (model 9000), select the corresponding CANN, driver, and firmware versions, and download A300t-9000-npu-firmware_{version}.run.

Installing the Driver and Firmware

  1. Log in to the server as the root user.
  2. Upload the driver and firmware packages to any directory on the server, for example, /home.
  3. Run the following command to add the execute permission on the driver and firmware packages:

    chmod +x driver/firmware package name.run

  4. Run the following command to install the driver. The default installation path is /usr/local/Ascend.

    ./{product}-npu-driver_{version}_linux-{arch}.run --full --install-for-all

    {product} indicates the product model, {version} indicates the software package version, and {arch} indicates the architecture. Replace them with the actual ones.

    If the following information is displayed, the driver is successfully installed:
    Driver package installed successfully!
  5. Run the npu-smi info command to check whether the driver is successfully loaded.

    If information similar to the following is displayed, the loading is successful: Otherwise, the loading fails. Contact Huawei technical support.

    +-------------------------------------------------------------------------------------------+
    | npu-smi 22.0.1.B010              Version: 22.0.0.B010                                     |
    +----------------------+---------------+----------------------------------------------------+
    | NPU   Name           | Health        | Power(W)    Temp(C)           Hugepages-Usage(page)|
    | Chip                 | Bus-Id        | AICore(%)   Memory-Usage(MB)  HBM-Usage(MB)        |
    +======================+===============+====================================================+
    | 0     910A           | OK            | 73.3        39                15   / 15            |
    | 0                    | 0000:61:00.0  | 0           688  / 15169      2    / 32768         |
    +======================+===============+====================================================+
    | 1     910A           | OK            | 68.5        33                15   / 15            |
    | 0                    | 0000:DB:00.0  | 0           2070 / 15170      2    / 32768         |
    +======================+===============+====================================================+
    | 2     910A           | OK            | 69.5        34                15   / 15            |
    | 0                    | 0000:B2:00.0  | 0           1053 / 15170      1    / 32768         |
    +======================+===============+====================================================+
    | 3     910A           | OK            | 67.9        38                15   / 15            |
    | 0                    | 0000:3E:00.0  | 0           2426 / 15078      0    / 32768         |
    +======================+===============+====================================================+
    | 4     910A           | OK            | 69.7        37                15   / 15            |
    | 0                    | 0000:60:00.0  | 0           1177 / 15169      2    / 32768         |
    +======================+===============+====================================================+
    | 5     910A           | OK            | 66.5        33                15   / 15            |
    | 0                    | 0000:DA:00.0  | 0           1037 / 15170      1    / 32768         |
    +======================+===============+====================================================+
    | 6     910A           | OK            | 66.7        33                15   / 15            |
    | 0                    | 0000:B1:00.0  | 0           1853 / 15170      1    / 32768         |
    +======================+===============+====================================================+
    | 7     910A           | OK            | 67.0        39                15   / 15            |
    | 0                    | 0000:3D:00.0  | 0           2179 / 15078      1    / 32768         |
    +======================+===============+====================================================+
  6. Run the following command to install the firmware:

    ./{product}-npu-firmware_{version}.run --full

    If the following information is displayed, the firmware is successfully installed:

    Firmware package installed successfully! Reboot now or after driver installation for the installation/upgrade to take effect 
  7. Run the reboot command to restart the system.
  8. Run the following command to check the processor firmware version.

    /usr/local/Ascend/driver/tools/upgrade-tool --device_index -1 --component -1 --version

    If information similar to the following is displayed and the version is the same as the target version, the installation is successful:

    {
    Get component version(1.82.22.1.224) succeed for deviceId(0), componentType(0).
            {"device_id":0, "component":nve, "version":1.82.22.1.224}
    Get component version(1.82.22.1.224) succeed for deviceId(0), componentType(3).
            {"device_id":0, "component":uefi, "version":1.82.22.1.224}
    Get component version(1.82.22.1.224) succeed for deviceId(0), componentType(8).
            {"device_id":0, "component":imu, "version":1.82.22.1.224}
    Get component version(1.82.22.1.224) succeed for deviceId(0), componentType(9).
            {"device_id":0, "component":imp, "version":1.82.22.1.224}
    ........
    }