安装与编译 Linux 预测库

    从源码编译

    选项说明
    CMAKE_BUILD_TYPERelease编译方式,仅使用预测库设为Release即可
    FLUID_INFERENCE_INSTALL_DIR安装路径预测库安装路径
    WITH_PYTHONOFF(推荐)编译python预测库与whl包
    ON_INFERON(推荐)预测时使用,必须设为ON
    WITH_GPUON/OFF编译支持GPU的预测库
    WITH_MKLON/OFF编译支持MKL的预测库
    WITH_MKLDNNON/OFF编译支持MKLDNN的预测库
    WITH_XBYAKON使用XBYAK编译,在jetson硬件上编译需要设置为OFF
    WITH_NV_JETSONOFF在NV Jetson硬件上编译时需要设为ON

    建议按照推荐值设置,以避免链接不必要的库。其它可选编译选项按需进行设定。

    首先从github拉取最新代码并安装nccl

    note: 单卡机器上不会用到nccl但仍存在依赖, 后续会考虑将此依赖去除。

    Server端预测库源码编译

    NVIDIA Jetson嵌入式硬件预测库源码编译

    NVIDIA Jetson是NVIDIA推出的嵌入式AI平台,Paddle Inference支持在 NVIDIA Jetson平台上编译预测库。具体步骤如下:

    1. 准备环境

    开启硬件性能模式

    1. sudo nvpmodel -m 0 && sudo jetson_clocks

    如果硬件为Nano,增加swap空间

    1. 编译Paddle Inference预测库
    1. 样例测试

    FAQ

    1. 报错:
    1. ERROR: ../aarch64-linux-gpn/crtn.o: Too many open files.

    则增加系统同一时间最多可开启的文件数至2048

    1. 编译卡住
    1. 使用TensorRT报错IPluginFactory或IGpuAllocator缺少虚析构函数

    下载安装TensorRT后,在NvInfer.h文件中为class IPluginFactory和class IGpuAllocator分别添加虚析构函数:

    1. virtual ~IPluginFactory() {};
    2. virtual ~IGpuAllocator() {};
    1. PaddleRoot/
    2. ├── CMakeCache.txt
    3. ├── paddle
    4. ├── include
    5. ├── paddle_analysis_config.h
    6. ├── paddle_api.h
    7. ├── paddle_mkldnn_quantizer_config.h
    8. └── paddle_pass_builder.h
    9. └── lib
    10. ├── libpaddle_fluid.a
    11. └── libpaddle_fluid.so
    12. ├── third_party
    13. ├── boost
    14. └── boost
    15. ├── eigen3
    16. ├── Eigen
    17. └── unsupported
    18. └── install
    19. ├── gflags
    20. ├── glog
    21. ├── mkldnn
    22. ├── mklml
    23. ├── protobuf
    24. ├── xxhash
    25. └── zlib

    version.txt 中记录了该预测库的版本信息,包括Git Commit ID、使用OpenBlas或MKL数学库、CUDA/CUDNN版本号,如: