Windows安装配置CUDA12.5

搞大模型往往都需要GPU加速,本次在家里的PC上安装CUDA来实现GPU加速。

一、环境准备

操作系统:Windows11 23H2

GPU:RTX 4070 Ti Super

显卡驱动:555.99 (NVIDIA GeForce 驱动程序 - N 卡驱动 | NVIDIA)

注意:尽量安装Studio版本的驱动(否则需要在安装过程中取消很多组件的安装) 

(可选)尽量已安装Visual Studio,笔者安装的是Visual Studio 2022 (不赘述)。

二、安装CUDA

1. 查看当前的英伟达显卡驱动版本

按Win+R,输入cmd,在命令行中输入 nvidia-smi,即可查看显卡驱动版本

本机的显卡驱动版本为555.99。

在1. CUDA 12.5 Release Notes — Release Notes 12.5 documentation 中查看适合当前显卡驱动版本对应的CUDA版本

本机的显卡驱动版本为555.99,因此可以安装CUDA 12.5。

若你的显卡驱动版本较低,又想装高版本CUDA,需要对显卡驱动进行升级。

在英伟达官网上下载CUDA,地址:

https://developer.nvidia.com/cuda-toolkit-archive

选择相应的系统、架构、系统版本、以及安装模式,点击download进行下载。

下载完成后双击安装即可(安装过程中大部分可以保持默认设置,直接下一步)。

提取安装文件的临时存放位置,保持默认,点击OK

选择【精简】或【自定义】均可,建议选【自定义】

安装位置可以点击浏览自选

安装完毕

测试CUDA是否安装成功,重新打开命令行,切换到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.5\extras\demo_suite下,运行bandwidthTest.exe测试程序,看结果是否为“PASS”(成功)。

三、安装cuDNN

下载合适的cuDNN版本,下载地址:https://developer.nvidia.com/rdp/cudnn-archive

选择:Download cuDNN v8.9.7 (December 5th, 2023), for CUDA 12.x下的Windows压缩包进行下载。注意下载时要注册账号。

下载完成直接解压,将其中的这三个文件夹复制到CUDA安装路径(默认路径C:\Program Files\NVlDlA GPU Computing Toolkit\CUDA\v12.5)下对应的文件夹,与原先同名文件合并。

四、配置环境变量

点击【此电脑】—【右键】—【属性】—【高级系统设置】—【环境变量】,打开环境变量窗口。

找到Path变量并双击,添加指向CUDA Development 安装路径下的 bin文件夹和libnvvp 文件夹(实际安装过程中已自动添加,~~省事)。

重新打开命令行窗口,输入nvcc -V,出现如下信息,表示安装成功。

注:至此安装已结束,网上还有一些教程说需要安装zlib。对于新版本的CUDA来说不需要,且最新的官方安装文档显式Windows下已无需安装zlib。

五、在PyTorch中测试CUDA

安装PyTorch

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

如果网速慢无法下载,直接下载安装包:https://download.pytorch.org/whl/cu121/torch-2.3.1%2Bcu121-cp311-cp311-win_amd64.whl

编写如下Python代码:

# -*- coding: utf-8 -*-import time
import torchdef torch_cuda():# 判断是否有cudaprint(torch.cuda.is_available())# 查看cuda设备数量print(torch.cuda.device_count())# 查看当前CUDA设备名称print(torch.cuda.get_device_name(0))# 查看当前CUDA使用详情print(torch.cuda.memory_summary())# 使用cuda进行矩阵乘法start_time1 = time.time()x = torch.randn(20000, 20000).to("cuda")y = torch.randn(20000, 20000).to("cuda")z = torch.matmul(x, y)end_time1 = time.time()print("Time1 (With CUDA): ", end_time1 - start_time1)# 不使用cuda进行矩阵乘法start_time2 = time.time()xx = torch.randn(20000, 20000)yy = torch.randn(20000, 20000)zz = torch.matmul(xx, yy)end_time2 = time.time()print("Time2 (Without CUDA): ", end_time2 - start_time2)if __name__ == '__main__':torch_cuda()

