最近有项目要用mxnet,要从头开始配置mxnet,记录一下全过程,先说下在Windows 10下的安装GPU版本的问题。

查看cuda版本

首先要查看一下自己安装 的cuda版本,一般情况下可以使用nvcc --version或nvidia-smi -q指令,比如我的是10.1版,

C:\Users\SpaceVision>nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Sun_Jul_28_19:12:52_Pacific_Daylight_Time_2019
Cuda compilation tools, release 10.1, V10.1.243
​
​
C:\Users\SpaceVision>nvidia-smi -q
# nvidia-smi -q
==============NVSMI LOG==============
Timestamp                           : Sun Jun 14 21:19:39 2020
Driver Version                      : 432.00
CUDA Version                        : 10.1
........

总体安装步骤

简要介绍一下总体的实际安装步骤。注意这里VS不是必须的,但通常我电脑里都是装好了的。

1、安装Microsoft Visual Studio

在https://visualstudio.microsoft.com/downloads/下载并安装最新的Community版

2、安装Nvida cuda-toolkit

在https://developer.nvidia.com/cuda-downloads下载并安装最新版的CURD,我安装的是10.1版

3、安装cuDNN

在https://developer.nvidia.com/cudnn下载cuDNN。注意这要注册登录才能下载,比较麻烦,但只有耐心一步一步去注册和登录了。

下载后,将其解压,将其中的三个文件夹复制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\下面对应的地方(同样能看到bin、include、lib目录的地方)。cuDNN安装教程上第3条说的分别复制,其实可以一起复制即可。

增加环境变量,在命令行下执行control sysdm.cpl进入系统属性,高级,环境变量,新建,变量名输入“CUDA_PATH”,变量值输入“C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1”(实际的安装路径)。

4、安装Mxnet GPU

一般情况下,我使用的都是anaconda,这时创建一个环境,比如名称为mxnet36,然后用命令 conda activate mxnet36 切换到该环境中再安装mxnet-cu101。其命令为, pip install mxnet-cu101

5、测试

在python中import mxnet,如果没有出错,即大功告成。当然还可以进一步在gpu上创建nd数组,打印确认是否是在GPU上创建的。

注意上面的CUDA、cuDNN、Mxnet gpu都安装的是101版,我没有测试过不同版本号是否兼容。教程上要求VS的版本是2015或2017,我实际安装的是2019,没有问题。

安装Mxnet GPU

我最初使用conda install mxnet-gpu,发现安装的是cudatoolkit9.0,然后到 https://anaconda.org/anaconda/mxnet-gpu/files 看了一下,发现mxnet-gpu并没有太多的版本可以选择。当然, 如果这个版本和你的驱动版本正好相符,倒能省不少事,cudnn什么的都会配套给你装好。

因为版本我的驱动器的不相符,最后只能放弃。回过头来再用下面的指令安装, pip install mxnet-cu101

安装cudatoolkit+cudnn

吸取刚才的教训,这次直接指定版本号,

conda install -c anaconda cudatoolkit=10.1

当然,后续还要安装 cudnn(参考:https://anaconda.org/anaconda/cudnn),这次可以不用指定版本号,

conda install -c anaconda cudnn

然后提示中可以看到相兼容的版本信息,

The following packages will be downloaded:package                    |            build---------------------------|-----------------cudnn-7.6.5                |       cuda10.1_0       250.4 MB  anaconda------------------------------------------------------------Total:       250.4 MB
The following NEW packages will be INSTALLED:cudnn              anaconda/win-64::cudnn-7.6.5-cuda10.1_0

补充一点在Ubuntu碰到的情况,在已经安装cudatoolkit10.1的情况下,conda install -c anaconda cudnn居然会把10.1版本卸载掉,然后硬生生装上cudatoolkit10.2和cudnn7.6.5,这种情况在windows下没有碰到过,解决办法是一次性强行指定安装,如下,

conda install -c anaconda  cudatoolkit=10.1  cudnn

后续问题

也不知道是为什么,虽然 我仔细检查了一下,各个配置都正常,但使用时还是报错,

(mxgpu36) C:\Users\space>python
Python 3.6.10 |Anaconda, Inc.| (default, May  7 2020, 19:46:08) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import mxnet as mx
>>> mx.gpu
<function gpu at 0x0000014FFFF22840>
>>> import mxnet.ndarray as nd
>>> a = nd.ones(shape=(2,3),dtype='int32',ctx=mx.gpu(0))
[16:43:31] c:\jenkins\workspace\mxnet-tag\mxnet\src\imperative\./imperative_utils.h:91: GPU support is disabled. Compile MXNet with USE_CUDA=1 to enable GPU support.
Traceback (most recent call last):File "<stdin>", line 1, in <module>File "C:\Users\space\AppData\Roaming\Python\Python36\site-packages\mxnet\ndarray\ndarray.py", line 2437, in onesreturn _internal._ones(shape=shape, ctx=ctx, dtype=dtype, **kwargs)File "<string>", line 34, in _onesFile "C:\Users\space\AppData\Roaming\Python\Python36\site-packages\mxnet\_ctypes\ndarray.py", line 92, in _imperative_invokectypes.byref(out_stypes)))File "C:\Users\space\AppData\Roaming\Python\Python36\site-packages\mxnet\base.py", line 253, in check_callraise MXNetError(py_str(_LIB.MXGetLastError()))
mxnet.base.MXNetError: [16:43:31] C:\Jenkins\workspace\mxnet-tag\mxnet\src\imperative\imperative.cc:81: Operator _ones is not implemented for GPU.
​

