cuda安装笔记

2023-11-09

更新2023.3.4

我笔记本用vs编译后老是提示no kernel image is available for execution on the device,一直以为是驱动版本太高了或者cudatoolkit版本太高了,后来才知道是版本编译的时候有一个算力设置,修改一下就好了,这个数值是算力乘以10,比如我的是算力是5 就可以写成compute_50,sm_50

一、根据自己的显卡品牌和型号,在这里可以查找自己显卡的算力

1.在这个网页https://developer.nvidia.com/cuda-gpus查找我们显卡的算力, 比如我的是Geforce 940MX,算力是5.0

  1. 如果安装了matlab,输入gpuDevice,也可以查看GPU的算力,以及matlab是不是支持现在的GPU进行加速

二、查找cuda 需要的算力最小支持,然后查找我们显卡能支持的最高版本

三、下载符合自己版本的驱动和cudatoolkit

1.首先在英伟达的驱动下载页面https://www.nvidia.cn/geforce/drivers/

2.复制下面的代码,在页面按F12,然后找到console,粘贴,按下enter;

注意第三行的 200 是显示多少个驱动,也就是说从最新的驱动往前数,显示 200 个驱动版本 ,如 果200个驱动版本里面没有你想要的,可以填250,或者300这样子就可以找到了。

SystemScanner.prototype.DriverSearch = function(psid, pfid, osID, langCode, whql, beta, dltype, numresults ) {numresults=200;this.scannerStatusUpdate(GFE_SERVER_CONNECTING);theScanner.scannedDevice.downloadInfo=new Object();var parameters='psid='+psid;parameters+='&pfid='+pfid;parameters+='&osID='+osID;parameters+='&languageCode='+langCode;parameters+='&beta='+beta;parameters+='&isWHQL='+whql;parameters+="&dltype="+dltype;parameters+="&sort1=0";parameters+="&numberOfResults="+numresults;var requestUrl=this.driverManualLookupUrl+parameters;this.driversLogUIEvent("warn","SUID:"+this.tracker.scanID+" BEGIN DriverSearch requestUrl:"+requestUrl);this.debugTrace(requestUrl);jQuery.ajax({url:requestUrl,async:false,type:'get',success:function(response){try{theScanner.debugTrace("The Driver Lookup Service Returned:\n\n("+response+")");if(response.length>0){theScanner.resetResults();var driverLookupJsonObj='('+response+')';theScanner.resultsList=new Object();theScanner.resultsList=eval(driverLookupJsonObj)}if(theScanner.resultsList.Success==0){theScanner.scannerStatus="No driver available"}else{theScanner.scannerStatus="Results Ready"}}catch(e){this.driversLogUIEvent("error"," FAIL catch DriverSearch");theScanner.resetResults();theScanner.scannerStatus="No driver available"}},error:function(response){theScanner.resetResults();theScanner.scannerStatus="AJAX Call failed"}});this.driversLogUIEvent("warn","SUID:"+this.tracker.scanID+" END DriverSearch requestUrl:"+requestUrl);}

3.输入我们的显卡型号 点击搜索,等一会 一定要等一下

4. 然后找我们需要的版本

四、安装驱动程序

安装完驱动程序后如何检查驱动是否安装正常

在命令行输入 nvidia-smi,如果提示

'nvidia-smi' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

说明nvidia-smi没有在系统的环境变量中,通过everything查找他有没有在系统中,一般在C:\Program Files\NVIDIA Corporation\NVSMI,添加到环境变量(PATH)

或者通过英伟达的驱动控制面板在【系统信息】【组件】中查找检查驱动的cuda版本

我第一次就是安装的最新的驱动程序是支持的是cuda12,然后显卡不支持,又进行的重新安装

当时我用nvcc --version,查看我的cuda套件的驱动版本是V11.0.194,用nvidia-smi查看的cuda版本是12,但是我的显卡不支持cuda12,

五、安装cuda toolkit

1.安装cudatoolkit软件

下载支持我们显卡驱动的cudatoolkit,然后点击安装,选择自定义,选择只安装cuda

2.添加环境变量

安装结束后,右键 我的电脑-->属性-->高级系统设置-->环境变量,系统变量中已经加入了cuda的两个路径。

