1.VS2013 + CUDA7.5 安装和配置

转载地址:http://blog.csdn.net/u011314529/article/details/51505029

1.1 CUDA 7.5 安装

  • 1.cuda官方下载网址,目前最新版本为cuda7.5,选择自己系统对应的版本下载安装程序。
  • 2.运行cuda_ 7.5.18_windows.exe,程序会检测系统的兼容性如下图:
  • 3.选择“同意并继续”,进入下图安装过程 (备注:安装cuda时,要关闭所有的vs程序)

  • 4.等待大概半个小时后,安装程序终于完成了。

1.2 添加环境变量

CUDA_PATH = C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5
CUDA_PATH_V7_5 = C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5
CUDA_SDK_PATH = C:\ProgramData\NVIDIA Corporation\CUDA Samples\v7.5
CUDA_LIB_PATH = %CUDA_PATH%\lib\x64
CUDA_BIN_PATH = %CUDA_PATH%\bin
CUDA_SDK_BIN_PATH = %CUDA_SDK_PATH%\bin\win64
CUDA_SDK_LIB_PATH = %CUDA_SDK_PATH%\common\lib\x64

然后,在系统变量path的末尾添加: %CUDA_LIB_PATH%;%CUDA_BIN_PATH%;%CUDA_SDK_BIN_PATH%;%CUDA_SDK_LIB_PATH%;

1.3 重启计算机使得环境变量生效

1.4 VS2013 + CUDA7.5配置

  • 1.打开vs2013并创建一个空win32程序,创建一个cuda_samples的解决方案和cuda_test1项目:
  • 2.右键源文件–>添加–>新建项,如下图所示:

  • 3.选择NIVIDIA CUDA7.5中 CUDA C/C++file,并在名称那填上cuda_main

  • 4.选择cuda_test1,点击右键–>项目依赖项–>自定义生成

  • 5.选择CUDA7.5

  • 6.点击cuda_main.cu的属性

    1. 在配置属性–>常规–>项类型–>选择“CUDA C/C++”

1.5 项目配置

1.5.1 x64

1.5.1.1 包含目录配置

  • 1.右键点击项目属性–>属性–>配置属性–>VC++目录–>包含目录
  • 2.添加包含目录:
    $(CUDA_PATH)\include

1.5.1.2 库目录配置

  • 1.VC++目录–>库目录
  • 2.添加库目录:
    $(CUDA_PATH)\lib\x64

1.5.1.3 依赖项

    1. 配置属性–>连接器–>输入–>附加依赖项
    1. 添加库文件:
      cublas.lib
      cuda.lib
      cudadevrt.lib
      cudart.lib
      cudart_static.lib
      nvcuvid.lib
      OpenCL.lib`

注意:添加nvcuvenc.lib库文件,编译时,报找不到该文件的错误。去掉后,程序也能运行

1.5.2 x86(win32)

1.5.2.1 包含目录配置

    1. 右键点击项目属性–>属性–>配置属性–>VC++目录–>包含目录
    1. 添加包含目录:
      $(CUDA_PATH)\include

1.5.2.2 库目录配置

  • 1.VC++目录–>库目录
  • 2.添加库目录:
    $(CUDA_PATH)\lib\Win32

1.5.2.3 依赖项

    1. 配置属性–>连接器–>输入–>附加依赖项
    1. 添加库文件:
      cuda.lib
      cudadevrt.lib
      cudart.lib
      cudart_static.lib
      nvcuvid.lib
      OpenCL.lib`

备注: win32和x64位的lib库有差别,配置时需注意,除了上述添加的lib文件外,x64还有其他的lib库文件,如cublas.lib,如运行1.6的样例时,要添加这个库,不然会编译失败。

1.6 样例