这个是比较经典的,找不到mxnet-gpu版本,而只找到了mxnet cpu版本的报错。我估计是anaconda在环境设置上有什么问题,把另一个环境中的mxnet cpu版本引用到这个mxgpu36新环境中来了,或者有什么东西安装时没清理干净。

于是我卸载了mxnet,

(mxgpu36) C:\Users\SpaceVision>pip uninstall mxnet
Found existing installation: mxnet 1.5.0
Uninstalling mxnet-1.5.0:Would remove:c:\users\space\appdata\roaming\python\python36\site-packages\dmlc_tracker\*c:\users\space\appdata\roaming\python\python36\site-packages\mxnet-1.5.0.dist-info\*c:\users\space\appdata\roaming\python\python36\site-packages\mxnet\*
Proceed (y/n)? ySuccessfully uninstalled mxnet-1.5.0

然后再安装mxnet-cu101,如下,

(mxgpu36) C:\Users\SpaceVision>pip install mxnet-cu101
Requirement already satisfied: mxnet-cu101 in d:\anaconda3\envs\mxgpu36\lib\site-packages (1.5.0)
Requirement already satisfied: requests<2.19.0,>=2.18.4 in c:\users\space\appdata\roaming\python\python36\site-packages (from mxnet-cu101) (2.18.4)
Requirement already satisfied: graphviz<0.9.0,>=0.8.1 in c:\users\space\appdata\roaming\python\python36\site-packages (from mxnet-cu101) (0.8.4)
Requirement already satisfied: numpy<1.17.0,>=1.8.2 in d:\anaconda3\envs\mxgpu36\lib\site-packages (from mxnet-cu101) (1.16.6)
Requirement already satisfied: urllib3<1.23,>=1.21.1 in c:\users\space\appdata\roaming\python\python36\site-packages (from requests<2.19.0,>=2.18.4->mxnet-cu101) (1.22)
Requirement already satisfied: chardet<3.1.0,>=3.0.2 in c:\users\space\appdata\roaming\python\python36\site-packages (from requests<2.19.0,>=2.18.4->mxnet-cu101) (3.0.4)
Requirement already satisfied: certifi>=2017.4.17 in c:\users\space\appdata\roaming\python\python36\site-packages (from requests<2.19.0,>=2.18.4->mxnet-cu101) (2020.4.5.2)
Requirement already satisfied: idna<2.7,>=2.5 in c:\users\space\appdata\roaming\python\python36\site-packages (from requests<2.19.0,>=2.18.4->mxnet-cu101) (2.6)
​

测试

最后再测试一下,

(mxgpu36) C:\Users\SpaceVision>python
Python 3.6.10 |Anaconda, Inc.| (default, May  7 2020, 19:46:08) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import mxnet as mx
>>> import mxnet.ndarray as nd
>>> a = nd.ones(shape=(2,3),dtype='int32',ctx=mx.gpu(0))
>>> print(a.shape, a.dtype, a.size, a.context)
(2, 3) <class 'numpy.int32'> 6 gpu(0)
>>>

OK,大功告成。

附:Anaconda弄错环境的原因分析

这个分析起来比较麻烦,目前没有头绪,anaconda用久了,怪异的现象还真不少。我另外开了一贴,在这里
https://blog.csdn.net/tanmx219/article/details/106794021
供参考。

附:使用时碰到的numpy的版本问题

尽管我已经装了正确的版本,但使用时还是经常碰到,
mxnet 1.5.0 has requirement numpy<1.17.0,>=1.8.2, but you'll have numpy 1.18.5 which is incompatible.

我按照
pip install -U numpy==1.16.6

一般当时能解决问题,重启之后又会再次报错,目前这个错误有点不可思议了。

MXNet gpu 版本快速安装(mxnet-cu101)相关推荐

  1. vs最好的版本_Win10 环境下,LightGBM GPU 版本的安装

    由于知乎的编辑器不能完全支持 MarkDown 语法, 所以部分文字可能无法正常排版, 如果你想追求更好的阅读体验, 请移步至该博客的简书的链接. Win10 平台下, LightGBM GPU 版本 ...

  2. Win10 平台下, LightGBM GPU 版本的安装

    1. Light GBM 简介 在数据挖掘和传统机器学习领域,提起大名鼎鼎的 XGBoost,相信很多人都听说过,尤其是在 Kaggle 赛场上,XGBoost 更是风光无限,不过今天的主角却不是 X ...

  3. TensorFlow2.0 系列开篇: Windows下GPU版本详细安装教程

    点击上方"Datawhale",选择"星标"公众号 第一时间获取价值内容 [导读]今年三月谷歌在TensorFlow开发者峰会上宣布TensorFlow 2.0 ...

  4. ubuntu 16.04 安装MXNet GPU版本

    安装MXNet for Ubuntu有两种方式. 方式一:安装预编译文件 pip install mxnet-cu80 方式二:编译源代码 安装nvidia显卡驱动和cuda/cudnn,请参考一下内 ...

  5. GPU版本pytorch安装教程

    第一步:下载cuda和cudnn 1.首先要查看自己电脑英伟达gpu的版本从而下载相应的cuda版本,有两种方法查看: ①打开cmd命令行:输入nvcc --version 例如我的版本就是11.6的 ...

  6. MxNet系列——Windows上安装MxNet

    博客新址: http://blog.xuezhisd.top 邮箱:xuezhisd@126.com 开发环境 操作系统:Win7 64bit C++编译器:Visual Studio 2010 Py ...

  7. Open3d之python版本快速安装和使用

    Open3D预构建的pip和conda包支持操作系统为Ubuntu 18.04+,macOS 10.14+和Windows 10(64-bit),python版本为3.5,3.6,3.7和3.8.若你 ...

  8. Oracle甲骨文11G版本快速安装

    1 如果电脑中安装过Oracle数据库,并且没有安装成功,得卸载. 因为卸载也比较麻烦,先暂时不卸载,搏一搏~ 一.Oracle 11g下载 官网下载地址 https://www.oracle.com ...

  9. Tensorflow GPU版本的安装

    <Tensorflow + Keras 深度学习人工智能实践应用>中的第20张有非常详细可靠的安装步骤 注意:Tensorflow 和cuda caffe是要配套的,见下图 (Tensor ...

最新文章

  1. Datawhale来交大啦!
  2. 如何设计ER图(弱实体集)
  3. 《JavaScript入门经典》学习笔记1
  4. oracle 返回表的函数,oracle 返回表函数
  5. java axis2 开发webservice_利用Axis2开发WebService(3)—用Java实现调用WebService的客户端程序 | 学步园...
  6. 41%的网络保险理赔和勒索软件有关
  7. 测试用例的“真相”与“事实” 这9个事实让人扎心!
  8. 将一个字段的多个记录值合在一行
  9. Wing IDE注册破解方法
  10. Python urllib2 设置超时时间并处理超时异常
  11. Python语言应该加上块标识(开始、结束)的特性
  12. 服务器配置tomcat,使用浏览器访问服务器资源
  13. 演化博弈与GAN网络
  14. Tcl学习2——Tcl语言语法
  15. 免费使用短信服务接口 ----用Java实现
  16. 18 个 Python 高效编程小技巧
  17. SSD_OneStage
  18. HTML SWF播放器
  19. shell内建命令--Linux
  20. 灰度发布框架Discovery介绍

热门文章

  1. python 实现四则混合运算计算器
  2. Linux下安装配置Python
  3. Contest 20140923 潛行世界 拓撲排序,期望
  4. 应用程序无法正常启动(0x000007b),请单击确定关闭应用程序,已解决
  5. windows10永久禁用驱动强制签名
  6. [面试题]java中final finally finalized 的区别是什么?
  7. 【Python——类】 同一个类中一个函数里调用另一个函数的方法
  8. 不是吧,还有人不知道计算机以及Linux基础知识?
  9. manuscript手稿格式准备
  10. R语言——数据类型详解