在系统变量中加入下面的路径,点击确定。

CUDA_BIN_PATH: %CUDA_PATH%\bin

CUDA_LIB_PATH: %CUDA_PATH%\lib\x64

CUDA_SDK_PATH: C:\ProgramData\NVIDIA Corporation\CUDA Samples\v11.0

CUDA_SDK_BIN_PATH: %CUDA_SDK_PATH%\bin\win64

CUDA_SDK_LIB_PATH: %CUDA_SDK_PATH%\common\lib\x64

在系统变量path中加入下面的的变量:

%CUDA_BIN_PATH%

%CUDA_LIB_PATH%

%CUDA_SDK_BIN_PATH%

%CUDA_SDK_LIB_PATH%

3.检查是否安装成功

打开cmd,切换目录到

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\extras\demo_suite

分别运行这两个程序deviceQuery.exe、bandwidthTest.exe ,result=pass则安装成功,否则就重新安装:

其中我测试deviceQuery.exe运行效果如下

这几天查找的时候见过ECC,所以看到这个 搜了一下什么意思,为什么我的是disable

ECC

那么ECC的真正含义是什么?

ECC是纠错码.它不是GPU独有的.在GPU上,它是一种使用额外存储器位来存储错误信息的功能,因此如果在存储器子系统中发生错误(特别严重性),则可以检测并报告,或检测和纠正错误.

普通用户是否可以将ECC设置为禁用?

禁用ECC需要root权限.

关闭ECC会有什么影响?

可用/将增加GPU应用程序可用的带宽和内存大小.如果关闭ECC并发生内存子系统错误,则不会收到任何明确的通知.根据错误发生的上下文,错误可能会产生任何影响范围,从完全没有影响到完整的应用程序崩溃.

我们什么时候打开它?何时关闭?

想要防止内存损坏错误时将其打开.如果您想获得最高性能(例如用于基准测试),或者您认为您的应用程序可以容忍内存错误(例如,您检查结果的有效性,并且您不介意重新运行由于某种原因失败的应用程序),请将其关闭.

我的GeForce 940MX好像不支持ECC

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

cuda安装笔记 的相关文章

