解决win10使用GPU跑程序遇到的一系列报错

解决win10使用GPU跑程序遇到的一系列报错

    • 安装cupy包
    • 使用cupy包的时候报错 ImportError: DLL load failed: 找不到指定的模块。
    • 卸载cuda11.5、安装cuda10.2
    • 安装适配于cuda10.2的cudnn
    • 报错CUDA path could not be detected. Set CUDA_PATH environment variable if CuPy fails to load.
    • 报错 module 'cupy' has no attribute 'scatter_add'
    • Anaconda配cupy环境报错
    • 报错 ModuleNotFoundError: No module named 'PIL'
    • 报错 cupy.cuda.compiler.CompileException: nvrtc: error: failed to open nvrtc-buil

安装cupy包

用GPU跑程序用了cupy包。

pip install cupy-cuda102

使用cupy包的时候报错 ImportError: DLL load failed: 找不到指定的模块。

在这里插入图片描述

这是因为我的cuda是11.5的,为了用用cupy,尝试了以下几种方法,均不行。
1.下载cupy的cuda115版本。
2.卸载cupy的cuda115版本,下载cupy的cuda102版本,但是此时cuda还是11.5版本。
3.下载cuda10.2版本,此时电脑的cuda10.2和11.5共存,如下图所示。
在这里插入图片描述

最后发现,能成功的只有一个,那就是cuda10.2+cupy的cuda102。此时电脑只能有一个cuda版本,也就是10.2,所以需要卸载cuda11.5。

这里面有个坑也踩了。如下图所示,下载cuda10.2之前,必须要卸载完11.5
在这里插入图片描述
不然就会出现这种情况:
在这里插入图片描述

卸载cuda11.5、安装cuda10.2

打开控制面板,卸载所有cuda11.5的文件,如下图所示
在这里插入图片描述
cuda10.2官网网址:https://developer.nvidia.com/cuda-10.2-download-archive

卸载完11.5,再下载10.2时候,竟然还会出现下面的警告:
这个时候,可以无视,因为的确是先卸载完11.5后下载的10.2。

在这里插入图片描述
然后在命令行输入:出现如下状态,表示安装成功。

nvcc -V

在这里插入图片描述
此时观察NVIDA的控制面板,竟然还是11.5,不过可以无视,因为这不影响跑程序。
在这里插入图片描述

安装适配于cuda10.2的cudnn

官网:https://developer.nvidia.com/rdp/cudnn-archive
安装包下载完解压
在这里插入图片描述
把所有解压的文件放到:NVIDA GPU Computing Toolkit 里面的V10.2下面
在这里插入图片描述

报错CUDA path could not be detected. Set CUDA_PATH environment variable if CuPy fails to load.

在这里插入图片描述
根据报错的这个路径,打开这个environment文件。
在这里插入图片描述
里面的cuda_path改成cuda的路径。

这个路径在哪,其实就在环境变量配置里面。

在这里插入图片描述
把这个路径放到environment文件里,如下图所示。报错就解决了。
在这里插入图片描述

报错 module ‘cupy’ has no attribute ‘scatter_add’

把cuda降到10.2之后,改了一大堆,程序终于能运行了,可是运行一会就报这个错。

查了半天,在stackoverflow上面找到了方法,使用下面这句话把cupy版本降低。

pip install "cupy-cuda102<8.0.0"

在这里插入图片描述
在这里插入图片描述
然后程序终于用GPU跑起来了。
在这里插入图片描述

Anaconda配cupy环境报错

一开始是全部在Anaconda里面配的环境,最后发现无论怎么弄,使用cupy包总报错。
于是直接用pip了,最后把所有需要的包又在电脑的python文件夹里装了一份。然后pycharm环境直接用了python的环境。最后能跑成。
在这里插入图片描述

报错 ModuleNotFoundError: No module named ‘PIL’

问题在于Pillow库太老了。执行以下两个命令。

pip uninstall pillow
pip install pillow

报错 cupy.cuda.compiler.CompileException: nvrtc: error: failed to open nvrtc-buil

还出现类似:找不到nvrtc64_101_0.dll的问题

