【算能】BMRuntime 的 C 接口详解

算能 BMRuntime 的 ​C 接口 是其 SDK 生态中用于直接操作 TPU 芯片的核心编程接口,主要面向高性能、低延迟的推理场景设计。以下是其关键功能及接口解析:


一、设备与内存管理接口

  1. 设备初始化
    通过 bm_dev_request 初始化设备句柄,支持多芯片协同工作。例如:

    bm_handle_t handle;
    bm_dev_request(&handle, 0);  // 初始化第一个设备

    该接口与硬件驱动层(如 libsophon)交互,完成芯片资源分配与状态检测。

  2. 内存管理
    提供显式设备内存分配接口,支持零拷贝数据传输:

    void* dev_mem;
    bm_malloc_device_byte(handle, &dev_mem, size);  // 分配设备内存

    内存生命周期需通过 bm_free_device 手动释放,避免资源泄漏。


二、模型加载与张量操作

  1. 模型加载
    使用 bmrt_load_bmodel