手把手教你cuda5.5与VS2010的编译环境搭建
来源:互联网 发布:计划进度表软件 编辑:程序博客网 时间:2024/06/05 05:48
转载地址:http://www.cnblogs.com/xing901022/p/3248469.html
目前版本的cuda是很方便的,它的一个安装里面包括了Toolkit`SDK`document`Nsight等等,而不用你自己去挨个安装,这样也避免了版本的不同步问题。
1 cuda5.5的下载地址,官方网站即可:
https://developer.nvidia.com/cuda-downloads 在里面选择你所对应的电脑版本即可。
2 VS2010这个没什么说的了,网上各种的免费资源,下载一个不需要钱的就行。
3 Cuda的安装:(win7版32bit)
3.1 cuda的安装文件
直接双击exe文件,弹出后,首先会监测一下你的运行环境,如果找不到Nividia对应的显卡设备,他会提示你是否要继续安装。这里面nvidia的显卡,最起码也是8800以上的,要不是无法编写CUDA的。千万不要电脑上面是intel或者AMD的显卡,却要编写cuda,除非你有钱买一个cuda-x86这个编译器。
3.2 弹出的对话框直接OK就行,这个是CUDA的一些安装文件,无所谓的:
3.3 他会监测你的电脑是否支持cuda的搭建,等待就行
3.4 系统检查
3.5 选择同意并继续
3.6 推荐先选择自定义安装
3.7 最主要的是cuda document\cuda Toolkit \cuda samples(SDK),Nsight\图形驱动程序,3D如果需要的话安装,不安装也无所谓。这里主要就是能看见都有什么,免得漏掉了,博主当初就因为选了精简安装,没安装上SDK。
3.7 安装的位置,推荐自己建三个好找的文件夹,不用他默认的路径,免得稍后配置环境变量麻烦。
博主的安装路径为:
3.8 下一步安装就行了。
至此,cuda的安装就搞定了。
4 接下来配置cuda的环境变量,默认安装好后,他会自动帮你设置好2个环境变量,但是最好还自己添加下其他的几个,方便日后配置vs使用
上面的两个环境变量是cuda默认配置的,接下来添加
CUDA_BIN_PATH %CUDA_PATH%\binCUDA_LIB_PATH %CUDA_PATH%\lib\Win32CUDA_SDK_BIN %CUDA_SDK_PATH%\bin\Win32CUDA_SDK_LIB %CUDA_SDK_PATH%\common\lib\Win32CUDA_SDK_PATH C:\cuda\cudasdk\common
添加完就行了
5 接下来是cuda的安装成功与否的监测了,这个步骤我们用到两个东西,这两个东西,都是cuda为我们准备好的。
deviceQuery.exe 和 bandwithTest.exe
首先启动cmd DOS命令窗口(博主的cuda安装到c:\cuda文件夹下)
默认进来的是c:\users\Admistrator\>路径,输入 cd .. 两次,来到c:目录下
输入dir 找到安装的cuda文件夹
进入Release文件夹后,直接执行bandwithTest.exe
再执行deviceQuery.exe
得到以上信息,因为我的显卡比较古老9300属于第一代的cuda显卡了。Rsult=PASS及说明,都通过了。如果Rsult=Fail 那不好意思,重新安装吧(或者是您的显卡真心不给力)。
5 最后就是VS的配置了
5.1 启动VS2010
5.2 新建一个win32的控制台工程,空的。
5.3 右键源文件文件夹->新建项->选择cuda c/c++->新建一个以.cu结尾的文件
5.4 右键工程-》生成自定义-》选择cuda生成
5.5 右键test.cu-》属性-》选择cuda c/c++编译器
5.6 右键工程-》属性-》链接器-》常规-》附加库目录-》添加目录 $(CUDA_PATH_V5_5)\lib\$(Platform);
5.7 在链接器-》输入中添加 cudart.lib
5.8 在工具-》选项-》文本编辑器-》文件扩展名-》添加cu \cuh两个文件扩展名
至此,编译环境的相关搭建就完成了。
下面提供了一段test.cu的代码,供测试使用:
#include <stdio.h>#include <stdlib.h>#include <cuda_runtime.h> #define DATA_SIZE 1024#define checkCudaErrors(err) __checkCudaErrors (err, __FILE__, __LINE__)#define getLastCudaError(msg) __getLastCudaError (msg, __FILE__, __LINE__)int data[DATA_SIZE];////////////////////////////////////////////////////////////////////////////////// These are CUDA Helper functions// This will output the proper CUDA error strings in the event that a CUDA host call returns an errorinline void __checkCudaErrors(cudaError err, const char *file, const int line ){ if(cudaSuccess != err) { fprintf(stderr, "%s(%i) : CUDA Runtime API error %d: %s.\n",file, line, (int)err, cudaGetErrorString( err ) ); return ; }}// This will output the proper error string when calling cudaGetLastErrorinline void __getLastCudaError(const char *errorMessage, const char *file, const int line ){ cudaError_t err = cudaGetLastError(); if (cudaSuccess != err) { fprintf(stderr, "%s(%i) : getLastCudaError() CUDA error : %s : (%d) %s.\n", file, line, errorMessage, (int)err, cudaGetErrorString( err ) ); return ; }}// end of CUDA Helper Functions__global__ static void sumOfSquares(int *num, int * result){ int sum=0; int i; for(i=0;i<DATA_SIZE;i++) { sum += num[i]*num[i]; } *result = sum;}void GenerateNumbers(int *number, int size){ for(int i = 0; i < size; i++) { number[i] = rand() % 10; printf("number[%d] is %d\n",i,number[i]); }} int main(){ cudaSetDevice(0); cudaDeviceSynchronize(); cudaThreadSynchronize(); GenerateNumbers(data, DATA_SIZE); int * gpudata, * result; int sum; checkCudaErrors( cudaMalloc((void**) &gpudata, sizeof(int)*DATA_SIZE)); checkCudaErrors(cudaMalloc((void**) &result, sizeof(int))); checkCudaErrors(cudaMemcpy(gpudata, data, sizeof(int)*DATA_SIZE,cudaMemcpyHostToDevice)); sumOfSquares<<<1, 1, 0>>>(gpudata, result); checkCudaErrors(cudaMemcpy(&sum, result, sizeof(int), cudaMemcpyDeviceToHost)); cudaFree(gpudata); cudaFree(result); printf("-----------sum: %d\n",sum); sum = 0; for(int i = 0; i < DATA_SIZE; i++) { sum += data[i] * data[i]; } printf("sum (CPU): %d\n", sum); getchar(); return 0;}
- 手把手教你cuda5.5与VS2010的编译环境搭建
- 手把手教你cuda5.5与VS2010的编译环境搭建
- 手把手教你cuda5.5与VS2010的编译环境搭建
- 手把手教你cuda5.5与VS2010的编译环境搭建
- 手把手教你cuda5.5与VS2010的编译环境搭建
- 手把手教你cuda5.5与VS2010的编译环境搭建
- 手把手教你cuda5.5与VS2010的编译环境搭建
- 手把手教你cuda5.5与VS2010的编译环境搭建
- 手把手教你cuda5.5与VS2010的编译环境搭建
- 手把手教你cuda5.5与VS2010的编译环境搭建
- 手把手教你cuda5.5与VS2010的编译环境搭建
- 手把手教你cuda5.5与VS2010的编译环境搭建
- CUDA5.5与VS2010的编译环境搭建
- CUDA5.5与VS2010的编译环境搭建
- cuda5.5与VS2010的编译环境搭建
- CUDA5.5与VS2010的编译环境搭建
- 手把手教你搭建powerpc(P2020)的ltib编译环境
- CUDA5.5+vs2010 环境配置
- Struts2插件 Config Browser Plugin
- Java常用类
- 【图像分割学习1】概述
- Android中App安装位置详解
- VS版本对应的 freamwork
- 手把手教你cuda5.5与VS2010的编译环境搭建
- Linux上如何通过 OpenVPN 建立安全的远程连接【下】
- STL:使用string、vector、complex和limits
- webService简介
- Unity3D WP8发布解决方案名 DefaultPackageName 修改问题
- C# Process.Start()方法详解
- Linux Kernel Shared Memory 剖析
- 深入浅出 - Android系统移植与平台开发(十一) - Sensor HAL框架分析之一
- 如何在Linux上配置基于Web的网络流量监控系统