PaddlePaddle / Paddle

PArallel Distributed Deep LEarning: Machine Learning Framework from Industrial Practice (『飞桨』核心框架,深度学习&机器学习高性能单机、分布式训练和跨平台部署)
http://www.paddlepaddle.org/
Apache License 2.0
22.29k stars 5.62k forks source link

Paddle 在rocm软件栈中的编译错误 #66368

Open TimeYWL opened 4 months ago

TimeYWL commented 4 months ago

bug描述 Describe the Bug

我使用 https://github.com/PaddlePaddle/Paddle/commit/31174be8bac15216c71b3b5a6e34d63aa13b81f5 版本的paddle源码进行编译,软件栈为rocm 5.7,gcc 9.4.0, python 3.9 ,ubuntu 18.04. cmake指令: cmake -DPY_VERSION=3.9 -DWITH_ROCM=ON -DWITH_GPU=OFF -DWITH_NCCL=OFF -DWITH_RCCL=ON -DWITH_PSCORE=OFF -DWITH_TESTING=OFF -DWITH_DISTRIBUTE=ON -DCMAKE_HIP_ARCHITECTURES=gfx906,gfx908,gfx916,gfx926,gfx928 -DCMAKE_PREFIX_PATH=/opt/rocm .. 完成cmake之后,使用make进行编译,出现错误:

[ 62%] Building CXX object paddle/fluid/pir/dialect/CMakeFiles/op_dialect.dir/operator/ir/pd_api.cc.o
In file included from /workspace/Paddle-3117/build/paddle/fluid/pir/dialect/operator/ir/pd_api.cc:7:
/workspace/Paddle-3117/paddle/fluid/imperative/amp_utils.h:19:10: fatal error: paddle/fluid/eager/api/generated/eager_generated/forwards/dygraph_functions.h: No such file or directory
   19 | #include "paddle/fluid/eager/api/generated/eager_generated/forwards/dygraph_functions.h"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
paddle/fluid/pir/dialect/CMakeFiles/op_dialect.dir/build.make:733: recipe for target 'paddle/fluid/pir/dialect/CMakeFiles/op_dialect.dir/operator/ir/pd_api.cc.o' failed
make[2]: *** [paddle/fluid/pir/dialect/CMakeFiles/op_dialect.dir/operator/ir/pd_api.cc.o] Error 1
CMakeFiles/Makefile2:50128: recipe for target 'paddle/fluid/pir/dialect/CMakeFiles/op_dialect.dir/all' failed
make[1]: *** [paddle/fluid/pir/dialect/CMakeFiles/op_dialect.dir/all] Error 2
Makefile:135: recipe for target 'all' failed
make: *** [all] Error 2

我rm -rf *后,重新cmake和make,两次都出现了同样的错误,感觉像是generate阶段生成的文件有所缺失,请问有什么解决办法吗?

其他补充信息 Additional Supplementary Information

No response

liaoxin2 commented 4 months ago
  1. 检查CMake配置:确保您的CMake配置命令没有遗漏任何必要的参数或选项。特别是,检查与ROCm和GPU相关的选项是否正确设置。
  2. 检查源代码:由于错误提示中提到的文件paddle/fluid/eager/api/generated/eager_generated/forwards/dygraph_functions.h没有找到,您可能需要检查源代码中是否有相关的生成脚本或CMake规则来生成这个文件。如果该文件是由某个脚本或工具生成的,确保该脚本或工具在构建过程中被正确调用。
  3. 检查依赖项:确保所有必要的依赖项都已正确安装,并且CMake可以找到它们。特别是与ROCm相关的库和工具链。
  4. 查看CMake输出:重新运行CMake配置命令,并仔细查看输出。有时,CMake会在输出中提供有关缺失文件或配置错误的提示。
  5. 尝试不同的PaddlePaddle版本:如果您正在使用的PaddlePaddle版本与您的软件栈不完全兼容,考虑尝试一个不同的版本。有时,软件库的更新会引入与旧版本软件栈不兼容的更改。