Windows安装配置CUDA12.5

news2024/9/12 22:05:10

搞大模型往往都需要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 torch


def torch_cuda():
    # 判断是否有cuda
    print(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.coloradmin.cn/o/1825200.html

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

相关文章

从入门到高手的99个python案例(2)

51. 列表和数组比较 - 列表通用,NumPy数组高效。 import numpy as np normal_list [1, 2, 3] np_array np.array([1, 2, 3]) print(np_array.shape) # 输出 (3,), 数组有形状信息 52. Python的内置模块datetime - 处理日期和时间。 from datetime import…

H5拟态个人主页

演示地址:科技语者个人主页 (chgskj.cn) 文末有该项目的源码~ 这张图片的效果你是不是非常想要get同款? 源码就是这个样子 这段HTML代码构建了一个个人主页,结合了CSS样式和JavaScript功能。 下面是对代码的主要组成部分的详细解释&#x…

FPGA - Verilog题目: 非整数倍数据位宽转换24to128

题目描述: 实现数据位宽转换电路,实现24bit数据输入转换为128bit数据输出。其中,先到的数据应置于输出的高bit位。 电路的接口如下图所示。valid_in用来指示数据输入data_in的有效性,valid_out用来指示数据输出data_out的有效性…

建筑电工精选最新模拟试题(含答案)

一、填空题 1、我国安全生产的基本方针是 安全 第一,预防 为主,综合治理。 2、特种作业人员,必须积极主动参加培训与考核 。既是法律法规的规定,也是自身工作,生产及生命安全 的需要 3、触电急救&#x…

QT调用vs2019生成的c++动态库

QT调用vs2019生成的c动态库 dll库的创建方法: VS2019创建c动态链接库dll与调用方法-CSDN博客 加减法示范: 头文件 // 下列 ifdef 块是创建使从 DLL 导出更简单的 // 宏的标准方法。此 DLL 中的所有文件都是用命令行上定义的 DLL3_EXPORTS // 符号编…

植物ATAC-seq文献集锦(三)——果实发育篇

ATAC-seq在植物研究领域的应用我们已经介绍2期了,本期我们聚焦ATAC-seq技术在果实发育方向的应用案例。 植物ATAC-seq文献集锦(一)——基因组篇 植物ATAC-seq文献集锦(二)——生长发育篇 文献一:Ident…

Java学习笔记之基本数据类型转换

前言 本篇文章是基于我本人在初学JAVA阶段想记录的的学习笔记,如有错误,恳请指正。今天要干掉的是JAVA的基本数据类型转换 Java的基本数据类型转换 前言一,基本数据类型复习二,基本介绍什么是自动类型转换? 三&#…

如何实现 Python 源码压缩加密常用解决方案详细教程(更新中)

Python是一种高级的、解释型的、面向对象的编程语言,Python 码简洁易读,并且Python语言跨平台,拥有丰富的标准库和第三方库,深受开发人员的喜爱。 Python 程序扩展名 .py:这是 Python 程序的标准文件扩展名。当你创建…

B端颜值无所谓?麻痹自己可以,麻痹业务人员和客户试一试。

很多老铁觉得B端系统颜值和体验无所谓,功能好就行了,我不认同这种说法,我觉得优秀的B端系统应该是内外兼修的,而不是偏科的。你想一想你费尽研发的系统,就是因为颜值问题,你的业务人员没信息推销&#xff0…

用Canvas绘制2D平面近大远小的马路斑马线

用Canvas绘制2D平面近大远小的马路斑马线 设置canvas和上下文: 首先,你需要创建一个元素,并获取其2D渲染上下文。 绘制斑马线: 使用fillRect或strokeRect方法绘制斑马线。你可以通过循环和计算来绘制多条具有不同宽度和间隔的…

【V8引擎】 V8引擎如何运行JS的

文章目录 概要什么是V8引擎为什么需要V8引擎比较常见的javascript引起有哪些呢?V8引擎是如何工作的(V8引擎的解析过程)V8引擎的做了哪些优化 概要 本篇文章主要是讲V8引擎如何运行JS,对运行JS做了哪些优化 什么是V8引擎 V8 是一…

深度学习 - CNN

第一部分:基础知识 1. 什么是卷积神经网络(CNN) 定义和基本概念 卷积神经网络(CNN)是一种专门用于处理具有网格结构数据(如图像)的深度学习模型。它们在图像识别和计算机视觉领域表现尤为突出…

【操作与配置】Pytorch环境搭建

安装显卡驱动 显卡驱动是一种软件程序,用于控制显卡硬件与操作系统之间的通信和交互。显卡驱动负责向操作系统提供有关显卡硬件的信息,以及使操作系统能够正确地控制和管理显卡的各种功能和性能。显卡驱动还包含了针对不同应用程序和游戏的优化&#xff…

非关系型数据库NoSQL数据层解决方案 之 Mongodb 简介 下载安装 springboot整合与读写操作

MongoDB 简介 MongoDB是一个开源的面向文档的NoSQL数据库,它采用了分布式文件存储的数据结构,是当前非常流行的数据库之一。 以下是MongoDB的主要特点和优势: 面向文档的存储: MongoDB是一个面向文档的数据库管理系统&#xff0…

AI大模型四大技术架构演进选型

随着人工智能技术的迅猛发展,大模型技术架构也在不断演进和完善。大模型技术架构通过最初的简单交互,逐渐发展为可对已有模型进行能力迁移学习扩展的架构,这个过程包括了四大技术架构的演进,分别为:纯Prompt、Agent F…

香橙派AIpro测试SPI通信

香橙派AIpro开发板上有一个SPI接口,如下图红框所示, 系统启动后,其对应的设备是 /dev/spidev0.0 一 硬件回环测试 香橙派AIpro上的系统自带spidev_test工具,非常方便,可以查看其帮助信息,如下&#xff0c…

这个网站有点意思,可做SPRINGBOOT的启动图

在 SpringBoot 项目的 resources 目录下新建一个 banner.txt 文本文件,然后将启动 Banner 粘贴到此文本文件中,启动项目,即可在控制台展示对应的内容信息。 下面这个工具很好用,收藏精哦

MySQL概述——DDL

1.SQL通用语法 1.SQL语句可以单行或多行书写,以分号结尾。 2. SQL语句可以使用空格/缩进来增强语句的可读性。 3.MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。 4.注释: (1)单行注释:--注释内容或#注释内容(MySQL特…

我用AI绘画Stable Diffusion 一个月后,竟然能做出惊艳所有人的效果!

大家好,我是设计师阿威 如今要拍摄一组写真,需要服装、道具、灯光、场地、布景、拍摄、后期等过程。整个过程需要统一才能形成好的写真效果。现在有了AI绘图技术,我们可以实现通过AI绘图,只用计算机计算就得到一组接近真实的写真照…

P450Rdb: CYP450数据库--地表最强系列--文献精读24

P450Rdb: A manually curated database of reactions catalyzed by cytochrome P450 enzymes P450Rdb: 一个人工整理的细胞色素P450酶催化反应数据库 http://www.cellknowledge.com.cn/p450rdb/ 还有一篇类似CYP450综述-20年-地表最强系列-文献精读-4 要点: P450…