随机推荐

  • spring事务出现的超卖问题

    问题分析 我的代码逻辑如下 Override Transactional isolation Isolation REPEATABLE READ propagation Propagation REQUIRED public synchro
  • C语言数据存储与数据打印的奥秘

    尊师 https blog csdn net yyywill 数据存储 要记住 在计算机中 数据都是以 二进制 来存储的 十六进制 八进制和十进制只是我们人为定义的一种表现形式 数据打印 谈到数据打印 有人可能会说 不就是 printf 吗
  • leetcode精选

    7 LeetCode题目精选 7 1 两数之和 问题链接 https leetcode cn com problems two sum 7 1 1 问题描述 给定一个整数数组 nums 和一个目标值 target 请你在该数组中找出和为目标
  • MySQL 读写分离 使用驱动com.mysql.jdbc.ReplicationDriver

    说明文档 http dev mysql com doc refman 5 1 en connector j reference replication connection html 代码例子 1 import java sql Conne
  • Python3,多线程爬完B站UP主的视频弹幕及评论,我飘了~ ~ ~

    利用线程爬取B站Up主弹幕及评论 1 爬取视频弹幕信息 2 爬取视频评论信息 3 整合代码 线程提速 1 爬取视频弹幕信息 爬取视频的弹幕信息 同样要借助于我们的接口工具 这里我们使用Charles 获取到的弹幕的url地址 弹幕url h
  • tensorflow 数据归一化_【TensorFlow实现机器学习方法】KNN(K近邻算法)实现预测房屋价格...

    一 前言 机器学习KNN算法 K近邻算法 的总体理论很简单不在这里赘述了 二 数据集准备 这里使用比较古老的数据集 是房屋预测的数据集 下载地址 https archive ics uci edu ml machine learning d
  • MATLAB——通过扫频数据反推系统伯德图

    1 获取扫频数据 导入MATLAB 2 计算控制器离散传函 根据扫频数据情况绘制控制器伯德图 3 根据控制器伯德图获取增益 相角数据 4 反算系统增益 相角数据 5 数据平滑处理 得到系统最终伯德图
  • element table 中sortable排序

    在项目中做表格的排序 我使用的是自定义的排序 也就是通过后台接口进行的排序 写个文章记录一下element的三种排序方式 在列中设置sortable属性即可实现以该列为基准的排序 接受一个Boolean 默认为false 可以通过 Tabl
  • API接口整理收集常用Get-Post请求供测试使用

    百度 api集市免费接口 IP地址查询 http apistore baidu com apiworks servicedetail 114 html 频道新闻API 易源 http apistore baidu com apiworks
  • 【XML】学习笔记第四章-schema

    Schema 概述 作用 与DTD相比Schema的优势 基础命名空间 模式 引用方法 通过xsi noNamespaceSchemaLocation引入 通过xsi shemaLocation引入 Schema的语法结构 定义元素的主要语
  • shell脚本3个整数从小到大排序

    read p 请输入一个整数 num1 read p 请输入一个整数 num2 read p 请输入一个整数 num3 不管谁大谁小 最后打印 echo n u m 1 num1 num1 num2
  • Goby自定义漏洞之EXP

    前言 自定义漏洞配合EXP 提高漏洞的利用速度 简直是爽的飞起 自从HVV的时候Goby发布HVV专版 羡慕死了 就是太菜没傍上红方大佬的腿 虽然最终用上了HVV专版 但是一些只有你自己知道的漏洞 或者比较偏门的漏洞 就需要咱们自己来编写P
  • react小练习-antd Form表单和Table表格的交互-Table动态添加数据

    文章目录 功能实现效果 代码背景 代码思路 代码实现 功能实现效果 点击添加按钮 输入表单内容 表单提交后数据动态添加到Table表格里 如图 初始数据 是在dva的mock文件模拟的死数据 点击添加 输入数据 表单提交后 数据添加到表格里
  • Android签名概述

    一 Android签名概述 我们已经知道的是 Android对每一个Apk文件都会进行签名 在Apk文件安装时 系统会对其签名信息进行比对 判断程序的完整性 从而决定该Apk文件是否可以安装 在一定程度上达到安全的目的 给定一个Apk文件
  • JAVA实现蛇形矩阵算法

    JAVA实现蛇形矩阵算法 蛇形矩阵是一种特殊的二维矩阵 其元素按照一定的规律排列成蛇形 这种算法可以通过JAVA编程语言来实现 本文将介绍如何使用JAVA编写代码来生成蛇形矩阵 并给出相应的源代码 蛇形矩阵的生成规则如下 第一行从左到右依次
  • 多租户系统设计

    多租户系统设计 SaaS 的系统分级 SaaS 系统架构成熟度模型的 5 个级别 从 混乱 到 乌托邦 第 0 级 混乱 每次新增一个客户 都会新增软件的一个实例 第 1 级 受控的混乱 所有客户都运行在软件的同一个版本上 而且任何的定制化
  • 当在浏览器中输入一个域名后,会发生什么

    今天 去哪儿网Geely老师分享了他在校招时的一个面试题 当输www qunar com时发生了什么 真不是做广告哈 因为学的并没有很扎实 不能更深更广的分析这个问题 遂 百度一下 发现这篇文章并转载保存下来 同时也分享一下 希望大家可以更
  • vue-cli3.0打包时如何忽略某个第三方依赖包

    前几天接到了用vue重构某个业务模块的需求 常规开发不做讨论 但是在打包时需要排除业务中使用的某个第三方依赖包 代码如下 main js import Vue from vue import Cesium from cesium Cesiu
  • 解决Win7启动时出现“windows未能启动。原因可能是最近更改了硬件或软件”的问题

    搜索资料的时候发现个小问题 问题描述 在给ThinkPad T490做win7系统时 出现了 windows未能启动 原因可能是最近更改了硬件或软件 的问题 一直启动不来 在系统盘微PE中甚至还会出现 0x490 找不到元素 的问题 如何来
  • cuda安装笔记

    更新2023 3 4 我笔记本用vs编译后老是提示no kernel image is available for execution on the device 一直以为是驱动版本太高了或者cudatoolkit版本太高了 后来才知道是版