这个问题是遇到最玄学的一次。

解决办法就是,重启一下电脑。

重启电脑后,就不报错了,转而报module ‘cupy’ has no attribute 'scatter_add’这个错,这个错就按照上面讲的解决就完事。

最后GPU成功跑起来了。区别可以看到,用cpu跑程序的话,cpu占用量在80%以上,用GPU跑程序,cpu占用量只有16%

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/560194.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

keil5新建freertos工程

1.建几个文件夹如下图所示。 2.打开keil5&#xff0c;project-new project&#xff0c;文件位置放到之前创建好的project文件夹下。 3.选择处理器。 4.接下来选择下面两个选项。 5.创建好之后是下面这样的。 6.增加文件&#xff0c;点击这个manage project。 然后添加文件即可。…

freertos 双向循环链表插入删除的实现与直观理解

freertos 双向循环链表插入删除的实现与直观理解main.clist.h其他头文件FreeRTOS.hFreeRTOSConfig.hportable.hportmacro.hlist.cvListInsertEnd函数vListInsert函数uxListRemove函数main.c 用debug之后&#xff0c;查看观察窗口&#xff0c;结果如下。这个实验目的就是&#…

cortex-m3 操作模式 寄存器组 异常类型 堆栈 中断

cortex-m3操作模式寄存器组异常类型堆栈中断参考操作模式 处理器的操作模式&#xff1a;为了区别正在执行代码的类型。复位后&#xff0c;处理器进入线程模式、特权级。 处理者模式&#xff08;handler mode&#xff09;&#xff1a;异常服务例程的代码 &#xff0c;包括中断…

freertos里面用到的汇编语言总结

汇编语言基础知识多重存储器访问MRS 和 MSRisb 和 dsbldr 和 strmovbl 和 bxcps多重存储器访问 感叹号&#xff01;表示要自增(Increment)或自减(Decrement)基址寄存器 Rd 的值&#xff0c;时机是在每次访问前(Before)或访问后(After)。增/减&#xff0c;单位&#xff1a;字&am…

freertos内核 任务定义与切换 原理分析

freertos内核 任务定义与切换 原理分析主程序任务控制块任务创建函数任务栈初始化就绪列表调度器总结任务切换主程序 这个程序目的就是&#xff0c;使用freertos让两个任务不断切换。看两个任务中变量的变化情况(波形)。 下面这个图是任务函数里面delay(100)的结果。 下面这个…

freertos临界段保护

freertos临界段保护中断的基础知识cortex-m里面开中断、关中断指令关中断和开中断进入临界段和退出临界段中断的基础知识 嵌套&#xff1a; 嵌套向量中断控制器 NVIC(Nested Vectored Interrupt Controller与内核是紧耦合的。提供如下的功能&#xff1a;可嵌套中断支持、向量…

改进版的CBOW模型

复习 首先复习一下之前的CBOW笔记。 采用推理的方法认知单词、CBOW模型这里面主要是&#xff1a; CBOW模型的核心思路&#xff1a;给出周围的单词&#xff08;上下文&#xff09;时&#xff0c;预测目标词处会出现什么单词。 要用神经网络处理单词&#xff0c;需要先将单词…

freertos空闲任务、阻塞延时

freertos空闲任务、阻塞延时空闲任务阻塞延时SysTick实验现象阻塞态&#xff1a;如果一个任务当前正在等待某个外部事件&#xff0c;则称它处于阻塞态。 rtos中的延时叫阻塞延时&#xff0c;即任务需要延时的时候&#xff0c;会放弃CPU的使用权,进入阻塞状态。在任务阻塞的这段…

树莓派配置

树莓派配置1.安装操作系统2.修改镜像源3.配置VNC连接1.安装操作系统 安装操作系统&#xff0c;首先在官网下载https://www.raspberrypi.com/software/operating-systems/ 下载出来的解压后是一个光盘映像文件&#xff0c;接下来就需要把这个文件写入到树莓派的tf卡里。 安装树…

远程桌面连机器人

