CUDA安装教程及调试:本机win10+vs2013+NVIDIA GeForce GTX 1050Ti

news/2024/9/22 21:30:50/

 

写这篇文章主要是针对CUDA调试经验分享,网上可供参考的资料太少了,最后靠自学CUDA官网help文档成功进入global函数断点,感兴趣的继续看下去吧!

本人的电脑配置:本机win10+vs2013+NVIDIA GeForce GTX 1050Ti 

 

1、CUDA加速环境配置,主要包括4项:

1)电脑配有NVIDA显卡

2)安装NVIDA驱动

3)安装VS开发环境(一个C语言编译器)

4CUDA开发包

简单的说,想要用CUDA加速电脑需要有支持CUDA加速的图形处理器;并且安装NVIDA驱动,版本可能受限于GPU显卡的型号,后面我想CUDA调试的时候发现显卡决定了的cuda调试器版本,也决定了cuda版本,具体关系请慢慢看下去。

 

2、分享一下资料

1)CUDA包(英文全称:CUDA Toolkit)官网下载:https://developer.nvidia.com/cuda-toolkit-archive

2)本人参考教程并成功安装链接:https://blog.csdn.net/qq_21792169/article/details/105842776

3)CUDA教学视频:https://www.iqiyi.com/v_19rrnosmz8.html

4)如何查看cuda是否安装成功:https://jingyan.baidu.com/article/bea41d43d5741fb4c51be6f7.html

5)CUDA调试器(英文全称:Nsight Visual Studio Edition;针对WIN系统,安装后会集成到VS里面)下载:https://developer.nvidia.com/nsight-visual-studio-edition-archive

 

3、CUDA示例

求一张图像的均值。

#include "cuda_runtime.h"
#include "device_launch_parameters.h"
#include <cuda.h>
#include <device_functions.h>
#include <iostream>using namespace std;const int THREADS = 1024;
//typedef int DT;
typedef unsigned short DT;__global__ void matSum(DT *dataIn, double *dataOutAverage, int nPixels)
{__shared__ double sharedSum[THREADS];  //int threadIndex = threadIdx.x;int nPixelsPerThread = nPixels / blockDim.x;double nSum = 0;for (int i = threadIndex * nPixelsPerThread; i < (threadIndex + 1) * nPixelsPerThread && i < nPixels; ++i){nSum += dataIn[i];}sharedSum[threadIndex] = nSum;__syncthreads();if (0 == threadIndex){double fSum = 0;for (int i = 0; i < THREADS; ++i){fSum += sharedSum[i];}*dataOutAverage = fSum / nPixels;}
}int main()
{FILE *fpsrc = NULL;int Width = 3072;int Height = 3072;//fopen read imageDT *image = new DT[Width * Height];//if ((fpsrc = fopen("E:\\SmileDoc\\MATLAB\\GL\\test.raw", "rb")) == NULL)if ((fpsrc = fopen("D:\\VG2020-SHARE\\imagecases\\103\\total-3072x3072-chest-ap-NoGrid85KV1.6mAs.raw", "rb")) == NULL){printf("Can not open the raw image.");system("pause");return 0;}fread(image, sizeof(DT), Width* Height, fpsrc);fclose(fpsrc);double average = 0;DT *d_src = NULL;double *d_average = NULL;cudaMalloc((DT**)&d_src, Width*Height*sizeof(DT));cudaMalloc((double**)&d_average, sizeof(double));cudaMemcpy(d_src, image, Width*Height*sizeof(DT), cudaMemcpyHostToDevice);matSum << <1, THREADS >> >(d_src, d_average, Width * Height);cudaMemcpy(&average, d_average, sizeof(double), cudaMemcpyDeviceToHost);cudaFree(d_src);cudaFree(d_average);cout << endl << "The average is :" << average << endl;return 0;
}

 

4、CUDA调试

关于CUDA调试经验,我上网搜了很多资料,可供参考的太少了,下面是关于我自己的经验分享。

首先,你要查一下自己电脑的显卡型号,它所支持的调试器版本,比如我的显卡是NVIDIA GeForce GTX 1050Ti ,支持CUDA调试器Nsight Visual Studio Edition 5.5 或者5.6版本,保险起见选择了5.5版本;

 

