安装的时候是参考了B,C,但是安装完之后发现了A,和我的安装过程一样,推荐参考A进行安装,原文放在最下面。
A http://zhangxiaoya.github.io/2015/06/10/install-on-windows8-1/
B http://www.360doc.com/content/15/0715/10/8426204_485017386.shtml
C http://blog.sina.com.cn/s/blog_534497fd0102vbu3.html 4(2)没出现,但是第一次生成时成功 134 个,失败 10 个
注意:默认安装目录为C:ProgramDataNVIDIA Corporation ProgramData为隐藏文件夹,可以直接搜索。最好直接将cuda解压到默认路径下,安装时并没有看到可以选路径。第一安装时解压在其他地方,然后加载项目不成功,估计某些细节的地方要改,偷懒直接解压在默认路径下了。
自动生成环境变量 CUDA_PATH_V7_0
cuda目录 C:Program FilesNVIDIA GPU Computing ToolkitCUDAv7.0
C:ProgramDataNVIDIA CorporationCUDA Samplesv7.0.........
头文件目录 C:ProgramDataNVIDIA CorporationCUDA Samplesv7.0commoninc
C:Program FilesNVIDIA GPU Computing ToolkitCUDAv7.0include
I:APPsinstallcaffe-windows3rdpartyinclude
[转载]在Windows8.1上安装CUDA
原文链接 http://zhangxiaoya.github.io/2015/06/10/install-on-windows8-1/
@(Program Primer)
需要对比试验,但是作者提供的程序需要是使用CUDA
,在两个台式机上测试,都不能通过,笔记本的显卡是配置最高的,在自己的笔记本上配置环境跑程序,刚才尝试了一下,还好,能用了。在Windows平台上配置环境挺简单的,还是记录一下,方便以后查看。
检查显卡
虽然是N卡,但是还是检查一下显卡是否支持。 我的机器的基本配置:
- 处理器 intel i5 四线程
- 内存 4GB * 2
- 显卡 NVIDIA Geforce 755m 2GB
- 系统 Windows 8.1 64 bit 中文版
也可以在设备管理器中查看自己机器的显卡。
在NVIDIA的官方网站查看显卡是否在支持的列表中。 但是,这个表不是特别全。也可以在其硬件设备网站中查看是否支持。
或者使用GPU-Z
查看是否支持,不过这个软件也是有问题。 最好的是查看硬件的支持信息。
不过也有在百度上直接问的,比如这位同学。
注意:
下载的安装包实际上是安装三个东西
- Toolkit 各种工具的集合,提供了矩阵计算的各种工具
- GDK 提供一些库函数,我看的意思貌似 是ML(Machine Learning)的库,其实不是啦,是NVIDIA Management Library的意思。
- Samples 提供了一些例子
开始安装
检查发现显卡支持CUDA,那果断安装。
-
在NVIDIA的官网,上找到
CUDA ZONE
,可以在这里了解更多关于CUDA
的知识; -
在CUDA下载页面选择合适的系统平台,下载对应的开发包,我下载的是
Win8.1
版本的,但是我发现怎么只有Win8.1
下有链接,其他的系统平台下没有链接,难道都是一样的? -
安装,整个安装过程比较简单,就类似于普通的软件安装,但是要提醒一下,一定要安装
Visual Studio 2010
或者更高版本,比如Visual Studio 2012
和Visual Studio 2013
,CUDA7.0
都是支持的。安装路径也是可以选择的。 -
安装过程看电脑的性能了,我大约安装了10多分钟。
-
验证安装,打开命令提示框(就是cmd),输入命令
nvcc - V
,查看CUDA
的版本。若是安装正确的话,会出现下面的结果;若不正确,我也不知道啦。
... 144> 正在删除文件“x64/Debug/alignedTypes.unsuccessfulbuild”。 144> 正在对“x64/Debug/alignedTypes.lastbuildstate”执行 Touch 任务。 144> 144>生成成功。 144> 144>已用时间 00:01:07.49 ========== 生成: 成功 134 个,失败 10 个,最新 0 个,跳过 0 个 ==========
其他验证方式
网上的教程还给了其他的验证方式,比如这篇文章提到了用deviceQuery.exe
验证,我找了半天也没找到这个可执行程序,后来发现原来这是一个例子,按照其他文章说的,在安装的时候就把例子也给编译了,我仔细的检测,发现我的没有编译,只能自己编译了。
-
在例子的安装目录下,找到解决方案的名字。比如我的例子的安装路径是
D:ApplicationProgramDataNVIDIA CorporationCUDASamplesv7.0
,若版本号跟我的一样的话,应该是有三个解决方案,对应不同的版本,比如我的有Samples_vs2010.sln
、Samples_vs2012.sln
和Samples_vs2013.sln
,我的机器只是安装了Visual Studio 2010
因此,只能打开第一个解决方案。 -
开始漫长的编译过程,选择
Visual Studio 2010
的生成->生成解决方案或者直接按F7
键,开始Build
。
Visual Studio这个环境好用,但是也会有各种奇葩的错误,在构建例子的过程中,有10个例子没有成功,先不管了,绝大多数都成功了。
下面是我的构建日志的最后部分:
... 144> 正在删除文件“x64/Debug/alignedTypes.unsuccessfulbuild”。 144> 正在对“x64/Debug/alignedTypes.lastbuildstate”执行 Touch 任务。 144> 144>生成成功。 144> 144>已用时间 00:01:07.49 ========== 生成: 成功 134 个,失败 10 个,最新 0 个,跳过 0 个 ==========
结束Build
后,就会在对应的目录中找到deviceQuery.exe
了,在命令行中运行这个程序,会得到如下的结果:
deviceQuery.exe Starting... CUDA Device Query (Runtime API) version (CUDART static linking) Detected 1 CUDA Capable device(s) Device 0: "GeForce GT 755M" CUDA Driver Version / Runtime Version 7.0 / 7.0 CUDA Capability Major/Minor version number: 3.0 Total amount of global memory: 2048 MBytes (2147483648 bytes) ( 2) Multiprocessors, (192) CUDA Cores/MP: 384 CUDA Cores GPU Max Clock rate: 1020 MHz (1.02 GHz) Memory Clock rate: 2700 Mhz Memory Bus Width: 128-bit L2 Cache Size: 262144 bytes Maximum Texture Dimension Size (x,y,z) 1D=(65536), 2D=(65536, 65536),3D=(4096, 4096, 4096) Maximum Layered 1D Texture Size, (num) layers 1D=(16384), 2048 layers Maximum Layered 2D Texture Size, (num) layers 2D=(16384, 16384), 2048 layers Total amount of constant memory: 65536 bytes Total amount of shared memory per block: 49152 bytes Total number of registers available per block: 65536 Warp size: 32 Maximum number of threads per multiprocessor: 2048 Maximum number of threads per block: 1024 Max dimension size of a thread block (x,y,z): (1024, 1024, 64) Max dimension size of a grid size (x,y,z): (2147483647, 65535, 65535) Maximum memory pitch: 2147483647 bytes Texture alignment: 512 bytes Concurrent copy and kernel execution: Yes with 1 copy engine(s) Run time limit on kernels: Yes Integrated GPU sharing Host Memory: No Support host page-locked memory mapping: Yes Alignment requirement for Surfaces: Yes Device has ECC support: Disabled CUDA Device Driver Mode (TCC or WDDM): WDDM (Windows Display Driver Model) Device supports Unified Addressing (UVA): Yes Device PCI Domain ID / Bus ID / location ID: 0 / 1 / 0 Compute Mode: < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) > deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 7.0, CUDA Runtime Version = 7.0, NumDevs = 1, Device0 = GeForce GT 755M Result = PASS
写一个小程序
-
在Visual Studio 2010 中新建一个空项目
-
添加新建项
-
在新建项对话框窗口左侧,选择NVIDIA CUDA7.0—Code
-
在右侧的列表框中选择CUDA C/C++ File,名字任意,不过最好选择一个有意义的名字
-
右键工程名字,选择生成自定义,在CUDA7.0项前的复选框,选中
-
右键新建的CUDA文件,后缀名是
.cu
,选择属性,将常规项中的,项类型修改为CUDA C/C++
-
又将工程名字,选择属性,选择链接器 : 打开常规,编辑附加目录,添加内容
$(CUDA_PATH_V7_0)lib$(Platform)
; 打开输入,编辑附加依赖项,添加内容cudart.lib
-
在CUDA文件中添加以下测试代码:
-
#include< stdio.h> #include "cuda_runtime.h" #include "device_launch_parameters.h" bool InitCUDA() { int count; cudaGetDeviceCount(&count); if(count == 0) { fprintf(stderr, "There is no device. "); return false; } int i; for(i = 0; i < count; i++) { cudaDeviceProp prop; if(cudaGetDeviceProperties(&prop, i) == cudaSuccess) { if(prop.major >= 1) break; } } if(i == count) { fprintf(stderr, "There is no device supporting CUDA 1.x. "); return false; } cudaSetDevice(i); return true; } int main() { if(!InitCUDA()) return 0; printf("Hello World, CUDA has been initialized. "); getchar(); return 0; }
若设备没有问题的话,正确的输出结果是:
Hello World, CUDA has been initialized.