WHULuoJiaTeam / luojianet

http://58.48.42.237/luojiaNet/
Apache License 2.0
187 stars 36 forks source link

NPU(Ascend)服务器编译LuoJiaNET V1.0.5失败 #5

Closed MemoryCrash closed 2 years ago

MemoryCrash commented 2 years ago

LuoJiaTeam您好

我在华为Ascend服务器源码安装LuoJiaNET V1.0.5失败,希望LuoJiaTeam能协助分析安装失败的原因。 安装步骤:参考GPU源码编译指导。先安装环境依赖,接着安装gdal(bash build_gdal_npu.sh),最后安装LuoJiaNET(bash build_npu.sh -e ascend -j 4)。

安装LuoJiaNET过程遇到如下问题。

问题1:采用NPU训练脚本,但编译过程会寻找CUDA CMake Error at /usr/local/share/cmake-3.21/Modules/FindCUDA.cmake:859 (message): Specify CUDA_TOOLKIT_ROOT_DIR 规避方法: cmake/options.cmake中的option(ENABLE_GPU "Enable gpu" ON)修改为option(ENABLE_GPU "Enable gpu" OFF)

问题2:找不到头文件。经查,未在对应目录下找到指定头文件 /root/ai_framework/luojianet/graphengine/ge/ge_runtime/model_runner.cc:18:10: fatal error: framework/ge_runtime/model_runner.h: No such file or directory #include "framework/ge_runtime/model_runner.h `/root/ai_framework/luojianet/graphengine/metadef/inc/common/opskernel/ops_kernel_builder.h:25:10: fatal error: proto/task.pb.h: No such file or directory

include "proto/task.pb.h`

问题3:使用的变量未定义 /root/ai_framework/luojianet/graphengine/ge/common/dump/dump_properties.cc:146:7: error: ‘mmIsDir’ was not declared in this scope 规避方法:添加 #include "mmap/mmpa_api.h"头文件。

感谢答复。

LuoJiaTeam commented 2 years ago

LuoJiaTeam您好

我在华为Ascend服务器源码安装LuoJiaNET V1.0.5失败,希望LuoJiaTeam能协助分析安装失败的原因。 安装步骤:参考GPU源码编译指导。先安装环境依赖,接着安装gdal(bash build_gdal_npu.sh),最后安装LuoJiaNET(bash build_npu.sh -e ascend -j 4)。

安装LuoJiaNET过程遇到如下问题。

问题1:采用NPU训练脚本,但编译过程会寻找CUDA CMake Error at /usr/local/share/cmake-3.21/Modules/FindCUDA.cmake:859 (message): Specify CUDA_TOOLKIT_ROOT_DIR 规避方法: cmake/options.cmake中的option(ENABLE_GPU "Enable gpu" ON)修改为option(ENABLE_GPU "Enable gpu" OFF)

问题2:找不到头文件。经查,未在对应目录下找到指定头文件 /root/ai_framework/luojianet/graphengine/ge/ge_runtime/model_runner.cc:18:10: fatal error: framework/ge_runtime/model_runner.h: No such file or directory #include "framework/ge_runtime/model_runner.h /root/ai_framework/luojianet/graphengine/metadef/inc/common/opskernel/ops_kernel_builder.h:25:10: fatal error: proto/task.pb.h: No such file or directory #include "proto/task.pb.h

问题3:使用的变量未定义 /root/ai_framework/luojianet/graphengine/ge/common/dump/dump_properties.cc:146:7: error: ‘mmIsDir’ was not declared in this scope 规避方法:添加 #include "mmap/mmpa_api.h"头文件。

感谢答复。

感谢您反馈的意见, 问题1. 在NPU下编译,需要在options.cmake中,将ENABLE_CUDA设置为OFF: option(ENABLE_GPU "Enable gpu" OFF) 问题2. 找不到该头文件原因是编译时,采用了多线程(-j 4参数)编译方法,可去掉该参数,采用如下命令编译: bash build_npu.sh -e ascend 问题3. NPU下使用编译graph_eigine,可以采用添加该头文件避免未定义问题

同时,感谢您在pr提出的意见,已将do { } while(); 宏定义处全部修改,避免了“;”导致的问题。 如果碰到新的问题,欢迎您随时提问。

MemoryCrash commented 2 years ago

