• [安装] mindspore源码安装GPU版失败
    按照https://www.mindspore.cn/install的要求安装所要的包,但是在`bash build.sh -e gpu`步出现问题。安装rgpc时最后一步链接出错,屏幕输出如下:报错log见附件.请问这是什么问题?pthreads是哪个包?能否给个安装链接?搜到一个基于PHP的Pthreads,是这个玩意儿吗?
  • [特性分析] 金字塔项目(二):MindSpore-GPU在同一主机的不同环境中的性能粗评
    背景在Win10游戏本中搭建MindSpore-GPU的深度学习环境中,MindSpore-GPU利用Windows,WSL,Ubuntu和Docker的环境终于可以跑起来,而且肉眼可见GPU的确参与了运算。这一段时间用下来,我并没有踩上风火轮的欣快,总感觉哪里不对劲呢。本人不谙测试之道,但是看着慢吞吞的进度实在难以忍受,故而赶鸭子上架,用些笨办法做一点性能量化对比实验。虽然方法不严谨,但对于展示各种环境下的运行表现已经足够了。闲话到此,以下干货。一、运行环境除了上一篇文中所搭建的环境之外,为了对比MindSpore在宿主机与虚拟机表现差别,我在主机内安装了MindSpore-CPU版本,环境参数如下:conda:4.8.4python:3.7.5MindSpore: 1.0.0 (cpu)二、实验过程和结果1、从MindSpore官方代码仓下载Lenet示例代码。2、分别在宿主机、WSL Ubuntu docker环境下运行该代码。3、在docker下运行时,分别指定目标设备为CPU,GPU4、由于机器上有两块显卡,因此在把GPU指定为目标设备时,可能会选择Intel HD-630或NVidia GTX1050Ti,根据资源管理器的图表记录对应的数据5、当GPU为指定设备时,分别选择数据下沉和数据不下沉两种模式6、每个配置下分别运行三次,把第10轮训练结束时报告的用时记录下来。7、实验数据使用GPU与使用CPU对比性能有提升吗?我反正看不出来。我不由开始怀疑,我的英伟达,你是不是怀揣着一颗扣肉的心?三、使用PyTorch进一步实验MindSpore-GPU不支持Windows,因此无法让我在的宿主机上做对照实验。我不得不换个思路,用PyTorch再作一次对比测试——因为PyTorch可以做到WL双修。宿主机环境:  CPU: Intel Core-i7-7700HQ @2.8GHz  RAM: 16GB  GPU: NVidia GeForce 1050Ti  OS: 64-bit Windows Home 2004 (20241.1005)  CUDA: 11.2  conda: 4.8.4  Python: 3.7.5  Pytorch: 1.5.1  cudatoolkit: 10.1  CuDNN:7  WSL2 Ubuntu 环境:  OS: Ubuntu 18.04  conda: 4.8.4    Python: 3.7.5  Pytorch: 1.5.1  cudatoolkit: 10.1  CuDNN:7  WSL Ubuntu Docker环境  Docker: 19.03.13  conda: 4.8.4  Python: 3.7.5  Pytorch: 1.5.0  cudatoolkit: 10.1  CuDNN:7  实验步骤:1、从 Dive-into-DL-PyTorch代码仓获取PyTorch版的Lenet脚本2、在上述三个环境中,分别指定CPU和GPU设备运行,记录用时对比性能输出如下:Windows使用CPU的用时使用GPU的用时    可以看出,在物理机Windows中,使用GPU的用时是使用CPU的1/3。看到这样的对比结果是比较舒适的。使用CPU的系统资源开销使用GPU的系统资源开销    以看到,当使用CPU时,任务启动瞬间已经把负载跑满,只有当一轮训练完成时才小小喘口气,当下一轮启动时,系统负载又马上回到100%。而使用GPU时,CPU的负载在30%    以下,同时显存利用率提升,说明GPU承担了运算任务。WSL Ubuntu使用CPU的用时使用GPU的用时        与物理机数据对比,有3个现象非常明显:    1、使用CPU的用时是使用GPU的一半(我去!!!)。    2、不过稍感安慰的是,在虚拟机Ubuntu中使用GPU的用时是在物理机Windows中使用CPU用时的一半(有点绕,就是虚拟机GPU用10秒,物理机CPU用时20秒)    3、虚拟机中使用CPU的用时竟然还要优于在物理机Windows中使用GPU(惊讶!!!)。    我现在大概有点明白,为什么业内大佬们都愿意用Linux炼丹了。不过性能有这么大的差别,不太好解释,或许是由于PyTorch有针对性地做过Linux系统下的优化?使用CPU的系统资源开销    使用GPU的系统资源开销    可以看出使用CPU时,任务前半段负载达到100%,后半段下降到80%左右。任务结束很快,负载也回到1%上下。使用GPU时,CPU的负载在30左右,与使用物理机时相比稍有    提高。WSL Ubuntu Docker使用CPU的用时使用GPU的用时使用CPU的系统资源开销使用GPU的系统资源开销    使用WSL Ubuntu Docker运行的表现几乎复制了WSL Ubuntu。可以看出Docker对资源占用很小。四、总结看来使用虚拟机对GPU的性能损失非常大。对比用PyTorch和Mindspore的运行结果,PyTorch在虚拟机中用GPU相对于宿主机Windows中使用CPU有性能上的大幅提升,而MindSpore无论使用CPU还是GPU性能都接近,我猜是因为PyTorch针对Linux和虚拟化的GPU环境做了优化,而MindSpore重点是发挥自研的Atlas芯片的威力,对GPU(尤其是消费级产品,而且是经虚拟化后的GPU)还没有优化充分。虽然这个对比结果让我非常失望,不过我还是决定暂时保留现在的环境,毕竟我只有这一台机器可用,Windows上的很多应用一时也不太容易在Ubuntu上找到替代品,而且MindSpore对消费级GPU的适配还是未知数,因此,贸然完全切换到Ubuntu不是我当前的首选。那么还有必要保存WSL+Docker运行MindSpore-GPU的环境吗?我觉得还是有必要的。查一下MindSpore网络支持就能发现,大部分的网络还不支持CPU。所以从学习和体验的角度来看,有一套GPU的环境是必要的。大神打比赛,求带。哪里写得不对,求大牛指教。欢迎加微信
  • [分布式] MindSpore-GPU 1.0版本引擎通过 openmpi进行RDAM多机分布式训练失败
    【问题简要描述】使用华为提供的 docker 镜像“mindspore/mindspore-gpu:runtime”或者在主机上直接pip安装 mindspore_gpu-1.0.0-cp37-cp37m-linux_x86_64.whl,然后编译安装支持 pml  ucx的openmpi工具,运行RDMA协议(走 ucx信道)的多机分布式训练失败。【操作步骤】1、两台主机上分别启动并配置容器:docker pull mindspore/mindspore-gpu:1.0.0; docker run -idt --name=mindsp-1.0 --shm-size=32768m --gpus all --cap-add IPC_LOCK --cap-add SYS_RESOURCE  --net host --device /dev/infiniband:/dev/infiniband  mindspore/mindspore-gpu:1.0.0;docker exec -it mindsp-1.0 bash容器中安装sshd服务并配置互相免密登录成功;在容器中下载 GPU训练代码 “https://gitee.com/mindspore/docs.git”与数据集 “git clone https://github.com/JanHalozan/ConvolutionalNeuralNetwork.git”,修改训练代码中 target 为“GPU”直接可以验证 走 TCP 协议的 分布式多机多GPU卡训练是成功的: mpirun  -np 8  --mca pml ob1 --mca btl tcp,self -mca btl_tcp_if_include ib1 -x PATH -x DATA_PATH --prefix /usr/local/openmpi-4.0.3 --allow-run-as-root --hostfile --hostfile ./hostfile-4-4 hostname pytest distributed_training/resnet50_distributed_training.py2、在两边容器中分别安装 Infiniband 用户态库文件,编译安装 ucx-v1.9.0库,重新编译 openmpi,再进行 RDMA协议的分布式训练apt-get install -y libibverbs-dev  librdmacm-dev  ibverbs-utils  rdmacm-utils libibverbs-devgit clone -b v1.9.0 https://github.com/openucx/ucx.gitconfigure 并install ucx 库重新编译openmpi-4.0.3,使能 RDMA 与UCX: ./configure --with-openib=/usr/include/infiniband --prefix=/home/hzg/openmpi-4.0.3-rdma --allow-run-as-root --hostfile --with-hwloc-libdir=/usr/lib/x86_64-linux-gnu --with-ucx=/home/hzg/ucx-1.9.0 make -j32 ; make all install查看 ucx_info 与 ompi_info,确认 RDMA ucx等组件安装正确编译运行 openmpi 提供的 ring_c sample进行多机分布式走 ucx 模块的 RDMA协议验证是OK的: mpirun -n 4 -mca btl self -mca pml ucx --prefix /home/hzg/openmpi-4.0.3-rdma --allow-run-as-root --hostfile --hostfile ../../hostfile-2-2 -x UCX_NET_DEVICES=mlx5_1:1 -x PATH /var/mindsp-data/openmpi-4.0.3/examples/ring_c运行GPU训练代码本机单机多GPU卡 训练,或者远程单机多GPU卡训练,都是OK的:mpirun -n 4 -mca btl self -mca pml ucx --prefix  /home/hzg/openmpi-4.0.3-rdma --allow-run-as-root --hostfile ../../host-remote-4 pytest distributed_training/resnet50_distributed_training.py       或者       mpirun -n 4 -mca btl self -mca pml ucx --prefix  /home/hzg/openmpi-4.0.3-rdma --allow-run-as-root --hostfile ../../host-local-4 pytest distributed_training/resnet50_distributed_training.py3. 【问题现象】运行多机分布式GPU训练就失败了,双方容器中 GPU训练进程都启动了,看起来像是进程间通信阻塞,命令如下终端上无debug信息的测试(base) [root@centos7-test-1 hongzg]# mpirun -np 2 --allow-run-as-root -mca btl self -mca pml ucx -x NCCL_SOCKET_IFNAME=ib1 -x UCX_NET_DEVICES=mlx5_1:1 -x UCX_TLS=rc,shm,cuda --hostfile hostfiles/hostfile-1-1 pytest test1.py============================= test session starts ==============================platform linux -- Python 3.7.7, pytest-6.1.2, py-1.9.0, pluggy-0.13.1rootdir: /root/hongzgcollecting ... ============================= test session starts ==============================platform linux -- Python 3.7.7, pytest-6.1.2, py-1.9.0, pluggy-0.13.1rootdir: /root/hongzgcollected 1 itemcollected 1 itemtest1.py看不到报错,终端上的打印信息停止了,进程都不会自动结束终端上增加debug信息的测试增加调试信息输出后运行效果与日志见附件 run_ucx.txt希望解答的问题: Mindspore-GPU 1.0版本引擎是否可以支持 Infiniband 网卡上的 RDMA协议分布式训练? Mindspore-CPU 1.0版本引擎是否可以支持 Infiniband 网卡上的 RDMA协议分布式训练?如果支持 Infiniband 网卡上的 RDMA协议分布式训练,我上述步骤有什么问题?
  • [活动体验] 【10月奖品共赏】奖品展示。。。
    10月份是个丰收的季节。国庆假期,我好像在MindSpore论坛发了3个安装MindSpore 1.0的帖子和博客(帖子属于内容记录,博客属于内容整理)。其实本来我没有想得奖的意思,只是觉得装MindSpore比较好玩。。。尽管对于MindSpore的其他环节(架构、代码、算子,算法等各种)几乎不懂,但是这也没阻止我在Windows,Ubuntu的环境尝试安装了CPU和GPU的版本(GPU的版本仅限于Ubuntu),而且试了源码安装的方式,感觉收获满满。。没想到,这一不经意的发帖,导致奖品纷至沓来。。。。(夸张了点,但是张小白还是要夸的)。我看 满堂大大选择了雷柏鼠标:晒单贴:https://bbs.huaweicloud.com/forum/thread-85533-1-1.html 而我已经有了足够多的鼠标(还有一个鼠标在码豆商城。。。)而拥有512GTF卡的我,对于64G的U盘。。好像是看不上的。。。看来只有挑选闹钟了。传统闹钟在手机、手环、手表,AI音箱的冲击下,貌似已经没啥活力了。。。让我们看看闹钟怎么样吧。。得力也算是一个比较有名的办公用品品牌。它的2B铅笔我曾经用了很久。而它物美价廉的文件筐,确实是一个工作和家庭的好帮手,至今家里还在用。。。这个闹钟一拿到手,就觉得感觉还不错。。。至少它带温度计。。。打开包装看一下——正面:反面:说明略感繁琐。。但是谁叫它是个传统的闹钟呢?如果是小艺,直接跟它说,定个几点的闹钟不就得了。。。顶面还有个 背光控制和贪睡的按钮装上2节7号电池点亮,并设置好时间以及闹钟,到点了居然没叫。。。原来,闹钟设置了要设置激活。否则光设置闹铃时间也没用。。。如上图所示,只有2号闹钟旁边有个2字出现,才会在指定的闹铃时间响铃。当然了。响铃的声音也不是很好听,先B十秒,再BB十秒,再BBB十秒,再连续B。。。(u can u up,no can no bb)闹铃的时候你也可以选择按3秒钟贪睡键,关闭当前闹钟,或者选择按1下贪睡键,先睡个5分钟再等闹钟按照上面的叫法重复叫你一次。由于只有3个键,设置时间和闹钟的时候,基本上要靠”确认“+”上”+“下”这种方式反复操作。不过得力能将它节省到3个键解决问题已经是不错了。不过,张小白还是感觉传统闹钟已经被打败了。AI时代,传统企业何去何从。。。。这可能是新一代“打”工人需要考虑的话题了。(全文完,谢谢阅读)
  • [安装] mindspore gpu版验证结果与官网教程不一致
    【功能模块】安装的mindspore gpu版,在验证安装的时候出现与官网上显示的验证结果不一样【操作步骤&问题现象】1.Ubuntu 18.04下安装了anaconda32.创建了虚拟环境mindspore3.用官网的“pip install https://ms-release.obs.cn-north-4.myhuaweicloud.com/1.0.1/MindSpore/gpu/ubuntu_x86/cuda-10.1/mindspore_gpu-1.0.1-cp37-cp37m-linux_x86_64.whl --trusted-host ms-release.obs.cn-north-4.myhuaweicloud.com”,安装了liunx gpu版本的mindspore4.安装完成之后,使用官网提供的脚本进行测试发现结果不一致【截图信息】测试脚本测试结果【日志信息】(可选,上传日志内容或者附件)
  • [执行问题] 【Mindspore】ubuntu+anaconda3+虚拟环境+gpu版本,安装后无法正常运行代码
    【功能模块】在Ubuntu 16.08下安装了anaconda3,创建了虚拟环境,安装了cuda和cudnn,然而无法正常运行代码服务器管理员统一安装的cuda10.2,我没有管理员权限,所以就想到了在conda虚拟环境中安装cuda10.1【操作步骤&问题现象】1、在Ubuntu 16.08下安装了anaconda32、创建了名为Mindspore的虚拟环境3、激活虚拟环境后,“conda install cudatoolkit=10.1 cudnn=7.6.5” 安装了对应版本的cuda和cudnn4、用官网的“pip install https://ms-release.obs.cn-north-4.myhuaweicloud.com/1.0.1/MindSpore/gpu/ubuntu_x86/cuda-10.1/mindspore_gpu-1.0.1-cp37-cp37m-linux_x86_64.whl --trusted-host ms-release.obs.cn-north-4.myhuaweicloud.com”,安装了liunx gpu版本的mindspore5、安装后,输入    python    import mindspore6、出现错误(图1),或如下:(MindSpore) ypd-19-5@dachuang19-PowerEdge-T630:~$ pythonPython 3.7.5 (default, Oct 25 2019, 15:51:11)[GCC 7.3.0] :: Anaconda, Inc. on linuxType "help", "copyright", "credits" or "license" for more information.>>> import mindspore[WARNING] ME(4352:139822507321088,MainProcess):2020-11-02-18:03:05.340.614 [mindspore/_version_check.py:101] Can not find nvcc compiler(need by mindspore-gpu), please check if you have set env PATH, you can reference to the installation guidelines https://www.mindspore.cn/install[WARNING] ME(4352:139822507321088,MainProcess):2020-11-02-18:03:05.340.869 [mindspore/_version_check.py:105] Can not find cuda so(need by mindspore-gpu), please check if you have set env LD_LIBRARY_PATH, you can reference to the installation guidelines https://www.mindspore.cn/installTraceback (most recent call last):  File "<stdin>", line 1, in <module>  File "/home/ypd-19-5/anaconda3/envs/MindSpore/lib/python3.7/site-packages/mindspore/__init__.py", line 17, in <module>    from ._version_check import check_version_and_env_config  File "/home/ypd-19-5/anaconda3/envs/MindSpore/lib/python3.7/site-packages/mindspore/_version_check.py", line 284, in <module>    check_version_and_env_config()  File "/home/ypd-19-5/anaconda3/envs/MindSpore/lib/python3.7/site-packages/mindspore/_version_check.py", line 282, in check_version_and_env_config    env_checker.check_env(e)  File "/home/ypd-19-5/anaconda3/envs/MindSpore/lib/python3.7/site-packages/mindspore/_version_check.py", line 71, in check_env    raise e  File "/home/ypd-19-5/anaconda3/envs/MindSpore/lib/python3.7/site-packages/mindspore/_version_check.py", line 276, in check_version_and_env_config    from . import _c_expressionImportError: libcudnn.so.7: cannot open shared object file: No such file or directory7、我看好像是没有把nvcc和cuda什么的添加到环境变量中,所以后来,参考了https://bbs.huaweicloud.com/forum/thread-23807-1-1.html这篇帖子的方案,添加了一堆我不知道是什么的环境变量,依然无法解决,还是出现上面一样的问题【截图信息】一:【日志信息】(可选,上传日志内容或者附件)
  • [AI人工智能全栈成长...] [问答官]移动端gpu的具体使用场景
    移动端因为存储的原因也不会有太大数据量 那么移动端的gpu的主要使用场景在哪些方面
  • [AI人工智能全栈成长...] 【问答官】训练时GPU显存不够怎么办
    使用2080Ti训练人脸识别模型,样本集共20w数据,batch_size设置为50,程序一启动,因为要读取大量的图片数据,GPU的显存就由11G降到剩下十几M,所以训练速度极慢(10个batch大约1分钟,训练一个epoch约需要7小时)。现在有两种思路:1,换显存更大的GPU如V100,但是成本更贵;2,将读取数据的操作交给CPU来做,GPU主要做训练推理。第一种方案已知可行。现在想寻求第二种方案的实现,如果有小伙伴有遇到过这种问题或者看到有好的博客文章,求共享经验,谢谢!注:使用的框架是tensorflow-gpu 1.13.2       使用的数据集是celeba
  • [执行问题] MindSpore Cpu训练正常,Gpu Loss计算出现问题。
    使用gitee 上的教程中的代码,https://gitee.com/mindspore/docs/blob/master/tutorials/notebook/quick_start.ipynb , 将其中的 context.set_context(mode=context.GRAPH_MODE, device_target="CPU") 改为context.set_context(mode=context.GRAPH_MODE, device_target="GPU") 的时候,出现了训练loss 为nan或0的问题,系统cuda版本为10.1, cudnn为7.6,
  • [执行问题] 如何将GPU版本Mindspore训练的模型转为om离线模型
    用Mindspore GPU版训练resnet50模型,想转为Atlas200DK上能执行的om模型。转换om似乎需要先将训练的模型导出为pb模式?在导出pb格式时:1.export(net, Tensor(input), file_name='./x.pb', file_format='GEIR') ValueError: mindspore/ccsrc/pipeline/jit/pipeline.cc:969 ExportGraph] Only MindSpore with Ascend backend support exporting file in 'AIR' format. 2. export(net, Tensor(input), file_name='./x.pb', file_format='AIR') ValueError: mindspore/ccsrc/pipeline/jit/pipeline.cc:969 ExportGraph] Only MindSpore with Ascend backend support exporting file in 'AIR' format.3.export(net, Tensor(input), file_name='./x.pb', file_format='ONNX')格式为ONNX时能够保存为pb模型,然后用act进行模型转换时,atc --model=./x.pb --framework=1 --output=./xpb --soc_version=Ascend310 ATC start working now, please wait for a moment. [EVENT] GE(3438,atc):2020-10-27-23:23:55.195.702 [framework/domi/init/gelib.cc:55]3438 Initialize:[GEPERFTRACE] GE Init Start [EVENT] GE(3438,atc):2020-10-27-23:23:55.195.924 [framework/domi/init/gelib.cc:92]3438 InnerInitialize:[GEPERFTRACE] The time cost of InnerInitialize::SystemInitialize is [167] micro second. [EVENT] GE(3438,atc):2020-10-27-23:23:55.197.673 [framework/domi/init/gelib.cc:102]3438 InnerInitialize:[GEPERFTRACE] The time cost of InnerInitialize::EngineInitialize is [1709] micro second. [EVENT] FE(3438,atc):2020-10-27-23:23:56.763.630 [fusion_engine/fusion_manager/fusion_manager.cpp:252]Initialize:"[FE_PERFORMANCE]The time cost of FusionManager::Initialize is [1393344] micro second." [EVENT] GE(3438,atc):2020-10-27-23:23:56.926.335 [framework/domi/init/gelib.cc:112]3438 InnerInitialize:[GEPERFTRACE] The time cost of InnerInitialize::OpsManagerInitialize is [1728569] micro second. [EVENT] GE(3438,atc):2020-10-27-23:23:56.926.548 [framework/domi/init/gelib.cc:122]3438 InnerInitialize:[GEPERFTRACE] The time cost of InnerInitialize::SessionManagerInitialize is [0] micro second. [EVENT] GE(3438,atc):2020-10-27-23:23:56.926.689 [framework/domi/init/gelib.cc:132]3438 InnerInitialize:[GEPERFTRACE] The time cost of InnerInitialize::SetMemoryMallocSize is [43] micro second. [EVENT] GE(3438,atc):2020-10-27-23:23:56.949.625 [framework/domi/init/gelib.cc:142]3438 InnerInitialize:[GEPERFTRACE] The time cost of InnerInitialize::HostCpuEngineInitialize is [22758] micro second. [EVENT] GE(3438,atc):2020-10-27-23:23:56.949.807 [framework/domi/init/gelib.cc:78]3438 Initialize:[GEPERFTRACE] The time cost of GELib::Initialize is [1754034] micro second. [libprotobuf ERROR google/protobuf/wire_format_lite.cc:603] String field 'ge.proto.GraphDef.name' contains invalid UTF-8 data when parsing a protocol buffer. Use the 'bytes' type if you intend to send raw bytes.  [ERROR] GE(3438,atc):2020-10-27-23:23:57.120.724 [common/graph/./model.cc:167]3438 LoadFromFile: ErrorNo: -1(failed) ParseFromFileDescriptor failed [ERROR] GE(3438,atc):2020-10-27-23:23:57.120.789 [framework/domi/offline/main.cc:845]3438 GenerateModel: ErrorNo: -1(failed) Load model from ./x.pb failed, please check model file or input parameter[--framework] is correct [EVENT] FE(3438,atc):2020-10-27-23:23:57.563.073 [fusion_engine/fusion_manager/fusion_manager.cpp:316]Finalize:"[FE_PERFORMANCE]The time cost of FusionManager::Finalize is [415218] micro second." ATC run failed, Please check the detail log, Try 'atc --help' for more information转换caffe模型时能够成功,mindspore转换失败。求助
  • [调试调优] 【Mindspore】【Bert训练】Bert gpu训练模型时的数据类型错误
    【功能模块】  Bert训练ai诗人,使用环境为wsl2下 mindspore1.0 gpu,使用了文档的ckpt文件进行预训练  训练步骤按照https://www.mindspore.cn/tutorial/training/zh-CN/master/advanced_use/nlp_bert_poetry.html文档来进行,【操作步骤&问题现象】1、只更改了device target为gpu时,提示The supported data types are in[float32 float32 float32], out[float32 float32 float32]; in[float16 float16 float16], out[float16 float16 float16]; , but get in [float16 float32 float32 ] out [float16 float16 float16 ]  2、更改finetune_config.py中compute_type为mstype.float32后提示 TypeError: For 'BatchMatMul' type of `y` should be same as `x`, but `x` with type Tensor[Float16] and `y` with type Tensor[Float32]步骤2看来起了部分起了效果 还需要更改哪里的数据类型 才能够使训练正常运作起来?Ps.  北京4的modelart集群排了6个小时的队 还是木有开始训练 已经这么火爆了咩?【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [数据加载及处理] wsl2 gpu下深度概率训练初体验
    之前发过帖子安装好了wsl2下mindspore gpu环境, 想看下wsl2 环境下对gpu性能有多少损耗,同时也想体验下深度概率模型的魅力,二话不说,先跑个demo试试数据准备mnist已经被玩坏了,建议新手玩家可以直接从fashion_mnist入手,数据格式和操作和mnist一模一样,没有什么迁移成本,下图是数据概览(摘自github,比mnist要复杂一些)github地址为https://github.com/zalandoresearch/fashion-mnist  下载数据后,文件的布局如图:找到mindspore中深度概率的源码mindspore\tests\st\probability\bnn_layers路径下,编辑test_bnn_layer.py文件,只训练数据的路径即可开始训练,如图所示为了快速验证结果,我将epoch的数值更改为10,初步看下训练的结果从time记录中来看 训练10轮 用了5分钟,感觉gpu的加速效果并不明显,本来想在宿主机上用cpu的mindspore运行一下结果,结果遇到Permission Denied的问题,已经提了帖子问了,等问题解决之后再不上两者之间的性能对比(可能没什么对比性,但是如果cpu的运行时间和用gpu的时间差不多,那么wsl2下gpu的环境基本我就可以放弃了,损耗的太多了)
  • [调优经验] ubuntu GPU环境下使用MindSpore 1.0调试AI诗人的一次无疾而终的尝试
      电脑硬件配置:  处理器              英特尔 Core i5-7200U @ 2.50GHz 双核   主板                联想 LNVNB161216 ( 7th Generation Intel Processor Family I/O - 9D58 笔记本芯片组 )   显卡                ‍Nvidia GeForce 940MX ( 2 GB / 联想 )‍   内存                8 GB ( SK Hynix )   主硬盘              三星 MZNTN512HDJH-000L2 ( 512 GB / 固态硬盘 )笔记本是win10的,也没多少空间了手上刚好有个ssd固态U盘,做了一个wintogo 然后把ubuntu也装上去了软件要求:Ubuntu 18.04 x86_64 - Python 3.7.5  - CUDA 10.1  - CuDNN 7.6  - gmp 6.1.2Ubuntu 18.04自带 python 3.6,需要再安装Python3.7.51. 安装Python 3.7.5http://cdn.npm.taobao.org/dist/python/3.7.5/Python-3.7.5.tgz修改Python源码包中ssl的参数打开源码解压目录中的 Modules/Setup ,直接搜索 SSL= ,将SSL=后面的目录改为前面openssl的安装目录,并把下面三行的注释去掉。此外必备的gcc make什么的要提取安装好tar -zxvf python3.7.5.tgz cd python3.7.5 ./configure --prefix=/usr/local/python375 make && make install ln -s /usr/local/python375/bin/python3.7 /usr/bin/python ln -s /usr/local/python375/bin/pip3.7 /usr/bin/pip2. 安装CUDA 10.1https://developer.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda-repo-ubuntu1804-10-1-local-10.1.105-418.39_1.0-1_amd64.debsudo dpkg -i cuda-repo-ubuntu1804-10-1-local-10.1.105-418.39_1.0-1_amd64.deb sudo apt-key add /var/cuda-repo-<version>/7fa2af80.pub sudo apt-get update sudo apt-get install cuda安装好了配置环境变量export CUDA_HOME=/usr/local/cuda-10.1 export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64:/usr/local/cuda-10.1/extras/CUPTI/lib64:$LD_LIBRARY_PATHs export PATH=/usr/local/cuda-10.1/bin:$PATH export LD_LIBRARY_PATH="/usr/local/cuda-10.1/lib64:/usr/local/cuda-10.1/extras/CUPTI/lib64:/usr/local/cuda-10.1/lib64:/usr/local/cuda-10.1/lib64"3. 安装CuDNN 7.6https://developer.nvidia.com/rdp/cudnn-archivehttps://developer.nvidia.com/compute/machine-learning/cudnn/secure/v7.6.0.64/prod/10.1_20190516/cudnn-10.1-linux-x64-v7.6.0.64.tgzsudo cp cuda/include/cudnn.h   /usr/local/cuda/include sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64 sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*4.安装gmp安装依赖sudo apt-get install m4然后就是configure;make;make install安装完了验证下安装是否成功import numpy as np from mindspore import Tensor from mindspore.ops import functional as F import mindspore.context as context context.set_context(device_target="GPU") x = Tensor(np.ones([1,3,3,4]).astype(np.float32)) y = Tensor(np.ones([1,3,3,4]).astype(np.float32)) print(F.tensor_add(x, y))OK,然后开始训练安装完cuda后需要重启电脑,否则训练会找不到设备AI诗人https://bbs.huaweicloud.com/forum/thread-80976-1-1.htmlhttps://www.mindspore.cn/tutorial/training/zh-CN/master/advanced_use/nlp_bert_poetry.html 代码下载https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/DemoCode/bert_poetry_c.rar 下载数据集 43030首诗词 https://github.com/AaronJny/DeepLearningExamples/tree/master/keras-bert-poetry-generator 下载BERT-Base模型的预训练ckpt:可在MindSpore官网下载修改配置文件'pre_training_ckpt': './bert_converted.ckpt', 修改为bert_base.ckpt开始训练python poetry.py什么,出错了,去看代码了parser.add_argument('--device_target', type=str, default='Ascend', help='Device target')默认训练设备Ascend,添加参数GPUpython poetry.py --device_target=GPUWhat!!!低端显卡不配吗?CPU下有个算子不支持,GPU又嫌我配置低,......(此处省略3000字)搬砖去了,等3070出了再来试试。。。惯例,邮箱地址: yuanyanglv@qq.com
  • [应用实践] Windows下运行gpu版本mindspore过程记录
    在论坛上看到有折腾wsl2下运行mindspore gpu容器成功的案例,想着既然dockers容器能够运行 那么wsl也能够识别到宿主机的gpu 不用在走一层docker,所以开始验证之旅首先要注册微软的内部开发计划:https://insider.windows.com/en-us/getting-started#register 里面有详细的注册步骤,这里我踩得坑是没有仔细阅读文档,选择比较稳健的更新通道 导致没有把2000开头版本的更新检测到,所以一定选择开发通道系统要更新成2000开头的预览版更新系统版本之后,就可以按照这个文档进行https://docs.nvidia.com/cuda/wsl-user-guide/index.html#installing-nvidia-drivers 安装宿主机的显卡驱动,wsl 2 和 wsl内核更新(注意这里前方高能 一定要注意 一定要注意 一定要注意)要保证wsl内核为4.19.121以上的版本,之前安装过wsl内核更新的需要卸载更新然后重新下载更新,这样才能够识别到宿主机的gpu 这里浪费了我一个小时的时间 再次感慨要仔细阅读文档的重要性最后运行了官方文档中的示例代码 ,可以正常打印矩阵,不会报错,这样可以脱离双系统的苦 无缝地运行起来mindspore for gpu了
  • [AI人工智能全栈成长...] 【问答官】ModelArts使用NOTEbook,如果选择GPU资源?
    比如我想使用V100训练模型,如何在notebook里设置?