自动摘要: |版本号|作者|发布日期|修订| ||||| |V1.0.0|[@SindreYang(sindre)] ……..
版本号 | 作者 | 发布日期 | 修订 |
---|---|---|---|
V1.0.0 | @Sindre Yang(sindre) | 初始版 | |
V1.1.0 | @Sindre Yang(sindre) | 2023年3月17日 | 整理并修正 |
背景
- 通过pybind11,使c++可以调用python,python环境由conda pack打包分发。
- 主要目的:
- conda提供cudatoolkit安装,可以让用户无需下载cuda依赖,即可使用cuda;
- cuda安装numpy时支持intel/amd 相关加速;
- 去除conda封装后的依赖,只保留相关运行库,第三方包,pip工具;
- 默认添加pytorch-gpu,用于直接加载pt文件,减少转换模型的精度损失及其相关算子的开发;
- 集成AMD,intel的矩阵优化mkl库;
- 无缝在C++执行python代码;
依赖
- CMake 3.12+
- C++17
- Python 3.8+
- Eigen
- fmt
- pybind11
Windows上进行安装
1. 安装依赖 (Windows 8/10/11)
- 安装conda (Miniconda 安装包可以到 https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/ 下载)
1 | git clone https://192.168.1.55/SindreYang/Deploy.git |
或者在conda自定义安装numpy,pytorch_gpu,以让cmake检测到相关依赖。
建议python版本为3.8
2. 编译
1 | mkdir build |
3. 安装
- 需导入相关运行库,以及python依赖第三方包放置在window系统库内,或exe运行目录下。
- 提供一键环境安装 python_gpu_env_install.exe,放置在生成的exe下运行即可部署相关依赖
- 双击python_test.exe检测相关库运行情况
- 目录如图:
+—DLLs —>pyd存放目录+—Lib —>第三方包| api-ms-win-core-console-l1-1-0.dll| 省略n个*.dll| vcruntime140.dll| vcruntime140_1.dll| zlib.dll| zstd.dll| python_test.exe
- 结果如图:
开发指导:
- python初始化,析构定义在
libs/CallPy/python.h
- python相关特定类型(numpy)转C++定义在
libs/CallPy/tool.h
- C++自动转python对应表如下:
C++ python 原始类型如(const char */int64) string/int stl如(std::vector/std::map) list/dict Eigen如(Eigen::Matrix等,,tensor除外) numpy
一键部署(开发中)
需安装WiX 3.11工具
1 | cmake .. ^[other cmake variables here] ^ -DWiX="C:/Program Files (x86)/WiX Toolset v3.11" |