感谢您反馈的意见, 问题1. 在NPU下编译,需要在options.cmake中,将ENABLE_CUDA设置为OFF: option(ENABLE_GPU "Enable gpu" OFF) 问题2. 找不到该头文件原因是编译时,采用了多线程(-j 4参数)编译方法,可去掉该参数,采用如下命令编译: bash build_npu.sh -e ascend 问题3. NPU下使用编译graph_eigine,可以采用添加该头文件避免未定义问题

同时,感谢您在pr提出的意见,已将do { } while(); 宏定义处全部修改,避免了“;”导致的问题。 如果碰到新的问题,欢迎您随时提问。

LuoJiaTeam您好

感谢答复。我更新代码后,使用 bash build_npu.sh -e ascend 命令进行源码安装。

`/root/ai_framework/luojianet/graphengine/ge/ge_runtime/model_runner.cc:18:10: fatal error: framework/ge_runtime/model_runner.h: No such file or directory

include "framework/ge_runtime/model_runner.h"

` 我在luojianet代码目录下通过 find ./ -name model_runner.h 查找文件,可以看到该文件出现在 luojianet_ms/ccsrc/runtime/device/ascend/ge_runtime/model_runner.h目录。

root@ubuntu:~/ai_framework/luojianet# find ./ -name model_runner.h
./luojianet_ms/ccsrc/runtime/device/ascend/ge_runtime/model_runner.h

以下为环境信息

root@ubuntu:~/ai_framework/luojianet# npu-smi info
+-------------------------------------------------------------------------------------------+
| npu-smi 22.0.0                   Version: 22.0.0                                          |
+----------------------+---------------+----------------------------------------------------+
| NPU   Name           | Health        | Power(W)    Temp(C)           Hugepages-Usage(page)|
| Chip                 | Bus-Id        | AICore(%)   Memory-Usage(MB)  HBM-Usage(MB)        |
+======================+===============+====================================================+
| 2     910B           | OK            | 69.3        68                15   / 15            |
| 0                    | 0000:01:00.0  | 0           1846 / 15077      1    / 32768         |
+======================+===============+====================================================+

root@ubuntu:~/ai_framework/luojianet# cat /proc/version
Linux version 4.15.0-112-generic (buildd@bos02-arm64-075) (gcc version 7.5.0 (Ubuntu/Linaro 7.5.0-3ubuntu1~18.04)) #113-Ubuntu SMP Thu Jul 9 23:42:54 UTC 2020
LuoJiaTeam commented 2 years ago

感谢您反馈的意见, 问题1. 在NPU下编译,需要在options.cmake中,将ENABLE_CUDA设置为OFF: option(ENABLE_GPU "Enable gpu" OFF) 问题2. 找不到该头文件原因是编译时,采用了多线程(-j 4参数)编译方法,可去掉该参数,采用如下命令编译: bash build_npu.sh -e ascend 问题3. NPU下使用编译graph_eigine,可以采用添加该头文件避免未定义问题 同时,感谢您在pr提出的意见,已将do { } while(); 宏定义处全部修改,避免了“;”导致的问题。 如果碰到新的问题,欢迎您随时提问。

LuoJiaTeam您好

感谢答复。我更新代码后,使用 bash build_npu.sh -e ascend 命令进行源码安装。

  • 依然提示model_runner.h文件不存在。是因为我还有一些配置没设置吗?

/root/ai_framework/luojianet/graphengine/ge/ge_runtime/model_runner.cc:18:10: fatal error: framework/ge_runtime/model_runner.h: No such file or directory #include "framework/ge_runtime/model_runner.h" 我在luojianet代码目录下通过 find ./ -name model_runner.h 查找文件,可以看到该文件出现在 luojianet_ms/ccsrc/runtime/device/ascend/ge_runtime/model_runner.h目录。

root@ubuntu:~/ai_framework/luojianet# find ./ -name model_runner.h
./luojianet_ms/ccsrc/runtime/device/ascend/ge_runtime/model_runner.h

以下为环境信息

root@ubuntu:~/ai_framework/luojianet# npu-smi info
+-------------------------------------------------------------------------------------------+
| npu-smi 22.0.0                   Version: 22.0.0                                          |
+----------------------+---------------+----------------------------------------------------+
| NPU   Name           | Health        | Power(W)    Temp(C)           Hugepages-Usage(page)|
| Chip                 | Bus-Id        | AICore(%)   Memory-Usage(MB)  HBM-Usage(MB)        |
+======================+===============+====================================================+
| 2     910B           | OK            | 69.3        68                15   / 15            |
| 0                    | 0000:01:00.0  | 0           1846 / 15077      1    / 32768         |
+======================+===============+====================================================+

