news 2026/7/6 2:32:49

Windows C++编译 Paddle Inference 3.5.0 GPU 版本完整指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Windows C++编译 Paddle Inference 3.5.0 GPU 版本完整指南

Windows 编译 Paddle Inference 3.5.0 GPU 版本完整指南

本文档基于CUDA 12.0 + cuDNN 8.9.7 + Visual Studio 2019 + CMake 4.3环境,记录了从零开始编译 PaddlePaddle 3.5.0 C++ GPU 推理库的完整过程,包含了编译过程中遇到的所有问题及对应的解决方案

📋 目录

  1. 环境准备
  2. 下载源码与安装依赖
  3. CMake GUI 配置
  4. 源码修改(核心步骤)
  5. 编译与调试
  6. 最终链接优化
  7. 获取编译产物
  8. 测试验证
  9. 常见问题速查表

⚠️ 重要提示

  • 必须严格按照本文档顺序操作,跳过任何步骤都可能导致编译失败。
  • 所有路径不能包含中文或空格
  • 整个编译过程耗时1-3 小时,请耐心等待。
  • 源码修改是编译成功的关键,切勿跳过第 4 节。

1. 环境准备

1.1 安装 Visual Studio 2019

项目要求
版本Visual Studio 2019(Community/Professional/Enterprise 均可)
工作负载✅ 使用 C++ 的桌面开发 ✅ 通用 Windows 平台开发
语言包必须勾选“英语”,否则可能因编码问题导致编译错误

⚠️关键安装顺序必须为:先装 VS 2019,再装 CUDA,这样 CUDA 才能正确集成到 VS 中。

1.2 安装 CMake

项目要求
版本3.17 或更高版本
安装选项✅ 勾选“Add CMake to the system PATH for all users”

1.3 安装 Python

项目要求
版本Python 3.10或更高版本(64位)
安装选项✅ 勾选“Add Python to PATH”

⚠️关键:PaddlePaddle 3.5.0要求 Python ≥ 3.10。Python 3.9 会导致 CMake 配置失败。

1.4 安装 CUDA 12.0

项目要求
版本CUDA 12.0
下载地址NVIDIA CUDA 下载页
安装后路径C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.0

验证:命令行运行nvcc --version,确认显示 CUDA 12.0。

1.5 安装 cuDNN 8.9.7

项目要求
版本cuDNN 8.9.7(对应 CUDA 12.0)
下载地址NVIDIA cuDNN 下载页(需注册登录)
安装方法将解压后的binincludelib三个文件夹合并到 CUDA 安装目录下

验证:检查C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.0\include\cudnn_version.h是否存在。

1.6 安装 TensorRT(可选)

如果需要在推理中使用 TensorRT 加速,可以安装 TensorRT 8.6.1.6。建议先关闭WITH_TENSORRT完成基础编译,后续再单独处理。

1.7 安装 Git

从 Git 官网 下载并安装,保持默认选项即可。

2. 下载源码与安装依赖

2.1 打开正确的命令行

在开始菜单中找到“x64 Native Tools Command Prompt for VS 2019”右键 → 以管理员身份运行

⚠️关键所有后续命令都必须在这个终端里执行,包括启动cmake-gui

2.2 克隆 PaddlePaddle 源码

mkdirD:\workspace&&cd/d D:\workspacegitclone https://github.com/PaddlePaddle/Paddle.gitcdPaddle

2.3 切换到 3.5.0 分支

gitcheckout release/3.5.0

2.4 安装 Python 依赖

# 确认 Python 版本 >= 3.10python--version# 安装编译所需依赖pipinstallnumpy protobuf wheel ninja pyyaml jinja2 pybind11-stubgen

💡 如果网络较慢,可使用国内镜像:

pipinstall-ihttps://pypi.tuna.tsinghua.edu.cn/simple numpy protobuf wheel ninja pyyaml jinja2

3. CMake GUI 配置

3.1 启动 CMake GUI

VS 2019 的命令行中输入:

cmake-gui

⚠️必须在 VS 2019 命令行中启动cmake-gui,以确保 CMake 正确继承 VS 和 x64 的环境变量。

3.2 设置源码和构建目录

项目
Where is the source codeD:/workspace/Paddle
Where to build the binariesD:/workspace/Paddle/build

3.3 首次 Configure

  1. 点击Configure
  2. Generator:选择Visual Studio 16 2019
  3. Platform:选择x64
  4. 点击Finish

此时界面可能出现红色错误,属于正常现象

3.4 配置关键编译选项

在 CMake GUI 中搜索并设置以下选项:

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/6 2:32:05

Win10 家庭版启用组策略 gpedit.msc:3步解决本地安全策略缺失问题

Win10家庭版解锁组策略功能:3步实现专业版系统管理能力每次遇到需要调整系统高级设置时,Win10家庭版用户总会发现那个熟悉的gpedit.msc命令无法使用。这并非你的操作问题,而是微软在家庭版中刻意移除了组策略编辑器这一核心管理工具。但今天我…

作者头像 李华
网站建设 2026/7/6 2:31:16

SQL Server 2022 嵌套查询实战:3类子查询与连接查询性能对比分析

SQL Server 2022 嵌套查询实战:3类子查询与连接查询性能对比分析当数据库表数据量达到百万级时,查询性能的差异往往能带来数倍甚至数十倍的执行时间差距。本文将基于真实测试数据,深入分析IN、EXISTS和相关子查询三类嵌套查询与等效连接查询的…

作者头像 李华
网站建设 2026/7/6 2:31:09

MySQL 8.0 连接查询深度解析:5种JOIN执行过程与适用场景图解

MySQL 8.0 连接查询深度解析:5种JOIN执行过程与适用场景图解在数据库查询优化领域,连接查询(JOIN)是最核心也是最复杂的操作之一。理解不同JOIN类型的执行机制和适用场景,对于编写高效SQL语句和优化查询性能至关重要。…

作者头像 李华
网站建设 2026/7/6 2:31:03

OTB-2015 与 VOT2023 数据集对比:从 100 个序列到 60 个挑战的 10 年演进分析

OTB-2015与VOT2023数据集对比:十年演进的技术启示录当计算机视觉研究者第一次在OTB-2015数据集上测试跟踪算法时,可能不会想到这个包含100个视频序列的基准会成为行业里程碑。十年后,VOT2023以60个精心设计的挑战场景重新定义了评估标准。这场…

作者头像 李华
网站建设 2026/7/6 2:30:35

AI 时代,学会R之后,很多人后悔了

有一位学员读我说,「如果三年前我就开始学R,现在手上至少多两篇SCI。」 这不是夸张,是很多过来人的真实感受。 今天不聊技术,聊聊那些学会R之后的「后悔」——后悔没早点学,后悔没早点订阅系统课程,后悔在…

作者头像 李华
网站建设 2026/7/6 2:30:09

Unity AssetBundle 2022.3 内存泄漏排查:3种 Unload 误用场景与 Profiler 取证

Unity AssetBundle 2022.3 内存泄漏深度排查:从误用模式到Profiler实战指南1. 当内存成为隐形杀手:AssetBundle管理的核心挑战在Unity项目开发的中后期阶段,随着资源规模扩大和功能复杂度提升,AssetBundle内存泄漏往往成为性能优化…

作者头像 李华