# PyPTO 三方件分析报告(更新版) ## 仓库:cann/pypto ### 一、C++ 三方件 | 目录 | 第三方件 | 版本 | 具体功能 | |------|---------|------|----------| | cmake/third_party/nlohmann_json/ | nlohmann_json | 3.11.3 | JSON 解析库,用于配置和测试数据加载 | | cmake/third_party/googletest/ | GoogleTest (gtest) | 1.14.0 | C++ 单元测试框架,框架代码 UT/ST 测试 | | cmake/third_party/libboundscheck/ | libboundscheck | - | 安全函数库,数组边界检查 | | framework/src/ | pthread (POSIX Threads) | - | POSIX 线程库,并发编程 | | python/src/bindings/ | pybind11 | >=3.0.1 | C++ 与 Python 绑定 | --- ### 二、Python 第三方依赖 #### 2.1 目录: python/requirements.txt | 第三方件 | 版本 | 具体功能 | |---------|------|----------| | setuptools | >=77.0.3 | Python 包构建和分发工具 | | pybind11 | >=3.0.1 | C++ 与 Python 绑定 | | pip | >=22.1 | Python 包管理工具 | | build | >=1.0.3 | Python 包构建工具 | | packaging | - | 版本和依赖打包工具 | | pytest | - | Python 测试框架 | | pytest-forked | - | pytest 子进程插件 | | pytest-xdist | - | pytest 分布式测试插件 | | setproctitle | - | 修改进程标题 | | psutil | - | 系统和进程工具库 | | PyYAML | - | YAML 配置文件解析 | | matplotlib | - | 数据可视化绘图 | | pandas | - | 数据分析处理 | | plotly | - | 交互式图表库 | | tabulate | - | 表格格式化输出 | #### 2.2 目录: tools/scripts/tuner/requirements.txt | 第三方件 | 具体功能 | |---------|----------| | xgboost | 梯度提升树机器学习库 | | scikit-learn | 机器学习基础库 | #### 2.3 目录: docs/requirements.txt | 第三方件 | 版本 | 具体功能 | |---------|------|----------| | fastapi | - | Web 框架 | | pydantic | - | 数据验证和-settings 管理 | | sphinx | ==5.2.3 | 文档生成工具 | | sphinx-reredirects | ==0.1.2 | Sphinx 重定向插件 | | sphinx-tabs | ==3.4.1 | Sphinx 选项卡插件 | | sphinx-toolbox | ==3.4.0 | Sphinx 工具箱 | | sphinxcontrib-napoleon | ==0.7 | Sphinx NumPy/Google 风格文档支持 | | sphinxcontrib-httpdomain | ==1.8.1 | Sphinx HTTP 域支持 | | furo | - | Sphinx 主题 | | uvicorn | - | ASGI 服务器 | | myst-parser | - | Markdown 解析器 | --- ### 三、测试代码中的隐式依赖 从测试代码 import 语句中识别的隐式依赖: | 第三方件 | 具体功能 | |---------|----------| | numpy | 数值计算库,测试中用于数组比较 | | torch | PyTorch 深度学习框架,算子验证 | | torch_npu | 华为昇腾 NPU 的 PyTorch 插件,算子 NPU 验证 | --- ### 四、系统依赖 | 位置 | 第三方件 | 版本 | 具体功能 | |------|---------|------|----------| | pyproject.toml | Python | >=3.9 | Python 解释器 | | CMakeLists.txt | CMake | >=3.16.3 | 跨平台构建系统 | --- ### 五、依赖关系图 ``` Python API (pypto) │ ├─ pybind11 ────────────────────────┐ │ │ ▼ ▼ C++ Framework ───────────────► Python Bindings │ │ ├─ gtest (测试) │ ├─ nlohmann_json (配置) │ ├─ libboundscheck (安全) │ └─ pthread (并发) │ ▼ 测试验证 ──────────────────────► torch / torch_npu / numpy ``` --- ### 六、总结 **核心构建依赖:** - CMake >= 3.16.3 - Python >= 3.9 - pybind11 >= 3.0.1 - setuptools >= 77.0.3 **C++ 第三方:** - nlohmann_json == 3.11.3 - GoogleTest == 1.14.0 - libboundscheck **运行时无核心 Python 依赖**(pyproject.toml 中 dependencies = []) **关键测试依赖:** - pytest 系列 - torch / torch_npu / numpy --- ### 七、与原报告对比差异 #### 新增内容: 1. **测试隐式依赖** - 新增从代码中识别的隐式依赖: - torch_npu(华为昇腾 NPU 专用) 2. **docs 依赖补充** - 补充 docs/requirements.txt - fastapi, pydantic, sphinx 系列 #### 修正内容: 1. **构建依赖版本** - pyproject.toml 中已显式声明 - setuptools>=77.0.3(原报告版本已正确) - pybind11>=3.0.1(原报告版本已正确) #### 确认内容: 1. **C++ 第三方** - 与原报告一致: - nlohmann_json, GoogleTest, libboundscheck, pybind11 2. **工具依赖** - 与原报告一致: - numpy, pandas, matplotlib, plotly, tabulate - xgboost, scipy 将以上内容总结归纳输出一份分析pytorch依赖归纳的提示词