下载
中文
注册

调用示例

各接口说明处给的是接口的调用片段,此处以调用dcmi_get_card_num_list接口为例,给出调用示例,说明需要include的头文件(dcmi_interface_api.h)、调用接口的逻辑等。

示例代码文件get_card_num_list.c

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include "dcmi_interface_api.h"

#define MAX_CARD_NUM (16)
#define NPU_OK (0)

int main(int argc, char ** argv)
{
    int ret;
    int card_count = 0;
    int card_id_list[MAX_CARD_NUM] = {0};

    ret = dcmi_init();
    if (ret != NPU_OK) {
        printf("Failed to init dcmi.\n");
        return ret;
    }

    ret = dcmi_get_card_num_list(&card_count, card_id_list, MAX_CARD_NUM);
    if (ret != NPU_OK) {
        printf("Failed to get card number.\n");
        return ret;
    }
    printf("card count is %d\n", card_count);

    return ret;
}

从已安装驱动和npu-smi工具的环境的“/usr/local/include/”目录下获取dcmi_interface_api.h文件。

  1. 以HwHiAiUser用户将get_card_num_list.c、dcmi_interface_api.h传到同一个目录下。
  2. 以HwHiAiUser用户登录到Host侧系统。
  3. 执行如下命令,将上传的get_card_num_list.c、dcmi_interface_api.h所属的用户和组修改为HwHiAiUser。
    chown HwHiAiUser:HwHiAiUser dcmi_interface_api.h
    chown HwHiAiUser:HwHiAiUser get_card_num_list.c
  4. 执行如下命令,编译get_card_num_list.c中的代码,生成可执行文件card_list。编译时需要使用驱动中提供的相关动态库,具体如下:
    gcc get_card_num_list.c -L/usr/lib64 -ldcmi -lascend_hal -ldevmmap -ldrvdsmi -o card_list
  5. 执行可执行文件card_list。
    ./card_list