国产计算框架Mindspore1.3.0 gpu源代码中的cmake文件存在问题(bug),openmpi的url错误,导致不能正常编译——成功解决mindspore-gpu-1.3.0版本不能从源代码中编译的问题
mindspore 的 r1.3 分支 在gpu方式编译下存在问题,无法编译,具体编译结果参考:
https://www.cnblogs.com/devilmaycry812839668/p/15054624.html
编译时会报错,提示就是使用cmake自动编译mindspore-r1.3-gpu版本时openmpi的源代码中存在语法错误,经过检查发现是其中给出的openmpi地址对应的openmpi源代码中存在bug,即使是单独编译该地址下的openmpi源代码也会同样报错。
mindspore源代码 分支:r1.3 下对应的文件:
cmake/external_libs/ompi.cmake
该文件中的完整代码如下:
if(ENABLE_GITEE) set(REQ_URL "https://gitee.com/mirrors/ompi/repository/archive/v4.0.3.tar.gz") set(MD5 "f76abc92ae870feff186d790f40ae762") else() set(REQ_URL "https://github.com/open-mpi/ompi/archive/v4.0.3.tar.gz") set(MD5 "86cb724e8fe71741ad3be4e7927928a2") endif() set(ompi_CXXFLAGS "-D_FORTIFY_SOURCE=2 -O2") mindspore_add_pkg(ompi VER 4.0.3 LIBS mpi URL ${REQ_URL} MD5 ${MD5} PRE_CONFIGURE_COMMAND ./autogen.pl CONFIGURE_COMMAND ./configure) include_directories(${ompi_INC}) add_library(mindspore::ompi ALIAS ompi::mpi)
个人修改后的文件:
cmake/external_libs/ompi.cmake
完整内容:
if(ENABLE_GITEE) set(REQ_URL "https://download.open-mpi.org/release/open-mpi/v4.0/openmpi-4.0.3.tar.gz") set(MD5 "f4be54a4358a536ec2cdc694c7200f0b") else() set(REQ_URL "https://download.open-mpi.org/release/open-mpi/v4.0/openmpi-4.0.3.tar.gz") set(MD5 "f4be54a4358a536ec2cdc694c7200f0b") endif() set(ompi_CXXFLAGS "-D_FORTIFY_SOURCE=2 -O2") mindspore_add_pkg(ompi VER 4.0.3 LIBS mpi URL ${REQ_URL} MD5 ${MD5} PRE_CONFIGURE_COMMAND ./configure CONFIGURE_COMMAND ./configure) include_directories(${ompi_INC}) add_library(mindspore::ompi ALIAS ompi::mpi)
该文件如此修改后经过个人验证,可以成功在gpu环境下编译mindspore r1.3分支。
该bug已经提交PR给官网:
PR地址:
https://gitee.com/mindspore/mindspore/pulls/20824
==========================================================
操作系统:Ubuntu18.04
硬件:i7-9700k cpu, 2060super 显卡
==========================================================
相关依赖的软件完全按照官网要求进行配置的: