本文主要是介绍Mindspore1.3.0 gpu源代码中的cmake文件存在问题(bug),openmpi的url错误,导致不能正常编译,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
转载地址:https://bbs.huaweicloud.com/forum/thread-142975-1-1.html
作者:devilmaycry
mindspore1.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(ompiVER 4.0.3LIBS mpiURL ${REQ_URL}MD5 ${MD5}PRE_CONFIGURE_COMMAND ./autogen.plCONFIGURE_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(ompiVER 4.0.3LIBS mpiURL ${REQ_URL}MD5 ${MD5}PRE_CONFIGURE_COMMAND ./configureCONFIGURE_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
这篇关于Mindspore1.3.0 gpu源代码中的cmake文件存在问题(bug),openmpi的url错误,导致不能正常编译的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!