结果如下:

有CUDA加速的情况下,20000*20000的矩阵乘法耗时降为原先的1/8。

六、常见问题

CUDA安装失败

解决方案:再重新运行CUDA安装包,安装模式选【自定义】,然后取消相关失败的组件即可。

参考:

Installing cuDNN on Windows — NVIDIA cuDNN v9.2.0 documentation

Installation Guide :: NVIDIA cuDNN Documentation

CUDA超详细安装教程(windows版)_windows安装cuda-CSDN博客

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

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

相关文章

基于JSP技术的定西扶贫惠农推介系统

开头语:你好呀,我是计算机学长猫哥!如果有相关需求,文末可以找到我的联系方式。 开发语言:JSP 数据库:MySQL 技术:B/S架构、JSP技术 工具:Eclipse、MySQL、Tomcat 系统展示 首…

【python】OpenCV—Background Estimation(15)

文章目录 中值滤波中值滤波得到图像背景移动侦测 学习来自 OpenCV基础(14)OpenCV在视频中的简单背景估计 中值滤波 中值滤波是一种非线性平滑技术,主要用于数字信号处理,特别是在图像处理中去除噪声。 一、定义与原理 定义&am…

大模型日报2024-06-14

大模型日报 2024-06-14 大模型资讯 Meta发布Llama 3并专注大规模语言模型研发 摘要: Meta于2024年4月发布了开源的大规模语言模型Llama 3,并详细解释了他们在训练这些模型时关注的重点和方法。Meta目前正专注于大规模语言模型的进一步发展。 微软研究人员推出VALL-E…

log4j漏洞学习

log4j漏洞学习 总结基础知识属性占位符之Interpolator(插值器)模式布局日志级别 Jndi RCE CVE-2021-44228环境搭建漏洞复现代码分析日志记录/触发点消息格式化 Lookup 处理JNDI 查询触发条件敏感数据带外漏洞修复MessagePatternConverter类JndiManager#l…

论文阅读笔记:DepGraph: Towards Any Structural Pruning

论文阅读笔记:DepGraph: Towards Any Structural Pruning 1 背景2 创新点3 方法4 模块4.1 分组4.2 依赖图4.3 网络分解4.4 依赖建模4.4 组级剪枝 5 效果 论文:https://arxiv.org/pdf/2301.12900 代码:https://github.com/VainF/Torch-Prunin…

LDR6020显示器应用:革新连接体验,引领未来显示技术

一、引言 随着科技的飞速发展,显示器作为信息展示的重要载体,其性能和应用场景不断得到拓展。特别是在办公、娱乐以及物联网等领域,用户对显示器的需求越来越多样化。在这一背景下,LDR6020显示器的出现,以其卓越的性能…

opencv_GUI

图像入门 import numpy as np import cv2 as cv # 用灰度模式加载图像 img cv.imread(C:/Users/HP/Downloads/basketball.png, 0)# 即使图像路径错误,它也不会抛出任何错误,但是打印 img会给你Nonecv.imshow(image, img) cv.waitKey(5000) # 一个键盘绑…

AutoCAD 2025 ObjectARX(C++)二次开发环境搭建

