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 顯示卡

==========================================================

相關依賴的軟體完全按照官網要求進行配置的: