【工具】Windows平台MXNet错误“cudaMalloc failed: device kernel image is invalid”

问题描述

使用MXNet做GPU计算时报错 “cudaMalloc failed: device kernel image is invalid” ,如下为测试用的完整代码,具体是执行倒数第二条语句a = nd.array([1, 2, 3], ctx=mx.gpu(0))报错。

# coding=utf-8
# author: BebDong
# 2019/1/19
# nvidia-smi命令可查看GPU信息
# 使用GPU存储和计算

import mxnet as mx
from mxnet import nd

# MXNET计算设备
print(mx.cpu(), mx.gpu(), mx.gpu(1))

# 通过context属性查看所属设备,默认利用cpu计算
X = nd.array([1, 2, 3])
print(X.context)

# NDArray在创建时通过ctx参数指定存储设备,计算时根据context属性进行计算和存储
a = nd.array([1, 2, 3], ctx=mx.gpu(0))
print(a)

解决

参考了Gluon社区的一篇讨论,题主也遇到相同问题。讨论中大家给出的解决方案是将mxnet-cu90的版本回退到1.2.0即可解决。
【工具】Windows平台MXNet错误“cudaMalloc failed: device kernel image is invalid”_第1张图片
【工具】Windows平台MXNet错误“cudaMalloc failed: device kernel image is invalid”_第2张图片
抱着试一试的态度,笔者也将之前安装的mxnet-cu90 1.2.1版本回退到1.2.0版本。果然,问题解决!运行上面相同的测试代码,结果如下:
【工具】Windows平台MXNet错误“cudaMalloc failed: device kernel image is invalid”_第3张图片
回退方法先卸载1.2.1版本再安装1.2.0版本即可:

pip uninstall mxnet-cu90
pip install mxnet-cu90==1.2.0

你可能感兴趣的:(工具使用,MXNet框架,cudaMalloc,failed:,device,kernel,im,windows,mxnet,mxnet-cu90错误)