// CUDA runtime 库 + CUBLAS 库
#include "cuda_runtime.h"
#include "cublas_v2.h"
#include <time.h>
#include <iostream> using namespace std;
// 定义测试矩阵的维度
int const M = 5;
int const N = 10;
int main()
{
// 定义状态变量
cublasStatus_t status;
// 在内存中为将要计算的矩阵开辟空间
float *h_A = (float*)malloc(N*M*sizeof(float));
float *h_B = (float*)malloc(N*M*sizeof(float));
// 在 内存 中为将要存放运算结果的矩阵开辟空间
float *h_C = (float*)malloc(M*M*sizeof(float));
// 为待运算矩阵的元素赋予 0-10 范围内的随机数
for (int i = 0; i<N*M; i++) {h_A[i] = (float)(rand() % 10 + 1);h_B[i] = (float)(rand() % 10 + 1);
}
// 打印待测试的矩阵
cout << "矩阵 A :" << endl;
for (int i = 0; i<N*M; i++){cout << h_A[i] << " ";if ((i + 1) % N == 0) cout << endl;
}
cout << endl;
cout << "矩阵 B :" << endl;
for (int i = 0; i<N*M; i++){cout << h_B[i] << " ";if ((i + 1) % M == 0) cout << endl;
}
cout << endl;
/*** GPU 计算矩阵相乘*/
// 创建并初始化 CUBLAS 库对象
cublasHandle_t handle;
status = cublasCreate(&handle);
if (status != CUBLAS_STATUS_SUCCESS)
{if (status == CUBLAS_STATUS_NOT_INITIALIZED) {cout << "CUBLAS 对象实例化出错" << endl;}getchar();return EXIT_FAILURE;
}
float *d_A, *d_B, *d_C;
// 在 显存 中为将要计算的矩阵开辟空间
cudaMalloc((void**)&d_A, // 指向开辟的空间的指针 N*M * sizeof(float) // 需要开辟空间的字节数 );
cudaMalloc((void**)&d_B,N*M * sizeof(float));
// 在 显存 中为将要存放运算结果的矩阵开辟空间
cudaMalloc((void**)&d_C,M*M * sizeof(float));
// 将矩阵数据传递进 显存 中已经开辟好了的空间
cublasSetVector(N*M, // 要存入显存的元素个数 sizeof(float), // 每个元素大小 h_A, // 主机端起始地址 1, // 连续元素之间的存储间隔 d_A, // GPU 端起始地址 1 // 连续元素之间的存储间隔 );
cublasSetVector(N*M,sizeof(float),h_B,1,d_B,1);
// 同步函数
cudaThreadSynchronize();
// 传递进矩阵相乘函数中的参数,具体含义请参考函数手册。
float a = 1; float b = 0;
// 矩阵相乘。该函数必然将数组解析成列优先数组
cublasSgemm(handle, // blas 库对象 CUBLAS_OP_T, // 矩阵 A 属性参数 CUBLAS_OP_T, // 矩阵 B 属性参数M, // A, C 的行数 M, // B, C 的列数N, // A 的列数和 B 的行数&a, // 运算式的 α 值 d_A, // A 在显存中的地址 N, // lda d_B, // B 在显存中的地址 M, // ldb &b, // 运算式的 β 值 d_C, // C 在显存中的地址(结果矩阵) M // );
// 同步函数
cudaThreadSynchronize();
// 从 显存 中取出运算结果至 内存中去
cublasGetVector(M*M, // 要取出元素的个数 sizeof(float), // 每个元素大小 d_C, // GPU 端起始地址 1, // 连续元素之间的存储间隔 h_C, // 主机端起始地址1 // 连续元素之间的存储间隔 );
// 打印运算结果
cout << "计算结果的转置 ( (A*B)的转置 ):" << endl;
for (int i = 0; i<M*M; i++){cout << h_C[i] << " ";if ((i + 1) % M == 0) cout << endl;
}
// 清理掉使用过的内存
free(h_A);
free(h_B);
free(h_C);
cudaFree(d_A);
cudaFree(d_B);
cudaFree(d_C);
// 释放 CUBLAS 库对象
cublasDestroy(handle);
getchar();
return 0;
}

运行结果如下图所示:

参考网址

    1. cuda6.0安装及配置

CUDA7.5安装和vs2013配置相关推荐

  1. 安装教程-opencv3.1.0安装及VS2013配置教程

    安装教程-opencv3.1.0安装及VS2013配置教程 安装opencv 安装Image Watch 第一个opencv应用 安装opencv 准备opencv3.1.0安装包.提前安装VS201 ...

  2. Qt5.10.1下载安装和VS2013配置

    转载自:https://blog.csdn.net/hust_bochu_xuchao/article/details/79461213 下载.安装及配置 一.前提准备 1.已经安装好vs2013 2 ...

  3. 64位win10+cuda8.0+vs2013+cuDNN V5下Caffe的编译安装教程并配置matlab2014a 接口

    一.需要安装的软件 1)vs2013,我是在http://www.52pojie.cn/thread-492326-1-1.html这个网址安装的.我之前用的是vs2012,按照网上的配置教程会爆各种 ...

  4. 如何在VS2013配置CUDA,并编译生成DLL

    环境:win7_64 VS2013 CUDA7.0 安装配置CUDA环境,这里就不详细介绍了. 一.手动建立CUDA工程 打开VS2013,新建空白项目,起名为 test2. 在解决方案管理器中,右键 ...

  5. Windows10+GPU+Anaconda2+VS2013配置caffe

    Windows10+GPU+Anaconda2+VS2013配置caffe 1. 安装VS2013 下载VS2013(任意版本都可以),安装过程中不需要特别操作,软件所占内存较大,不建议装在C盘. 安 ...

  6. Windows开发环境搭建(安装 VS2010, VS2013, VS2015 Community, Windows Server 2008 R2)

    1. 安装VS2010 1.1 安装步骤 1. 注意安装的时候,选择自定义安装,将不需要的VB.net去掉. 2. 看一下C++下的x64选项是否选择了,如果没选,将其选上. 3. 一定要将 Micr ...

  7. OpenCV学习之路之OpenCV安装(VS2013版)

    开始学习OpenCV,首先就是成功的将OpenCV装载到电脑上. 版本选择的是目前官网上可以下载的2.4.13,我的vs版本是2013. 花了差不多四个小时的时间才算是安装加调试全部完成. http: ...

  8. vs2013配置opencv2.4.9后出现找不到opencv_core249d.dll和opencv_highgui249d.dll问题

    问题:vs2013配置opencv2.4.9后,运行程序,出现找不到opencv_core249d.dll和opencv_highgui249d.dll问题 解决办法:首先将opencv_core24 ...

  9. VS2013配置VTK7.1.1

    作为一个新手小白,这两天配置VTK出现了各种问题,解决过程中极其痛苦,将配置过程记录下来. 1.安装VTK VTK可以从http://www.vtk.org/download/ 网站免费下载,一般只需 ...

最新文章

  1. Eclipse NDK 配置,无需安装Cygwin
  2. 浅析Google技术底蕴
  3. Linux安装与硬盘分区
  4. python gevent模块 下载_Python协程阻塞IO非阻塞IO同步IO异步IO
  5. LVS/NAT 配置
  6. 二叉搜索树简介和部分题目
  7. python当中的生成器
  8. 微信朋友圈删除后服务器还有吗,删了的朋友圈还可以找回来吗
  9. docker更换国内镜像源
  10. OJ1022: 三整数排序
  11. RCD:Residual Current Device,剩余电流装置
  12. oracle建立表语句 主键,oracle 创建表sql语句,主键,自增长
  13. Linux初级运维(一)——Linux操作系统及常用命令
  14. python如何创建工程预设_如何在sublime3项目设置中设置python模块的搜索路径?ImportError: No module named *的解决办法...
  15. 经典SQL练习题(MySQL版)
  16. unity3d kinect体感互动解决方案——2D体感换装
  17. 次坐标从0开始_定位基础-坐标变换
  18. Unity 按住A键更改鼠标光标样式
  19. Prometheus监控(三)—— 钉钉和企业微信告警
  20. FDC2214学习笔记——如何从数字量确定电容值,胎教级别计算电容教程

热门文章

  1. coloros系统和android系统,Andriod 11体验包上线,ColorOS成最早适配的系统之一
  2. 偶然看见了,就收录下来,作为对自己的励志吧!
  3. QPM 之悬浮窗助力性能优化
  4. kali中的黑客反追踪技术(ABEPT)
  5. 精准拖动的svg小锥形
  6. InitializeCriticalSection
  7. 为什么您仍然需要 DDoS 设备
  8. 跳槽必看:BAT等互联网大厂的薪资情况和职级对标!
  9. 【时间之外】为什么WPS占用内存大?
  10. 联想服务器销售下降,联想PC、手机、服务器份额为何全线下滑