【AI】Windows配置GPU Cuda驱动和Pytorch框架

news2025/1/8 5:31:10

目录

1、Cuda驱动安装

1.1 查看显卡硬件

1.2 查看cuda版本

2、Annaconda python环境准备

2.1 创建pytorch_gpu

2.2 查看python版本

3、Pytorch和torchVsion软件安装

4、验证测试


    在进行AI项目开发的时候,经常要在GPU环境中运行代码,对于没有配置过的新人来说,还是有点复杂的,本文简单总结在Winddows环境种配置的全过程,适合新手入门,仅供大家参考。

1、Cuda驱动安装

     安装cuda驱动和pycharm的容易搞错的地方就是软件版本的选择,要么是驱动的版本选择错误,要么就是,所以先解决怎么查看版本的问题

1.1 查看显卡硬件

     首先看下我们的电脑是否有GPU设备,邮件【我的电脑】,进入到【管理】->设备管理器->显示适配器,可以看到我的GPU显卡是NVIDIA GeForce MX110

1.2 查看cuda版本

    接下来,我们再看看应该要下载什么版本的驱动,进入到window命令行界面,
     输入命令:nvidia-smi
     可以看到:驱动版本号是10.1,驱动的内存大小是2G(小的可怜)以及显卡的版本号

    好的既然知道了驱动的版本,我们就去下载驱动,直接进入到英伟达的官网

    网址:NVIDIA Developer,进入到Download模块,就可以找到自己要下载的版本

下载好以后,就可以直接安装了,一路next就可以完成cuda10.1驱动的安装,我的下载地址如下:

CUDA Toolkit 10.1 original Archive | NVIDIA Developer

    下载exe版本下来后,直接一路安装就可以,安装成功后,

  要进行验证,使用验证方法如下,是否安装成功
  验证命令:nvcc -V

   可以看到cuda驱动是安装成功了的 

2、Annaconda python环境准备

     为了保持环境的赶紧整洁和隔离性,我再Annaconda种单独准备了一个python环境用于pytorch的安装和部署

2.1 创建pytorch_gpu

进入到window 命令行,执行如下命令
创建环境:conda create -n pytorch_gpu

激活环境:conda activate pytorch_gpu

查看conda的环境:conda env list 

2.2 查看python版本

   进入到pytorch_gpu(执行:activate pytorch_gpu ),然后执行:python --version
可以看到python的具体版本是3.8.8

3、Pytorch和torchVsion软件安装

最关键的步骤之一,就是确定torch和torchVsion的版本,如果版本没有配套,就很容易出现各种妖孽的问题,确定地址是pytorch的官网:Previous PyTorch Versions | PyTorch

如果cuda版本比较老,就可以直接进入这个链接去找到对应的版本 

https://pytorch.org/get-started/previous-versions/

可以看到cuda10.1 对应到的 torch和torchvision的版本

所以接下来去下载pytorch和torchvision就可以,下载地址这里

https://download.pytorch.org/whl/torch_stable.html
找到合适的,找的方法如下:
cu101:表示cuda10.1版本
torch-1.7:表示pytorch的版本
cp38:表示python为3.8版本
win_amd64:表示64位windows系统
如图所示,就是pytorch的要下载的版本:https://download.pytorch.org/whl/cu101/torch-1.7.0%2Bcu101-cp38-cp38-win_amd64.whl

 同样的方法找到torchvision,下载torchvision:https://download.pytorch.org/whl/cu101/torchvision-0.8.0-cp38-cp38-win_amd64.whl 

4)安装pytorch

把下载下来的pytorch和torch vison,都放在了这个目录D:\kaifa\install\cuda

进入到python_gpu环境,然后进入到D:\kaifa\install\cuda,执行如下命令

pytorch安装: pip install "torch-1.7.0+cu101-cp38-cp38-win_amd64.whl"

安装成功界面如下

 torchVision安装:  pip install "torchvision-0.8.0-cp38-cp38-win_amd64.whl"

安装成功界面如下:

到此,pytorch和torchVision都完成了安装。

4、验证测试

前面已经完成了Cuda驱动、pytorch和torchVsion的安装,现在我们要测试一下是否能使用GPU环境。测试在python_gpu环境种,执行如下代码:

import torch

print(torch.cuda.is_available())

显示为True表示配置成功

 当然,我也准备了一段代码来具体跑一下,体现GPU算力的优越性

