算能 BMRuntime 的 C 接口 是其 SDK 生态中用于直接操作 TPU 芯片的核心编程接口,主要面向高性能、低延迟的推理场景设计。以下是其关键功能及接口解析:
一、设备与内存管理接口
-
设备初始化
通过bm_dev_request
初始化设备句柄,支持多芯片协同工作。例如:bm_handle_t handle; bm_dev_request(&handle, 0); // 初始化第一个设备
该接口与硬件驱动层(如
libsophon
)交互,完成芯片资源分配与状态检测。 -
内存管理
提供显式设备内存分配接口,支持零拷贝数据传输:void* dev_mem; bm_malloc_device_byte(handle, &dev_mem, size); // 分配设备内存
内存生命周期需通过
bm_free_device
手动释放,避免资源泄漏。
二、模型加载与张量操作
-
模型加载
使用bmrt_load_bmodel