已关闭
[Installation]: 源码编译报错torch/library.h: No such file or directory #71
changetheway创建于  4月9日关闭于  5月25日
changetheway成员
4月9日 创建

在提交新问题之前,请确保您已经在社区中搜索过相关问题,并使用了社区中提供的资源/工具后,仍未找到满意的解决方式。

环境信息

  • 昇腾硬件信息:910B4
  • CANN软件版本:8.5

您是如何安装操作的

git clone https://gitcode.com/Ascend/MindIE-SD.git
cd MindIE-SD/
python3 setup.py bdist_wheel
报错:
/home/codes/MindIE-SD/csrc/plugin/block_sparse_attention.cpp:13:10: fatal error: torch/library.h: No such file or directory
13 | #include <torch/library.h>
| ^~~~~~~~~~~~~~~~~
/home/codes/MindIE-SD/csrc/plugin/register_ops.cpp:13:10: fatal error: torch/library.h: No such file or directory
13 | #include <torch/library.h>
| ^~~~~~~~~~~~~~~~~
/home/codes/MindIE-SD/csrc/plugin/la.cpp:13:10: fatal error: torch/library.h: No such file or directory
13 | #include <torch/library.h>
| ^~~~~~~~~~~~~~~~~
/home/codes/MindIE-SD/csrc/plugin/sparse_block_estimate.cpp:13:10: fatal error: torch/library.h: No such file or directory
13 | #include <torch/library.h>
| ^~~~~~~~~~~~~~~~~
compilation terminated.
compilation terminated.
compilation terminated.
compilation terminated.
/home/codes/MindIE-SD/csrc/plugin/find_op_path.cpp:15:10: fatal error: ATen/Tensor.h: No such file or directory
15 | #include <ATen/Tensor.h>
| ^~~~~~~~~~~~~~~
compilation terminated.
gmake[2]: *** [CMakeFiles/PTAExtensionOPS.dir/build.make:76: CMakeFiles/PTAExtensionOPS.dir/plugin/register_ops.cpp.o] Error 1
gmake[2]: *** Waiting for unfinished jobs....
gmake[2]: *** [CMakeFiles/PTAExtensionOPS.dir/build.make:90: CMakeFiles/PTAExtensionOPS.dir/plugin/la.cpp.o] Error 1
gmake[2]: *** [CMakeFiles/PTAExtensionOPS.dir/build.make:160: CMakeFiles/PTAExtensionOPS.dir/plugin/block_sparse_attention.cpp.o] Error 1
gmake[2]: *** [CMakeFiles/PTAExtensionOPS.dir/build.make:118: CMakeFiles/PTAExtensionOPS.dir/plugin/find_op_path.cpp.o] Error 1
/home/codes/MindIE-SD/csrc/plugin/la_preprocess.cpp:13:10: fatal error: torch/library.h: No such file or directory
13 | #include <torch/library.h>
| ^~~~~~~~~~~~~~~~~
compilation terminated.
gmake[2]: *** [CMakeFiles/PTAExtensionOPS.dir/build.make:174: CMakeFiles/PTAExtensionOPS.dir/plugin/sparse_block_estimate.cpp.o] Error 1
gmake[2]: *** [CMakeFiles/PTAExtensionOPS.dir/build.make:132: CMakeFiles/PTAExtensionOPS.dir/plugin/la_preprocess.cpp.o] Error 1
/home/codes/MindIE-SD/csrc/plugin/adalayernorm.cpp:15:10: fatal error: torch/library.h: No such file or directory
15 | #include <torch/library.h>
| ^~~~~~~~~~~~~~~~~
compilation terminated.
/home/codes/MindIE-SD/csrc/plugin/rainfusionattention.cpp:14:10: fatal error: torch/library.h: No such file or directory
14 | #include <torch/library.h>
| ^~~~~~~~~~~~~~~~~
/home/codes/MindIE-SD/csrc/plugin/layernorm.cpp:15:10: fatal error: torch/library.h: No such file or directory
15 | #include <torch/library.h>
| ^~~~~~~~~~~~~~~~~
compilation terminated.
compilation terminated.
gmake[2]: *** [CMakeFiles/PTAExtensionOPS.dir/build.make:146: CMakeFiles/PTAExtensionOPS.dir/plugin/rainfusionattention.cpp.o] Error 1
gmake[2]: *** [CMakeFiles/PTAExtensionOPS.dir/build.make:188: CMakeFiles/PTAExtensionOPS.dir/plugin/layernorm.cpp.o] Error 1
gmake[2]: *** [CMakeFiles/PTAExtensionOPS.dir/build.make:104: CMakeFiles/PTAExtensionOPS.dir/plugin/adalayernorm.cpp.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:83: CMakeFiles/PTAExtensionOPS.dir/all] Error 2
gmake: *** [Makefile:91: all] Error 2
ERROR:root:Build script failed with return code 2
ERROR:root:Build script output: None
Traceback (most recent call last):
File "/home/codes/MindIE-SD/setup.py", line 78, in run
subprocess.check_call(
File "/usr/local/lib/python3.11/subprocess.py", line 413, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['bash', './build.sh']' returned non-zero exit status 2.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/home/codes/MindIE-SD/setup.py", line 109, in
setup(
File "/usr/local/lib/python3.11/site-packages/setuptools/init.py", line 87, in setup
return distutils.core.setup(**attrs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 185, in setup
return run_commands(dist)
^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 201, in run_commands
dist.run_commands()
File "/usr/local/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 968, in run_commands
self.run_command(cmd)
File "/usr/local/lib/python3.11/site-packages/setuptools/dist.py", line 1217, in run_command
super().run_command(command)
File "/usr/local/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 987, in run_command
cmd_obj.run()
File "/usr/local/lib/python3.11/site-packages/wheel/_bdist_wheel.py", line 378, in run
self.run_command("build")
File "/usr/local/lib/python3.11/site-packages/setuptools/_distutils/cmd.py", line 319, in run_command
self.distribution.run_command(command)
File "/usr/local/lib/python3.11/site-packages/setuptools/dist.py", line 1217, in run_command
super().run_command(command)
File "/usr/local/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 987, in run_command
cmd_obj.run()
File "/usr/local/lib/python3.11/site-packages/setuptools/_distutils/command/build.py", line 132, in run
self.run_command(cmd_name)
File "/usr/local/lib/python3.11/site-packages/setuptools/_distutils/cmd.py", line 319, in run_command
self.distribution.run_command(command)
File "/usr/local/lib/python3.11/site-packages/setuptools/dist.py", line 1217, in run_command
super().run_command(command)
File "/usr/local/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 987, in run_command
cmd_obj.run()
File "/home/codes/MindIE-SD/setup.py", line 86, in run
raise RuntimeError(f"Build script execution failed with return code {e.returncode}") from e
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeError: Build script execution failed with return code 2

欢迎加入社区,感谢您对社区的贡献 🎉!

likedislike
Cchangetheway成员
4月9日 添加了label:installation
ascend-robotascend-robot成员
4月9日 添加了label:bug
Cchangetheway成员
4月9日 修改了issue 的描述
Cchangetheway成员
4月9日 关联了pull request:修复plugin编译报错
吴铭泾
吴铭泾成员
4月13日 评论:

您好,感谢您的反馈!关于源码编译缺少torch/library.h的问题,这是由于PyTorch开发头文件未安装导致的报错。请确认已安装PyTorch开发版本(pip install torch --pre)或从源码编译PyTorch。您关联的PR !239 已处理此问题,我们会尽快审核。如有其他疑问欢迎继续反馈!

likedislike
Cchangetheway成员
5月7日 添加了label:triage-review
changetheway成员
5月7日 评论:

Bug 根因分析

问题类型: 编译配置问题

错误关键信息:

fatal error: torch/library.h: No such file or directory
fatal error: ATen/Tensor.h: No such file or directory

根本原因

  1. CMake 路径查找问题: CMake 脚本通过 site.getsitepackages() 获取 Python 全局包路径,进而推断 torch 和 torch_npu 的安装路径
  2. 路径不匹配: 在某些环境下,torch/torch_npu 安装路径不属于 Python 全局包路径,导致无法定位相关头文件

解决方案

✅ 已通过 PR #239 修复

PR #239 已合并,修改方案:

  • 替换为利用 torch.__file__ 属性动态计算 torch 库父目录路径的方法
  • 确保在各种安装环境下都能正确找到 torch 头文件

验证步骤

  1. 拉取最新代码: git pull origin master 或 git pull origin dev
  2. 重新编译: python3 setup.py bdist_wheel
  3. 安装: pip install dist/mindiesd-*.whl

推荐责任人

此问题已由 @changetheway 通过 PR #239 修复。

关联 PR: #239

likedislike
changetheway成员
5月7日 评论:

Issue 自动评审结果

分类

  • 类型: Installation / Bug
  • 优先级: High
  • 建议标签: installation, bug, build

问题根因分析

编译时找不到 PyTorch C++ 头文件:

根因:

  1. 系统缺少 PyTorch 开发头文件(通常需要 的 C++ 前端)
  2. CMake 未能正确找到 PyTorch 的 include 路径
  3. 可能需要设置 或安装

排查方向

  1. 确认 PyTorch 安装方式:Requirement already satisfied: torch in /Users/gty/miniconda3/lib/python3.13/site-packages (2.8.0)
    Requirement already satisfied: filelock in /Users/gty/miniconda3/lib/python3.13/site-packages (from torch) (3.18.0)
    Requirement already satisfied: typing-extensions>=4.10.0 in /Users/gty/miniconda3/lib/python3.13/site-packages (from torch) (4.12.2)
    Requirement already satisfied: setuptools in /Users/gty/miniconda3/lib/python3.13/site-packages (from torch) (78.1.1)
    Requirement already satisfied: sympy>=1.13.3 in /Users/gty/miniconda3/lib/python3.13/site-packages (from torch) (1.14.0)
    Requirement already satisfied: networkx in /Users/gty/miniconda3/lib/python3.13/site-packages (from torch) (3.5)
    Requirement already satisfied: jinja2 in /Users/gty/miniconda3/lib/python3.13/site-packages (from torch) (3.1.6)
    Requirement already satisfied: fsspec in /Users/gty/miniconda3/lib/python3.13/site-packages (from torch) (2025.7.0)
    Requirement already satisfied: mpmath<1.4,>=1.1.0 in /Users/gty/miniconda3/lib/python3.13/site-packages (from sympy>=1.13.3->torch) (1.3.0)
    Requirement already satisfied: MarkupSafe>=2.0 in /Users/gty/miniconda3/lib/python3.13/site-packages (from jinja2->torch) (3.0.2) 还是源码编译?
  2. 检查 PyTorch 版本是否兼容(项目要求 torch 2.1+)
  3. 确认是否安装了 和
  4. 检查 或 中的 PyTorch 路径检测逻辑

优化建议

  1. 在 中添加 PyTorch 头文件路径自动检测
  2. 提供明确的错误提示,告知用户如何安装开发依赖
  3. 考虑使用 替代手动 CMake 配置

推荐责任人

@changetheway(报告者)

可能的解决方案

Requirement already satisfied: torch in /Users/gty/miniconda3/lib/python3.13/site-packages (2.8.0)
Collecting torch
Downloading torch-2.11.0-cp313-cp313-macosx_11_0_arm64.whl.metadata (29 kB)
Requirement already satisfied: filelock in /Users/gty/miniconda3/lib/python3.13/site-packages (from torch) (3.18.0)
Requirement already satisfied: typing-extensions>=4.10.0 in /Users/gty/miniconda3/lib/python3.13/site-packages (from torch) (4.12.2)
Requirement already satisfied: setuptools<82 in /Users/gty/miniconda3/lib/python3.13/site-packages (from torch) (78.1.1)
Requirement already satisfied: sympy>=1.13.3 in /Users/gty/miniconda3/lib/python3.13/site-packages (from torch) (1.14.0)
Requirement already satisfied: networkx>=2.5.1 in /Users/gty/miniconda3/lib/python3.13/site-packages (from torch) (3.5)
Requirement already satisfied: jinja2 in /Users/gty/miniconda3/lib/python3.13/site-packages (from torch) (3.1.6)
Requirement already satisfied: fsspec>=0.8.5 in /Users/gty/miniconda3/lib/python3.13/site-packages (from torch) (2025.7.0)
Requirement already satisfied: mpmath<1.4,>=1.1.0 in /Users/gty/miniconda3/lib/python3.13/site-packages (from sympy>=1.13.3->torch) (1.3.0)
Requirement already satisfied: MarkupSafe>=2.0 in /Users/gty/miniconda3/lib/python3.13/site-packages (from jinja2->torch) (3.0.2)
Downloading torch-2.11.0-cp313-cp313-macosx_11_0_arm64.whl (80.6 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 80.6/80.6 MB 9.6 MB/s eta 0:00:00
Installing collected packages: torch
Attempting uninstall: torch
Found existing installation: torch 2.8.0
Uninstalling torch-2.8.0:
Successfully uninstalled torch-2.8.0
Successfully installed torch-2.11.0

likedislike
changetheway成员
5月11日 评论:

🤖 AI 评审跟进:

感谢您提供的详细根因分析!您的分析非常专业。

PR 关联确认:PR #239(修复 plugin 编译报错)已合并到 master/dev 分支,该 PR 使用 torch.__file__ 动态计算路径,理论上可以解决您描述的问题。

请确认更新到最新代码后问题是否已解决:

git pull origin master  # 或 dev 分支
python3 setup.py bdist_wheel

如有其他编译问题,欢迎继续反馈!

likedislike
changetheway成员
5月11日 评论:

🤖 【AI 自动分析】

感谢提交此 Bug 报告!我是 AI 助手,已将此 Issue 分类为 installation + bug 类型并添加 ai-triaged 标记。


🔍 根因分析

问题核心:编译时找不到 PyTorch C++ 扩展头文件 torch/library.h 和 ATen/Tensor.h。

根本原因:

  1. Torch 头文件未安装:使用 python setup.py bdist_wheel 源码编译时,需要确保 PyTorch 开发头文件已安装
  2. Torch 版本不匹配:requirements.txt 中 torch 版本可能与 CANN 要求的版本不一致

报错文件分析:

  • csrc/plugin/block_sparse_attention.cpp
  • csrc/plugin/la.cpp (Laser Attention)
  • csrc/plugin/sparse_block_estimate.cpp

这些插件都依赖 PyTorch 的 C++ API 进行自定义算子注册。


🛠 排查方向

  1. 安装 PyTorch 开发依赖:

    pip install torch --index-url https://download.pytorch.org/whl/cpu
    # 或者安装带编译头的版本
    
  2. 检查 CMake 配置:

    • CMakeLists.txt 中的 find_package(Torch REQUIRED) 应该能找到 torch
    • 确保 torch_DIR 或 TORCH_INSTALL_PREFIX 环境变量设置正确
  3. 使用 Docker 环境(推荐):

    docker pull ascend-mindie/mindie-sd:8.5.1
    

    官方提供的 Docker 镜像已包含所有编译依赖。

  4. 检查 CANN 版本:

    • 当前使用 CANN 8.5,建议确认是否需要更新的 CANN 版本

💡 优化建议

  1. 文档增强:建议在 docs/zh/installing_guide.md 中明确说明源码编译的前置依赖
  2. 自动化检查:添加 python setup.py develop --pre-check 命令来验证编译环境
  3. 提供预编译 wheel:发布预编译的 wheel 包,避免用户本地编译

📎 关联 PR 分析

暂无直接关联的 PR。建议维护者确认:

  • Issue #47(编译 mindiesd 缺少 libgraph_base.so)可能相关
  • 近期 PR #247(PEP 517 build flow)可能涉及构建流程改进

⚠️ 注意:如需进一步帮助,请补充以下信息:

  1. 具体的 PyTorch 版本(pip show torch)
  2. 是否使用了 Docker 环境
  3. 完整的 CMake 输出日志

本分析由 AI 自动生成,如有问题请指正

likedislike
changetheway成员
5月11日 评论:

🤖 【AI 自动回复】

感谢提交此 Bug 报告!

Bug 类型 Issue 深度分析

根因分析

根据您提供的错误信息,这是一个典型的 编译环境缺失头文件 问题:

fatal error: torch/library.h: No such file or directory
fatal error: ATen/Tensor.h: No such file or directory

根因定位:

  1. torch/library.h 和 ATen/Tensor.h 是 PyTorch C++ 扩展的头文件
  2. 当前环境安装的是 pip wheel 版本 PyTorch,缺少 C++ 头文件
  3. 源码编译需要 PyTorch 从源码构建 的环境

排查方向

  1. 确认当前 PyTorch 安装类型:

    python -c "import torch; print(torch.__file__)"
    

    如果路径指向 site-packages/torch,说明安装的是 wheel 版本

  2. 解决方案:

    • 方案一:从源码编译安装 PyTorch
      git clone --recursive https://github.com/pytorch/pytorch
      cd pytorch
      git checkout tags/v2.x.x  # 选择与您 torch_npu 兼容的版本
      pip install -r requirements.txt
      python setup.py install
      
    • 方案二:使用官方提供的 开发镜像
      参考 docker/Dockerfile_910b_aarch64.ubuntu 中预配置的环境
  3. 版本兼容性检查:
    确保 torch、torch_npu、CANN 版本匹配:

    • CANN 8.5
    • torch 2.8.x (建议与 torch_npu 版本一致)
    • torch_npu 2.8.x

优化建议

  1. 文档增强:明确标注源码编译的前置依赖
  2. 环境检查脚本:提供自动检测 torch 是否为源码构建的工具
  3. 预编译 wheel:考虑提供预编译版本,减少用户编译成本

已收到您的报告。请确认您的 PyTorch 安装方式,这将有助于我们提供更精确的解决方案。

likedislike
changetheway成员
5月11日 评论:

关联分析

关联分析:发现 PR #288 (生成编译数据库) 可能与本 Issue 相关。

该 PR 状态:open,目标分支:dev。

关联说明:

  • PR #288 在编译阶段开启 CMAKE_EXPORT_COMPILE_COMMANDS
  • 合并编译数据库有助于解决编译环境配置问题

建议维护者确认关联关系。

likedislike
changetheway成员
5月11日 评论:

您好!我是 AI 评审助手。

感谢您提交的 Bug 报告,本 Issue 已标记为 bug 和 ai-triaged。

深度分析:

根因定位:
源码编译时找不到 torch/library.h,这是 PyTorch C++ 扩展的头文件。该问题通常由以下原因导致:

  1. torch C++ 开发组件未安装:需要安装 torch 的 development package
  2. PYTORCH_INCLUDE_PATH 未设置:CMake 无法定位 PyTorch 头文件
  3. 环境隔离问题:使用 python3 setup.py 时可能未找到正确的 Python 环境

排查方向:

  1. 确认 torch 安装来源和路径
  2. 检查 TORCH_CUDA_ARCH_LIST 等环境变量
  3. 验证 Python、torch、torch_npu 版本兼容性

解决方案:

# 1. 确保安装 torch 的 development 文件
pip install torch --index-url https://download.pytorch.org/whl/cpu

# 2. 或使用仓库推荐的 Dockerfile 环境进行构建
docker build -f docker/Dockerfile_910b_aarch64.ubuntu -t mindiesd-build .

# 3. 检查 torch 路径
python -c "import torch; print(torch.__path__)"

根本建议:
建议使用仓库提供的 Docker 构建环境,可确保所有依赖正确配置。

感谢您的报告!

likedislike
changetheway成员
5月11日 评论:

🤖 AI 评审

感谢提交此安装问题报告!

问题分类: Bug / Installation

初步分析:
错误表明编译时找不到 torch/library.h 和 ATen/Tensor.h 头文件。

根因分析:

  1. 环境缺少 PyTorch 开发头文件
  2. 可能未正确设置 CPLUS_INCLUDE_PATH 和 C_INCLUDE_PATH
  3. torch 安装不完整或使用了预编译版本

排查方向:

  1. 确保已安装 PyTorch 开发版本(非 pip wheel 版本)
  2. 设置环境变量指向正确的 include 路径
  3. 参考 docker/Dockerfile_910b_aarch64.ubuntu 中的构建环境配置

关联分析:
发现 PR #247 (Adopt PEP 517 build flow and refresh UT coverage) 可能与改善构建流程相关。
该 PR 状态:merged,目标分支:dev


此评论由 AI 自动生成

likedislike
changetheway成员
5月11日 评论:

🤖 【AI自动分析】

感谢提交此问题!

分类标签: 已有 installation, bug, triage-review 标签


🔍 深度分析

问题描述

源码编译报错:torch/library.h: No such file or directory

根因分析

直接原因: torch 2.8.0 版本移除了 torch/library.h 头文件,此文件在旧版本 torch 中用于定义自定义算子。

影响范围:

  • CANN 8.5 + Torch 2.8.0 组合
  • 涉及 aclop 到 aclnn 迁移过程中的兼容性

排查方向

  1. 确认 torch 版本: 检查是否可以从 2.8.0 回退到 2.1.x 或 2.2.x
  2. 使用兼容版本: MindIE-SD 当前主要支持 torch 2.1.x
  3. 环境变量: 确认 CANN 和 torch-npu 版本兼容性

优化建议

  1. 在文档中明确支持的 torch 版本范围
  2. 添加版本兼容性检查脚本
  3. 考虑支持 torch 2.8.0 的新 API

本评论由 AI 自动生成。

likedislike
吴铭泾吴铭泾成员
5月25日 关闭了 issue
吴铭泾
吴铭泾成员
5月25日 评论:

您好,感谢您提交此编译问题。根因已定位为 CMake 路径查找导致 torch 头文件无法找到,已通过 PR #239 修复并合入主线。请更新到最新代码后重新编译验证。Issue 先行关闭,如仍有问题请随时重新打开或提交新 Issue,感谢您的贡献!

likedislike
吴铭泾吴铭泾成员
5月25日 重新打开了 issue
吴铭泾吴铭泾成员
5月25日 issue状态由 TODO 改变为 DONE
吴铭泾吴铭泾成员
5月25日 关闭了 issue
ascend-robotascend-robot成员
5月26日 添加了label:resolved
lijinxilijinxi成员
26 天前 关联了看板:MindIE-SD