root@ubuntu:~/ai_framework/luojianet# cat /proc/version
Linux version 4.15.0-112-generic (buildd@bos02-arm64-075) (gcc version 7.5.0 (Ubuntu/Linaro 7.5.0-3ubuntu1~18.04)) #113-Ubuntu SMP Thu Jul 9 23:42:54 UTC 2020

感谢再次反馈。 问题在于graphengine的版本发生了变动,可NPU下将graphengine相关设置去掉后,再编译: https://github.com/WHULuoJiaTeam/luojianet/tree/master/cmake/mind_expression.cmake mind_expression.cmake中第95-112行屏蔽掉后,再重新编译

MemoryCrash commented 2 years ago

感谢再次反馈。 问题在于graphengine的版本发生了变动,可NPU下将graphengine相关设置去掉后,再编译: https://github.com/WHULuoJiaTeam/luojianet/tree/master/cmake/mind_expression.cmake mind_expression.cmake中第95-112行屏蔽掉后,再重新编译

LuoJiaTeam您好 感谢回复。我按照指导编译后出现问题。具体步骤如下

将mind_expression.cmake按照安装如下方式注释

 90 if(ENABLE_GE)
 91     include_directories(${CMAKE_SOURCE_DIR}/third_party/ge/include)
 92     include_directories(${CMAKE_SOURCE_DIR}/third_party/ge/include/external)
 93     include_directories(${CMAKE_SOURCE_DIR}/third_party/ge/include/external/graph)
 94     link_directories(${CMAKE_SOURCE_DIR}/third_party/ge/lib)
 95 #elseif(ENABLE_D OR ENABLE_ACL OR ENABLE_TESTCASES)
 96 #include_directories(${CMAKE_SOURCE_DIR}/graphengine/inc)
 97 #include_directories(${CMAKE_SOURCE_DIR}/graphengine/inc/external)
 98 #include_directories(${CMAKE_SOURCE_DIR}/graphengine/metadef/inc)
 99 #include_directories(${CMAKE_SOURCE_DIR}/graphengine/metadef/inc/external)
100 #include_directories(${CMAKE_SOURCE_DIR}/graphengine/metadef/inc/external/graph)
101 #endif()
102
103 #if(ENABLE_GE OR ENABLE_D OR ENABLE_ACL OR ENABLE_TESTCASES)
104 #include_directories(${CMAKE_SOURCE_DIR}/graphengine/inc)
105 #include_directories(${CMAKE_SOURCE_DIR}/graphengine/inc/external)
106 #include_directories(${CMAKE_SOURCE_DIR}/graphengine/inc/framework)
107 #include_directories(${CMAKE_SOURCE_DIR}/graphengine/third_party/fwkacllib/inc)
108 #include_directories(${CMAKE_SOURCE_DIR}/graphengine/third_party/fwkacllib/inc/toolchain)
109 #include_directories(${CMAKE_SOURCE_DIR}/graphengine/metadef/inc)
110 #include_directories(${CMAKE_SOURCE_DIR}/graphengine/metadef/inc/external)
111 #include_directories(${CMAKE_SOURCE_DIR}/graphengine/metadef/inc/external/graph)
112 endif()

重新编译提示找不到 acl/acl.h和acl/acl_tdt.h `/root/ai_framework/luojianet/luojianet_ms/ccsrc/minddata/dataset/kernels/image/dvpp/utils/MDAclProcess.h:30:10: fatal error: acl/acl.h: No such file or directory

include "acl/acl.h"`

`/root/ai_framework/luojianet/luojianet_ms/ccsrc/minddata/dataset/engine/tdt/tdt_handle.h:24:10: fatal error: acl/acl_tdt.h: No such file or directory

include "acl/acl_tdt.h"`

在当前luojienet目录查找可用找到此文件

root@ubuntu:~/ai_framework/luojianet# find ./ -name acl.h
./graphengine/inc/external/acl/acl.h
root@ubuntu:~/ai_framework/luojianet# find ./ -name acl_tdt.h
./graphengine/inc/external/acl/acl_tdt.h
LuoJiaTeam commented 2 years ago

ENABLE_GE OR ENABLE_D OR ENABLE_ACL OR ENABLE_TESTCASES