#coding=gbk
# This is a sample Python script.
import torch
# Press Ctrl+空格 to execute it or replace it with your code.
# Press Double Shift to search everywhere for classes, files, tool windows, actions, and settings.

def test_gpu():
    import time
    import torch
    # 测试gpu计算耗时
    A = torch.ones(5000, 5000).to('cuda')
    B = torch.ones(5000, 5000).to('cuda')
    startTime2 = time.time()
    for i in range(100):
        C = torch.matmul(A, B)
    endTime2 = time.time()
    print('gpu计算总时长:', round((endTime2 - startTime2) * 1000, 2), 'ms')

    # 测试cpu计算耗时
    A = torch.ones(5000, 5000)
    B = torch.ones(5000, 5000)
    startTime1 = time.time()
    for i in range(100):
        C = torch.matmul(A, B)
    endTime1 = time.time()
    print('cpu计算总时长:', round((endTime1 - startTime1) * 1000, 2), 'ms')

# Press the green button in the gutter to run the script.
if __name__ == '__main__':
    print(torch.cuda.is_available())
    test_gpu()

可以看出来GPU的算力还是挺不错的

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

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

相关文章

动手深度学习-pytorch线性代数

标量简单操作长度向量简单操作长度其他操作矩阵简单操作乘法(矩阵*向量)乘法(矩阵*矩阵)范数取决于如何衡量b和c的长度常见范数矩阵范数:最小的满足的上面公式的值Frobenius范数特殊矩阵对称和反对称正定正交矩阵置换矩…

Solidity 中的数学(第 4 部分:复利)

本文是关于在 Solidity 中进行数学运算的系列文章中的第四篇。这次的主题是:复利。 介绍 在我们之前的文章中,我们讨论了百分比以及它们是如何在 Solidity 中计算的。在金融数学中,百分比通常与贷款和存款支付的利息有关。在每个时间段结束时…

深度学习入门基础CNN系列——批归一化(Batch Normalization)和丢弃法(dropout)