(原文:https://blog.iyatt.com/?p16480) 基本环境 AutoCAD 机械版 2025 Visual Studio 2022(需要安装“C 桌面开发”) 开发环境 下载 (1)ObjectARX SDK 下载(提供开发使用的 …

【计算机网络仿真实验-实验2.4、2.5】静态路由、动态路由(RIP)

实验2.4 静态路由 1. 实验拓扑图 注意:有些同学不知道两个路由器之间如何用串行DCE(红线)相接,只需要为路由器分别增加新的HWIC-2T接口卡就好了 不知道如何添加物理接口的,可以查看本人计算机网络专栏中【计算机网络仿真实验——实验准备】…

命令模式:灯开灯关

文章目录 UML类图Command接口Invoker.javaLight.javaOnLightCommand.javaTest.java运行结果位置 UML类图 Command接口 这个你会,只有一个方法,并且接口里面是抽象方法 package mlms; /*- 这个你会,只有一个方法,并且接口里面是抽…

Rust 实战丨绘制曼德博集

曼德博集 曼德博集其实是一个“没什么用”的发现。 曼德博集(Mandelbrot Set)是一种在复平面上形成独特且复杂图案的点的集合。这个集合是以数学家本华曼德博(Benoit Mandelbrot)的名字命名的,他在研究复杂结构和混沌…

SAP HANA版本Fiori激活简介

SAP Fiori 是一个设计系统,使您能够创建具有消费者级别用户体验的业务应用,通过在任何设备上运行,可以在Ipad或者是手机端都可以随时随地的使用SAP,现在越来越多的公司都在使用Fiori系统,公司高层可以更直观的在移动端设备中查看各种数据。 本文主要说明HANA版本怎么激活F…

认识一些分布函数-Gumbel分布

1. Gumbel分布 Gumbel分布(也称为古贝尔型)是一种常用的非对称极值分布( Extreme Value Distribution,EVD),用于建模极大值和极小值,也就是所谓的EVD Type I分布。例如,EVD Type I 被用来预测地震、洪水和其他自然灾害,以及在风险管理中建模操作风险和那些在一定年龄…

【C语言习题】30.使用指针打印数组内容

文章目录 作业标题作业内容2.解题思路3.具体代码 作业标题 使用指针打印数组内容 作业内容 写一个函数打印arr数组的内容,不使用数组下标,使用指针。 arr是一个整形一维数组。 2.解题思路 先定义一个数组,使用指针打印数组内容那就是说我们…

重生奇迹mu魔剑士简介

出生地:勇者大陆 性 别:男 擅 长:近距离作战、武器特技&攻击魔法使用 转 职:剑圣(3转) 介 绍:当玩家账号中有一个220级以上的角色时,便可以创建职业为魔剑士的新角色&#x…

基于51单片机心率计设计

1 绪论1.1 国内外心率计脉搏仪系统研究现状 心率(Heart Rate)是用来描述心跳周期的专业术语,是指心脏每分钟跳动的次数, 它不仅是反映心脏功能强弱的重要标志,也是反映人体运动强度的生理指标。自公元三世纪我国最早的脉学专著《脉经》问世以来,脉学理论得到不断的发展和提…

Vulnhub-DC-8

靶机IP:192.168.20.143 kaliIP:192.168.20.128 网络有问题的可以看下搭建Vulnhub靶机网络问题(获取不到IP) 信息收集 用nmap和wappalyzer收集下信息 发现是Drupal 7网站 dirsearch扫下目录 ┌──(root㉿kali)-[/home/kali/Desktop] └─# dirsearch -u http://192.168.20…

代码随想录——组合总和(Leetcode LCR81)

题目链接 回溯 class Solution {List<List<Integer>> res new ArrayList<List<Integer>>();List<Integer> list new ArrayList<Integer>();public List<List<Integer>> combinationSum(int[] candidates, int target) {b…

springboot宠物医院信息管理系统-计算机毕业设计源码04164

摘 要 现如今在中国&#xff0c;随着人民生活质量的逐渐提高&#xff0c;以及人民群众消费能力的日渐增长&#xff0c;各种各样的家养小动物&#xff0c;已经逐渐成为人类越来越亲密的生活伴侣。并且&#xff0c;现如今社会竞争及其激烈&#xff0c;人们的生活节奏越发急促、紧…

NoSQL数据层解决方案 之 redis springboot整合与读写操作 2024详解以及window版redis5.0.14下载百度网盘

redis下载安装以及基本使用 下载地址 链接&#xff1a;百度网盘 请输入提取码 提取码&#xff1a;0410 一个名对应一个数值 内存级 在内存里进行操作 准备启动 我们现在就有一个redis客户端的服务器了 我们再启动一个cmd 操作redis数据库 redis里面的基本数据类型有五种 …