在执行bash build_npu.sh前,命令行首先执行: export ENABLE_ACL="off" 然后看编译情况。

LuoJiaTeam commented 2 years ago

感谢再次反馈。 问题在于graphengine的版本发生了变动,可NPU下将graphengine相关设置去掉后,再编译: https://github.com/WHULuoJiaTeam/luojianet/tree/master/cmake/mind_expression.cmake mind_expression.cmake中第95-112行屏蔽掉后,再重新编译

LuoJiaTeam您好 感谢回复。我按照指导编译后出现问题。具体步骤如下

将mind_expression.cmake按照安装如下方式注释

 90 if(ENABLE_GE)
 91     include_directories(${CMAKE_SOURCE_DIR}/third_party/ge/include)
 92     include_directories(${CMAKE_SOURCE_DIR}/third_party/ge/include/external)
 93     include_directories(${CMAKE_SOURCE_DIR}/third_party/ge/include/external/graph)
 94     link_directories(${CMAKE_SOURCE_DIR}/third_party/ge/lib)
 95 #elseif(ENABLE_D OR ENABLE_ACL OR ENABLE_TESTCASES)
 96 #include_directories(${CMAKE_SOURCE_DIR}/graphengine/inc)
 97 #include_directories(${CMAKE_SOURCE_DIR}/graphengine/inc/external)
 98 #include_directories(${CMAKE_SOURCE_DIR}/graphengine/metadef/inc)
 99 #include_directories(${CMAKE_SOURCE_DIR}/graphengine/metadef/inc/external)
100 #include_directories(${CMAKE_SOURCE_DIR}/graphengine/metadef/inc/external/graph)
101 #endif()
102
103 #if(ENABLE_GE OR ENABLE_D OR ENABLE_ACL OR ENABLE_TESTCASES)
104 #include_directories(${CMAKE_SOURCE_DIR}/graphengine/inc)
105 #include_directories(${CMAKE_SOURCE_DIR}/graphengine/inc/external)
106 #include_directories(${CMAKE_SOURCE_DIR}/graphengine/inc/framework)
107 #include_directories(${CMAKE_SOURCE_DIR}/graphengine/third_party/fwkacllib/inc)
108 #include_directories(${CMAKE_SOURCE_DIR}/graphengine/third_party/fwkacllib/inc/toolchain)
109 #include_directories(${CMAKE_SOURCE_DIR}/graphengine/metadef/inc)
110 #include_directories(${CMAKE_SOURCE_DIR}/graphengine/metadef/inc/external)
111 #include_directories(${CMAKE_SOURCE_DIR}/graphengine/metadef/inc/external/graph)
112 endif()

重新编译提示找不到 acl/acl.h和acl/acl_tdt.h /root/ai_framework/luojianet/luojianet_ms/ccsrc/minddata/dataset/kernels/image/dvpp/utils/MDAclProcess.h:30:10: fatal error: acl/acl.h: No such file or directory #include "acl/acl.h"

/root/ai_framework/luojianet/luojianet_ms/ccsrc/minddata/dataset/engine/tdt/tdt_handle.h:24:10: fatal error: acl/acl_tdt.h: No such file or directory #include "acl/acl_tdt.h"

在当前luojienet目录查找可用找到此文件

root@ubuntu:~/ai_framework/luojianet# find ./ -name acl.h
./graphengine/inc/external/acl/acl.h
root@ubuntu:~/ai_framework/luojianet# find ./ -name acl_tdt.h
./graphengine/inc/external/acl/acl_tdt.h

@MemoryCrash 您的问题是否已经解决?需要远程协助吗?如果还没有解决,可以将您的QQ或微信联系方式发送至: luojiawhu2022@163.com ,由我们远程协助您解决。

MemoryCrash commented 2 years ago

LuoJiaTeam您好

目前,还未解决。按照

在执行bash build_npu.sh前,命令行首先执行: export ENABLE_ACL="off"

出现查找graph/tensor.h失败的问题。 `/root/ai_framework/luojianet/luojianet_ms/ccsrc/transform/graph_ir/types.h:30:10: fatal error: graph/tensor.h: No such file or directory

include "graph/tensor.h"`

已发送邮件:)

LuoJiaTeam commented 2 years ago

NPU下的安装包,可通过如下地址下载: https://whu.obs.cn-central-221.ovaijisuan.com/whl_files/ascend910_npu/luojianet_ms_ascend-1.0.0-cp37-cp37m-linux_aarch64.whl