这里需要PC和机器人处于同一局域网下。 PC使用xhell连接机器人&#xff0c;通过 ifconfig 查看机器人的无线 IP 地址。 然后退出xshell&#xff0c;打开NoMachine软件进行远程桌面连接。输入机器人无线ip地址。 输入用户名和密码 然后就远程连接上了 现在开一个终端如下所示&…

RNNLM

RNNLM 基于RNN的语言模型称为RNNLM(Language Model)。 Embedding 层&#xff1a;将单词ID转化为单词的分布式表示&#xff08;单词向量&#xff09;。 RNN层&#xff1a;向下一层(上方)输出隐藏状态&#xff0c;同时也向下一时刻的RNN层(右边)输出隐藏状态。 对于“you say …

使用c#制作赛尔号登录器

使用c#制作赛尔号登录器 需求&#xff1a; 打开赛尔号官网&#xff0c;发现我的chrome浏览器无法运行Flash。这是因为Adobe 公司放弃了对 Flash Player 的支持。 那么如果我想要玩游戏&#xff0c;又不想下载别的浏览器&#xff0c;只好自己写一个登陆器了。 创建项目 首先…

普通RNN的缺陷—梯度消失和梯度爆炸

之前的RNN&#xff0c;无法很好地学习到时序数据的长期依赖关系。因为BPTT会发生梯度消失和梯度爆炸的问题。 RNN梯度消失和爆炸 对于RNN来说&#xff0c;输入时序数据xt时&#xff0c;RNN 层输出ht。这个ht称为RNN 层的隐藏状态&#xff0c;它记录过去的信息。 语言模型的任…

LSTM的结构

RNN和LSTM 简略表示RNN层&#xff1a;长方形节点中包含了矩阵乘积、偏置的和、tanh函数的变换。将下面这个公式表示成一个tanh节点。 LSTM&#xff1a;Long Short-Term Memory&#xff08;长短期记忆&#xff09;&#xff0c;长时间维持短期记忆。 LSTM与RNN的接口(输入输出)…

STM32 USART 补充

串口通讯的数据包&#xff1a;发送设备通过自身的TXD接口传输到接收设备的RXD接口。 串口通讯的协议层中&#xff0c;规定了数据包的内容&#xff0c;由起始位、主体数据、校验位、停止位组成&#xff0c;通讯双方的数据包格式要约定一致才能正常收发数据。 异步通讯&#xf…

ROS TF变换

静态坐标转换&#xff1a;机器人本体中心到雷达中心的转换。因为激光雷达可能没安装到机器人的中心。 动态坐标转换&#xff1a;机器人中心和里程计坐标的变换。机器人从起点出发后&#xff0c;里程计坐标相对于本体就会产生一个偏移&#xff0c;这个偏移随着机器人的运动不断…

ROS底盘控制节点 源码分析

先在机器人端通过launch文件启动底盘控制。 robot:~$ roslaunch base_control base_control.launch ... logging to /home/jym/.ros/log/3e52acda-914a-11ec-beaa-ac8247315e93/roslaunch-robot-8759.log Checking log directory for disk usage. This may take a while. Pres…

ROS + OpenCV

视觉节点测试 先进行一些测试。并记录数据。 圆的是节点&#xff0c;方的是话题。 1.robot_camera.launch robot:~$ roslaunch robot_vision robot_camera.launch ... logging to /home/jym/.ros/log/bff715b6-9201-11ec-b271-ac8247315e93/roslaunch-robot-8830.log Check…

ROS+雷达 运行数据记录

先测试一下雷达&#xff0c;记录数据。方便接下来分析源码。 1.roslaunch robot_navigation lidar.launch robot:~$ roslaunch robot_navigation lidar.launch ... logging to /home/jym/.ros/log/7136849a-92cc-11ec-acff-ac8247315e93/roslaunch-robot-9556.log Checking l…

ROS 找C++算法源码的方法

在gmapping的launch文件中看到&#xff0c;type“slam_gmapping”&#xff0c;这里的slam_gmapping是c编译后的可执行文件。 如果想要修改gmapping算法&#xff0c;就需要找到slam_gmapping的c源码。 但是这是用apt下载的包&#xff0c;是二进制类型的&#xff0c;没有下载出…