想要入门深度学习的小伙伴们,可以了解下本博主的其它基础内容: 🏠我的个人主页 🚀深度学习入门基础CNN系列——卷积计算 🌟深度学习入门基础CNN系列——填充(padding)与步幅(stride&…

CSS 搜索框

CSS 搜索框 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>搜索框</title><style type"text/css">* {margin: 0;padding: 0;}.search-container {margin: 50px;display: flex;width: 500px;height:…

rtthread pwm

1、配置PWM设备驱动相关宏定义 1.1 配置PWM和TIM设备驱动 在RT-Thread Settings 配置界面中&#xff0c;在设备驱动程序目录下勾选 HWTIMER 和 PWM设备驱动程序&#xff0c;如下图所示&#xff1a; 配置完后在 rtconfig.h 中可以查看刚刚配置的 RT_USING_HWTIMER 和 RT_U…

Ribbon策略改变实现步骤(基于Eureka服务注册中心)

前言 Ribbon作为服务调用的作用&#xff0c;自带的默认负载均衡机制是轮询机制也就是轮流访问机制。当然有时候并不是业务上都需要这种机制&#xff0c;这时候就需要改变。 机制类型 RoundRobinRule 轮询 RandomRule 随机 RetryRule 先进行轮询策略获取服务&#xff0c;如…

本地怎么画最简单的监控图

当我们需要监测程序是否正常运行&#xff0c;或者需要观测程序运行是否平稳&#xff0c;或者需要知道特定场景下指标的状态时&#xff0c;那我们都需要将监控可视化。今天我简单记录下&#xff0c;本地是如何监控可视化~ 目录简单调试阶段——仅使用prometheus1.安装promethues…

【Redis】GEO(地理坐标)数据结构

【Redis】GEO(地理坐标)数据结构 文章目录【Redis】GEO(地理坐标)数据结构1. GEO简介1.1 GEO常用命令2. 实战示例2.1 场景介绍2.2 实战2.2.1 将店铺数据导入Redis2.2.2 根据地理坐标进行分页查询1. GEO简介 GEO就是Geolocation的简写形式&#xff0c;代表地理坐标。Redis在3.2…

BFS判重和双向广搜

目录 一、前言 二、BFS判重 1、set 判重 2、字典判重 3、跳蚱蜢&#xff08;2017年省赛&#xff0c;lanqiaoOJ题号642&#xff09; &#xff08;1&#xff09;字典去重、用 list 实现队列 &#xff08;2&#xff09;set() 去重、用 list 实现队列 &#xff08;3&#x…

setDaemon python守护进程,队列通信子线程

使用setDaemon()和守护线程这方面知识有关&#xff0c; 比如在启动线程前设置thread.setDaemon(True)&#xff0c;就是设置该线程为守护线程&#xff0c;表示该线程是不重要的,进程退出时不需要等待这个线程执行完成。这样做的意义在于&#xff1a;避免子线程无限死循环&#x…

IK分词工具

https://code.google.com/archive/p/ik-analyzer/ IK Analyzer是一个开源的&#xff0c;基于java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始&#xff0c; IKAnalyzer已经推出了4个大版本。最初&#xff0c;它是以开源项目Luence为应用主体的&#xff0c;结合…

ruoyi-vue版本(八)登陆页面的验证码是咋实现的

目录1 需求2 配置类3 逻辑1 需求 我们打开若依项目的登陆页面&#xff0c;看到有一个验证码功能&#xff0c;点击一下这个验证码&#xff0c;还会进行变换验证码&#xff0c;那么这个逻辑是咋实现的&#xff1b; 我们刚进这个页面&#xff0c;其实就调用了一个接口&#xff1…

整理指针相关练习

这里收录的是相关指针的练习&#xff0c;主要针对的是指针与sizeof之间的练习&#xff0c;练完你对指针的理解将更进一层喔一维数组指针练习字符数组指针练习二维数组指针练习练习总结&#xff1a;指针笔试真题一维数组指针练习 一维数组相关练习&#xff0c;下面答案是多少呢…

负载均衡的在线OJ

文章目录1.项目宏观结构(1)三个模块(2)项目宏观结构(3)编写顺序2.compile_server(1)compiler.hpp(2)runner.hpp(3)compile_run.hpp(4)compile_server.cc(5)Makefile(6)temp(7)编译运行模块总结3.comm(1)util.hpp(2)log.hpp(3)httplib.h4.基于MVC结构的OJ服务设计(oj_server)(1)…

java访问控制符/导入2023019

访问控制符&#xff08;定义的时候不加访问控制符&#xff0c;默认的就是default&#xff09;&#xff1a; 1.private&#xff08;当前类访问权限&#xff09;&#xff1a;如果类里的一个成员&#xff08;包括成员变量、方法和构造器等&#xff09;使用private访问控制符来修饰…

Java——数组中第k个最大的元素

题目链接 leetcode在线oj题——数组中第k个最大的元素 题目描述 给定整数数组 nums 和整数 k&#xff0c;请返回数组中第 k 个最大的元素。 请注意&#xff0c;你需要找的是数组排序后的第 k 个最大的元素&#xff0c;而不是第 k 个不同的元素。 你必须设计并实现时间复杂…

Move_base_flex(mbf)框架理解

本文章重点在 第二部分类图解析&#xff0c;第四部分代码解析 文章目录1. move_base_flex主体代码结构树2. move_base_flex 类图解析2.1 ROS2 navigation整体架构2.2 mbf类图主体思路详解2.2.1. 抽象层&#xff08;abstract层&#xff09;2.2.2. 外部信号输入&#xff08;Actio…

【NI Multisim 14.0虚拟仪器设计——放置虚拟仪器仪表(4通道示波器)】

目录 序言 &#x1f34d;放置虚拟仪器仪表 &#x1f349;4通道示波器 1.“时基”选项组 2.“通道”选项组 序言 NI Multisim最突出的特点之一就是用户界面友好。它可以使电路设计者方便、快捷地使用虚拟元器件和仪器、仪表进行电路设计和仿真。 首先启动NI Multisim 14.0…

C语言 通讯录最终版(动态内存+实时保存)

欢迎来到 Claffic 的博客 &#x1f49e;&#x1f49e;&#x1f49e; 前言&#xff1a; 上期通讯录我们实现了动态内存的申请&#xff0c;但数据依然是存放在内存中&#xff0c;当程序退出的时候&#xff0c;通讯录中的数据自然就不存在了&#xff0c;等下次运行通讯录程序的时候…

什么是REST和RESTful

REST&#xff08;Representational State Transfer&#xff09;表象化状态转变&#xff08;表述性状态转变&#xff09;&#xff0c;在2000年被提出&#xff0c;基于HTTP、URI、XML、JSON等标准和协议&#xff0c;支持轻量级、跨平台、跨语言的架构设计。是Web服务的一种新的架…