InspireFaceInspireFace1.2.4.d3
首页
快速开始
获取和编译
完整示例
  • English
  • 简体中文
GitHub
首页
快速开始
获取和编译
完整示例
  • English
  • 简体中文
GitHub
  • 介绍
  • 快速开始
  • 功能概览
  • 使用指南

    • 架构与生命周期
    • 模型资源包
    • 图像输入与坐标
    • 会话与跟踪
    • 人脸分析
    • 识别与特征库
    • 人脸关键点
    • 活体检测
    • 人脸抓拍
    • 补充 API 示例
  • 语言与平台

    • C API
    • C++
    • Python
    • Android
    • Apple
    • iOS
    • macOS
    • HarmonyOS
  • 获取和编译

    • 概述与下载
    • 源码准备与通用选项
    • Linux
    • macOS
    • Android
    • iOS
    • HarmonyOS
    • NVIDIA TensorRT
    • Rockchip NPU
    • Python 打包
  • 硬件部署

    • ARM
    • NVIDIA TensorRT
    • Rockchip NPU
    • Rockchip 上的 Python
  • InspireCV
  • 完整示例
  • API 功能索引
  • 性能测量
  • 图像处理性能
  • 常见问题

NVIDIA TensorRT 构建

在 Linux 上编译启用 TensorRT 推理的动态库,供 C、C++ 或配套 Python 封装调用。先完成源码准备,模型加载与应用接入见 NVIDIA 部署。

准备 CUDA 与 TensorRT

Component用途
CMake 3.20+、C++14 编译器编译 SDK 和依赖。
CUDA toolkit提供 CUDA 头文件、编译工具和 cudart。
TensorRT 10 development package提供 NvInfer.h、nvinfer 和 nvinfer_plugin。
NVIDIA driver and GPU在目标机器上运行推理并验证生成的库。

TENSORRT_ROOT 指向包含 include/ 和 lib/ 或 lib64/ 的开发包目录。CUDA 与 TensorRT 版本需符合目标 GPU 和驱动要求。CMake 同时查找 CUDA toolkit 和 TensorRT 库,仅安装 TensorRT 的 Python 包不足以完成这次 C++ 构建。

export TENSORRT_ROOT=/opt/TensorRT
nvcc --version
test -f "$TENSORRT_ROOT/include/NvInfer.h"

使用 CMake 构建

下面生成动态库,并保留构建目录以便增量编译:

cmake -S . -B build/tensorrt \
  -DCMAKE_BUILD_TYPE=Release \
  -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
  -DISF_BUILD_SHARED_LIBS=ON \
  -DISF_ENABLE_TENSORRT=ON \
  -DTENSORRT_ROOT="$TENSORRT_ROOT" \
  -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda \
  -DISF_BUILD_WITH_SAMPLE=OFF \
  -DISF_BUILD_WITH_TEST=OFF
cmake --build build/tensorrt --parallel 4
cmake --install build/tensorrt

CUDA 安装在其他位置时,修改 /usr/local/cuda。SDK 安装到 build/tensorrt/install/InspireFace,动态库位于 lib/libInspireFace.so,头文件位于 include/。

使用发布脚本

发布脚本会启用示例、测试和 benchmark,并将安装产物整理到带名称的目录:

VERSION=1.2.4 CUDA_TAG=local \
  bash command/build_linux_tensorrt.sh

上面的产物位于 build/inspireface-linux-tensorrt-local-1.2.4/InspireFace。CUDA_TAG 只用于目录命名,可以将 local 改成已验证环境的标签;不设置时,脚本从 CUDA 与 Ubuntu 版本信息生成标签。安装完成后,脚本会删除编译中间文件。

在容器中构建

仓库提供 build-tensorrt-cuda12-ubuntu22 Compose 服务。先按目标环境在 docker/Dockerfile.cuda12_ubuntu22 中配好 CUDA 与 TensorRT,再构建镜像:

docker compose build build-tensorrt-cuda12-ubuntu22
VERSION=1.2.4 docker compose run --rm build-tensorrt-cuda12-ubuntu22

服务将源码目录挂载到 /workspace,产物写回宿主机的 build/。本文对应的源码中,Dockerfile 使用 CUDA 12.0 开发镜像与 TensorRT 10.8 / CUDA 12.8 压缩包,而 Compose 的目录标签为 cuda12.2_ubuntu22.04。构建发布包前,按目标环境统一镜像、TensorRT 包与输出标签,不能仅凭目录名判断二进制兼容性。

检查运行依赖

在部署机器上,用实际准备发布的 SDK 检查依赖:

file build/tensorrt/install/InspireFace/lib/libInspireFace.so
ldd build/tensorrt/install/InspireFace/lib/libInspireFace.so

加载模型前,补齐缺失的 TensorRT、CUDA 或编译器运行库。将 TensorRT 库目录加入动态加载器搜索路径,或通过系统加载器配置安装路径。GPU 驱动库由部署主机提供。

使用 Megatron_TRT,按模型加载与 GPU 选择完成首次推理。GPU 初始化和引擎准备会增加首次启动开销,测量时将预热与稳定运行分开。Python 接入先切换到这个 .so 验证,再决定是否将其打包进 wheel;打包 SDK 动态库不会一并安装系统 GPU 驱动。

编辑此页
最近更新: 2026/9/28 15:20
贡献者: Jingyu
上一页
HarmonyOS
下一页
Rockchip NPU