window10下使用MXNet(GPU)运行神经网络报错:Check failed: e == CUBLAS_STATUS_SUCCESS (13 vs. 0) cuBLAS: CUBLAS_STA

本文记录了一位开发者在使用MXNet框架进行GPU运算时遇到的CUBLAS_STATUS_EXECUTION_FAILED错误,并详细描述了如何通过下载并安装NVIDIA官方提供的CUDA补丁来解决这一问题。
部署运行你感兴趣的模型镜像

运行如下代码

net = nn.Sequential()
net.add(nn.Dense(1))
net.initialize(ctx=mx.gpu())
net(y)

我的cunda是9.0
报错:

MXNetError: [18:02:15] c:\ci\libmxnet_1533399150922\work\src\operator\linalg_impl.h:140: Check failed: e== CUBLAS_STATUS_SUCCESS (13 vs. 0) cuBLAS: CUBLAS_STATUS_EXECUTION_FAILED

解决办法:到nvidia官网下载cunda补丁
我下载的是Patch 2 (Released Mar 5, 2018)

https://developer.nvidia.com/cuda-90-download-archive?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exenetwork

您可能感兴趣的与本文相关的镜像

PyTorch 2.5

PyTorch 2.5

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

MXNet中,当尝试使用CUDA设备时遇到`mxnet.base.MXNetError: CUDA invalid device ordinal`错误,通常表示指定的GPU设备索引无效或系统无法识别该设备。以下是对此类问题的详细分析与解决方法: ### 原因分析 1. **设备索引超出范围** 如果调用了类似`mx.gpu(n)`的函数,并且n大于系统中可用的GPU数量减一,则会触发此错误。例如,在只有一个GPU的系统上使用`mx.gpu(1)`会导致“invalid device ordinal”错误[^1]。 2. **驱动程序或库版本不兼容** 若安装了不兼容的NVIDIA驱动程序或CUDA工具包版本,也可能导致此类错误。确保使用MXNet版本与当前系统中的CUDA和cuDNN版本兼容非常重要[^1]。 3. **未正确安装支持GPUMXNet版本** 使用标准命令`pip install mxnet`将仅安装CPU版本的MXNet。为了启用GPU支持,必须安装对应的CUDA版本,例如`pip install mxnet-cu112`(适用于CUDA 11.2)[^1]。 4. **环境配置问题** 某些情况下,即使硬件和驱动都正常,但操作系统级别的环境变量未正确设置(如LD_LIBRARY_PATH未包含CUDA库路径),也会导致设备识别失败[^1]。 --- ### 解决方案 #### 验证并选择正确的设备索引 在使用`mx.gpu()`之前,应先检查可用的GPU设备数量。可以使用以下代码片段来确认当前系统中可用的GPU设备数: ```python import mxnet as mx print(mx.context.num_gpus()) # 输出可用的GPU数量 ``` 若输出为0,则说明当前环境中MXNet无法检测到任何GPU,此时需要进一步验证是否正确安装了支持GPUMXNet版本以及相关的CUDA驱动是否正常。 #### 安装正确的MXNet版本 确保使用了与本地CUDA版本匹配的MXNet变体。例如,如果系统支持CUDA 11.7,则应安装`mxnet-cu117`: ```bash pip uninstall mxnet -y pip install mxnet-cu117 ``` 安装完成后,再次运行以下代码以确认GPU是否被成功启用: ```python import mxnet as mx print(mx.context.Context('gpu', 0)) # 应输出 gpu(0) 而不是报错 ``` #### 检查CUDA驱动与库文件 通过执行`nvidia-smi`命令来确认NVIDIA驱动程序是否已正确安装并能够识别GPU设备。此外,还需验证系统中是否存在正确的CUDA库文件,并将其添加到环境变量中,例如: ```bash export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH ``` 此操作可帮助MXNet找到所需的CUDA运行时库。 #### 使用虚拟环境隔离依赖项 为了避免与其他Python项目发生依赖冲突,建议使用虚拟环境进行测试。创建并激活虚拟环境后,重新安装MXNet及其依赖项,以确保环境干净且配置无误: ```bash python -m venv mxnet_env source mxnet_env/bin/activate # Linux/macOS mxnet_env\Scripts\activate # Windows pip install mxnet-cu117 ``` --- ### 示例代码:验证GPU功能 以下是一个简单的示例,用于验证MXNet是否能正确使用GPU进行计算: ```python import mxnet as mx from mxnet import nd # 尝试创建一个GPU上下文 ctx = mx.gpu() # 在GPU上创建一个张量并执行简单运算 a = nd.array([1, 2, 3], ctx=ctx) b = nd.array([4, 5, 6], ctx=ctx) c = a + b print(c) # 应输出结果并在GPU上执行 ``` --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值