这个Nsight Visual Studio Edition调试器 没有办法单独下载,你下载的CUDA Toolkit在安装时会自动绑定一个CUDA调试器版本,由于没有经验,我先安装了CUDA10.0版本,后面调试怎么都不能进到global函数断点中,vs界面上有Nsight菜单,最底下有个help,在help文档中找到了版本支持的相关信息,提示我的显卡型号支持Nsight 5.5/5.6,单独下载Nsight5.5下载不了,只能卸载CUDA包重新安装CUDA9.1版本,这个信息是在调试器5.5版那个下载页面有说明;特别注意:重新安装CUDA9.1自动会安装Nsight5.5,然后重新配置PATH环境,VS里面配置include/lib等,新建个工程后,成功进入global函数断点:

 

 

 

我说的比较粗犷,如果想知道详细流程欢迎加我微信讨论,微信号:zm5547;废话不多索了,工作工作,哈哈哈哈哈

 

 

 

 

 

 

 

 

 


http://www.ppmy.cn/news/289368.html

相关文章

gtx1050ti安装win10和ubuntu16.04双系统

#2020.2.24更新&#xff1a; NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driverr 解决方法 卸载nvida sudo apt-get --purge remove nvidia* sudo apt autoremove sudo apt-get remove --purge nvidia-\*#2020.2.更新&#xff1a; ##一&#xf…

Pytorch安装win10GPU(GTX1050ti)

我的电脑联想拯救者。不是用pip、conda装pytorch&#xff0c;直接用清华源来下&#xff0c;速度快&#xff0c;不会出错 2022.3.25更新 最近给女朋友装的时候发现个问题&#xff0c;在第二步中运行conda install pytorch torchvision cudatoolkit10.1 -c pytorch时&#xff0c…

数码管介绍

1. 数码管简介 数码管&#xff1a;也称为LED数码管&#xff0c;基本单元是发光二极管(LED)。分为七段数码管和八段数码管(多一个小数点DP)。 - 共阳数码管&#xff1a;所有LED的阳极连接到一起形成一个公共阳极接VCC&#xff0c;单片机需要控制某段LED的阴极为低电平时&#x…

淘宝缘分数码城,专注翻新机5年,坑过的人连起来可绕地球跑两圈

相关文章&#xff1a; 百度贴吧&#xff1a;http://tieba.baidu.com/p/2960916689 淘宝论坛&#xff1a;http://bbs.taobao.com/catalog/thread/154501-267283796--277063629.htm 更多可以百度搜索“淘宝缘分数码城”&#xff0c;你就会觉得那家店的差评竟然那么少&#xff0c;…

PMOS管经典开关电路-PMOS开关典型电路工作原理及分析-KIA MOS管

PMOS管经典开关电路-PMOS开关典型电路工作原理及分析-KIA MOS管 信息来源&#xff1a;本站 日期&#xff1a;2018-07-03  分享到&#xff1a; PMOS管经典开关电路 下图是两种PMOS管经典开关电路应用&#xff1a;其中第一种NMOS管为高电平导通&#xff0c;低电平截断&am…

小程序源码整理最新的学习小程序的源码清单包含前后台

小程序源码整理最新的学习小程序的源码清单包含前后台 微信小程序疯狂猜成语小程序源码UI美观 知识答题类小程序源码 200多套微信小程序源码带后台教程源码 校园小情书小程序前端后端源码 微信版flappybird小游戏源码下载&#xff0c;经典像素鸟小游戏源码 [小游戏源码] 微…

数字藏品系统

在国外,数字藏品被统称为NFT&#xff0c;即非同质化代币(Non-Fungible Token)&#xff0c;是指使用区块链技术&#xff0c;对应特定的作品、艺术品生成的唯一数字凭证&#xff0c;在保护其数字版权的基础上&#xff0c;实现真实可信的数字化发行、购买、收藏和使用&#xff0c;…

3C数码商城数据库

--创建数据库 use master go --判断数据库是否存在&#xff0c;存在删除 if exists(select * from sys.databases where nameDigitalProductShop) drop database DigitalProductShop go --(创建数据库&#xff09; create database DigitalProductShop go --(进入创建的数据…