源码编译 (Windows)

注意: 以下编译方法只适用于release/v2.6.0及之后版本(包括 v2.6.0)。release/v2.3及之前版本(包括 v2.3)请参考release/v2.3源码编译方法

如果您还没有配置好Windows编译环境,请先根据编译环境准备中的内容,根据您的开发环境安装编译Windows预测库所需的编译环境。

编译

1、 下载代码

git clone https://github.com/PaddlePaddle/Paddle-Lite.git
# 切换到release分支,比如v2.9
git checkout v2.9

2、 源码编译(需要按照提示输入对应的参数)

cd Paddle-Lite
lite\tools\build_windows.bat with_extra with_profile

# 注意默认编译Windows x64平台,如果需要编译x86平台,需要加入build_x86选项
lite\tools\build_windows.bat build_x86

# 如果需要根据模型裁剪预测库,则需要在with_strip之后输入opt model dir的路径
lite\tools\build_windows.bat with_strip D:\Paddle-Lite\opt_model_dir

编译脚本build_windows.bat,追加参数说明:

参数 介绍
without_log 可选,是否编译带日志的预测库(默认为ON,即日志打开) ONOFF
without_python 可选,是否编译python预测库(默认为ON,即编译Python) ONOFF
with_extra 可选,是否编译全量预测库(当Python打开时默认打开,否则为OFF),详情可参考预测库说明 ONOFF
with_profile 可选,是否支持逐层耗时分析(默认为OFF) ONOFF
with_precision_profile 可选,是否支持逐层精度分析(默认为OFF) ONOFF
with_strip 可选,是否根据模型裁剪预测库(默认为OFF),详情可参考裁剪预测库 ONOFF
build_x86 可选,是否编译X86平台预测库(默认为OFF,即编译X64平台) ONOFF
with_static_mkl 可选,是否静态链接Intel(R) MKL加速库(默认为OFF,即动态链接) ONOFF
with_dynamic_crt 可选,是否动态链接MSVC Rumtime即MD_DynamicRelease(默认为OFF,即静态链接) ONOFF
with_opencl 可选,是否开启OpenCL(默认为OFF,即编译的预测库仅在CPU上运行,当设为ON时,编译出的预测库支持在GPU上运行) ONOFF
without_avx 可选,使用AVX/SSE指令对x86 Kernel进行加速(默认为ON) ONOFF

编译结果说明

x86编译结果位于 build.lite.x86/inference_lite_lib

具体内容说明:

1、 cxx文件夹:包含c++的库文件与相应的头文件

  • include : 头文件
  • lib : 库文件
    • 静态库文件:
      • libpaddle_api_full_bundled.lib :full_api 静态库
      • libpaddle_api_light_bundled.lib :light_api 静态库

2、 third_party 文件夹:依赖的第三方预测库mklml

  • mklml : Paddle-Lite预测库依赖的mklml数学库

3、 demo/cxx文件夹:x86预测库的C++ 示例demo

  • mobilenetv1_full :使用full_api 执行mobilenet_v1预测的C++ demo
  • mobilenetv1_light :使用light_api 执行mobilenet_v1预测的C++ demo

4、 demo/python: x86预测库的Python示例demo

  • mobilenetv1_full_api.py:使用full_api 执行mobilenet_v1预测的Python demo
  • mobilenetv1_light_api.py:使用full_api 执行mobilenet_v1预测的Python demo

5、 python文件夹:包含python的库文件和对应的.whl包

  • install文件夹:编译成功的.whl包位于install/dist/*.whl
  • lib文件夹:.whl包依赖的库文件