以AscendPytorch仓库下pytorch/examples/libtorch_resnet模型为例,介绍libtorch推理的快速使用。
已完成NPU适配的模型代码与编译文件请参见libtorch_resnet.cpp与CMakeLists.txt。另外resnet_trace.py用于导出torchscript文件可用于libtorch推理,编译与推理脚本可参见libtorch_resnet.sh。
pip3 install expecttest
set(torch_npu_path path_to_libtorch_npu) # 设置libtorch_npu的路径 include_directories(${torch_npu_path}/include) # 设置引用libtorch_npu的头文件路径 link_directories(${torch_npu_path}/lib) # 设置引用libtorch_npu的库文件路径 target_link_libraries(libtorch_resnet torch_npu) # 链接torch_npu库
// 使用libtorch_npu相关接口,需引用libtorch_npu的头文件 #include<torch_npu/torch_npu.h> // 使用NPU设备前需进行初始化 torch_npu::init_npu("npu:0"); // 通过传NPU字符串构造npu设备 at::Device("npu:0") // 使用NPU设备结束需进行反初始化 torch_npu::finalize_npu()
接口 |
说明 |
---|---|
torch_npu::init_npu() |
使用NPU设备前需进行初始化,输入值格式为npu:id,其中id为NPU卡号。 |
at::Device() |
通过传NPU字符串构造npu设备,输入值格式为npu:id,其中id为NPU卡号 |
torch_npu::finalize_npu() |
使用NPU设备结束需进行反初始化,输入值格式为npu:id,其中id为NPU卡号。 |
bash libtorch_resnet.sh
显示以下内容,表示编译成功。