昇思MindSpore在Windows下长期缺失GPU版本,多次的用户调研以及客户反馈都期望能提供Windows GPU版本。这个问题的核心原因在于CUDA的编译工具,在Windows下依赖cl.exe,这是微软的MSVC的编译器,因此无法使用Mingw的Gcc工具链完成编译。在解决了海量的工程问题后,当前master分支代码已可以基于MSVC完成Windows GPU版本编译,并在2.0版本中进行正式的发布。

想要尝鲜的朋友可以通过如下的步骤完成昇思MindSpore Windows GPU版本的编译。

01

编译前准备

Windows GPU版本的编译依赖如下工具和库,需要在编译前完成准备:

1、安装Microsoft Visual Studio Community 2019[1],选择社区版下载,安装时按照下图选择相应的组件,同时也可以切换到非C盘进行安装。

2、 安装git for windows[2]。同时将Git目录加到Path环境变量中,如果git安装在D:\Program Files\Git时,那么需要把D:\Git\usr\bin加入到Path环境变量中。
3、 安装CMake 3.18.3版本[3]。安装路径中不能出现中文和日文,安装完成后将cmake的路径添加到系统环境变量Path中,2,3设置如下图。

4、安装Python[4](>=3.7.5)。可以从华为云选择合适的版本进行安装。

5、安装Cuda和Cudnn:从Nvida官方网站,分别下载Cuda[5]和CUDNN[6]。Cuda的版本可以选择11.1或者11.6,其中Cuda是可执行的安装包,点击安装即可。CUDNN需要选择11.1或者11.6对应的版本,下载解压缩之后把CUDNN的安装目录加到CUDNN_HOME的环境变量中。此外,使用CUDNN需要下载一个额外的zlib动态链接库zlibwapi.dll,并将路径其加入到Path环境变量中。如下图:

02

编译昇思MindSpore GPU版本

打开cmd命令行,使用git clone git@gitee.com:mindspore/mindspore.git下载昇思MindSpore主干代码仓,然后从命令行进入到昇思MindSpore代码目录,执行编译命令:

set FROM_GITEE=1
call build.bat ms_vs_gpu
后续等待约2小时左右(和计算机性能有关),就可以完成版本的编译。编译好的GPU版本在代码仓的build/package中,如下,使用pip install mindspore_gpu-2.0.0-cp39-cp39-win_amd64.whl即可完成GPU版本的安装。

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----         2022/8/31     11:09                build
d-----         2022/8/31     20:06                dist
d-----         2022/8/31     20:06                mindspore
d-----         2022/8/31     20:06                mindspore_gpu.egg-info
-a----         2022/8/31     20:06       93617923 mindspore_gpu-2.0.0-cp39-cp39-win_amd64.whl
03

运行昇思MindSpore GPU版本

下载昇思MindSpore的手写数字教程代码[7],安装MindSpore Vision套件pip install mindvision,然后执行python mindspore_quick_start.py --device_target=GPU。可以看到训练任务可以顺利执行,证明编译出的版本功能正常。

(py39) PS C:\Users\iambowen\Downloads> python .\mindspore_quick_start.py --device_target=GPU
……
epoch: 1 step: 125, loss is 2.284395456314087
epoch: 1 step: 250, loss is 2.2882909774780273
epoch: 1 step: 375, loss is 2.294778823852539
epoch: 1 step: 500, loss is 2.3158369064331055
epoch: 1 step: 625, loss is 2.3036279678344727
epoch: 1 step: 750, loss is 1.9158216714859009
epoch: 1 step: 875, loss is 0.3985179364681244
epoch: 1 step: 1000, loss is 0.14882513880729675
epoch: 1 step: 1125, loss is 0.21342350542545319
epoch: 1 step: 1250, loss is 0.07935728877782822
epoch: 1 step: 1375, loss is 0.14339512586593628
epoch: 1 step: 1500, loss is 0.08406876772642136
epoch: 1 step: 1625, loss is 0.013466060161590576
epoch: 1 step: 1750, loss is 0.07948829233646393
……

下载链接

[1]https://learn.microsoft.com/zh-cn/visualstudio/releases/2019/release-notes

[2]https://link.zhihu.com/?target=https%3A//github.com/git-for-windows/git/releases/download/v2.29.2.windows.2/Git-2.29.2.2-64-bit.exe

[3]https://github.com/Kitware/Cmake/releases/tag/v3.18.3

[4]https://repo.huaweicloud.com/python/

[5]https://developer.nvidia.com/cuda-11.1.1-download-archive

[6]https://developer.nvidia.com/cudnn

[7]https://obs.dualstack.cn-north-4.myhuaweicloud.com/mindspore-website/notebook/r1.8/tutorials/zh_cn/beginner/mindspore_quick_start.py

Logo

华为技术汇总页

更多推荐