前言
在硬件篇中已经安装了Tesla K40加速卡安装在机箱中,接下来详细记录一下软件环境的搭建,更深层地,试着研究如何将该卡应用在大型工程运算中,主要是Visual Studio和Matlab环境下的运算。
软件安装环境
为了应对以后可能出现的这种错误,现记录搭建环境的过程,以及在实验室PC中的实际情况。先上搭建环境的官方教程
该教程不仅给出了环境搭建方法,环境搭建成功与否的测试方法,还给出了普通vs工程执行加速服务的方法。
现将英文版废话去掉,整理以下内容。
实验室软件环境介绍:
- 操作系统:win8 64bit
- vs版本: 2013
- 远程登录信息
- LAN地址:192.168.1.222
- user:Administrator
- pwd:1111
环境搭建只需要4个东西:
- 一个GPU
- 一个Windows操作系统
- 一个VisualStudio
- 一个toolkit
安装
安装NVIDIA CUDA Toolkit
首先介绍CUDA,这东西就是英伟达开发的一个platform,在这个平台上,我们才可以使用GPU强大的性能(主要是并行的高性能计算);
按我的个人理解:Nvidia CUDA Toolkit之于Visual Studio,就像ADT(Android Development tools)之于Eclipse
都是相当于给IDE安装了一个强大的插件,使其能够支持某些特定的编程需求。按照说明文档的介绍,当你在vs中建立一个CUDA工程后,这个工程就是一个预先配置了CUDA build格式的C++工程 (.vcxproj) ,C++工程怎么编,这个就怎么编!(是否需要引入其他库什么的,待实践)。
这东西做的非常好,把要用的东西,集成在一个一个.exe中了,下载
最终是一个将近1GB的可执行文件,实验室安装的是版本是cuda_6.5.14_windows_general_64_bit
该版本适合win7与win8,按照文档顺序,本应该安装驱动,但我们在安装这个tookit的过程中,它已经帮忙把驱动、cuda、用例、与vs连接,甚至环境变量都已经安装设置完毕。
安装这么个软件,实际上环境就已经搭建好了。
toolkit安装路径分解
有必要分解一下安装路径,因为该环境下的好多操作工具和用例都在这些目录下,这里列出来,方便查找.
有这么几个玩意儿总是要提到:
- CUDA Toolkit
路径: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5- Bin\ the compiler executables and runtime libraries
- Include\ the header files needed to compile CUDA programs
- Lib\the library files needed to link CUDA programs
- Doc\the CUDA documentation, including:
- CUDA C Programming Guide
- CUDA C Best Practices Guide
- documentation for the CUDA libraries
- other CUDA Toolkit-related documentation
CUDA Samples
路径: C:\Application Data\NVIDIA Corporation\CUDA Samples\v6.5.不同类型的例子分装在
0_Simple, 1_Utilities, 2_Graphics, 3_Imaging, 4_Finance, 5_Simulations, 6_Advanced, 7_CUDALibraries 都是已经编译好的,可以挑一些运行一下,运行方法见Note
重要工具和文档
结合上面的过程,这里说明几个重要工具
nvidia-smi路径:C:\Program Files\NVIDIA Corporation\NVSMI
GPU的控制台: 状态监测、模式切换,可以将其添加到环境变量了,所以打开cmd后课直接运行nvidia-smi 可以之间看见GPU的运行情况。
nvidia-smi -h查看命令帮助,另外,在其目录下有nvidia-smi.pdf使用文档nvidia-smi -dm 1/0更改显卡的驱动模式 1:TCC / 0:WDDMnvcc
路径:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\bin
这东西是相当于gcc,也就是cuda下的compiler,就酱~~
还是针对cuda toolkit的命令行工具,查看cuda的版本就用这东西了
nvcc -v,其他命令还没研究。CUDA文档,上面已经给出了
Note
Note0:必须保证系统当前的驱动环境在TCC(一种支持tesla卡的驱动模式)模式下.
Note1:好多工具都是通过cmd打开,并在命令行下工作,如果哪些命令提示“不是系统命令”,把该命令所在的路径添加到环境变量path中。
Note2:如果直接双击.exe文件,会闪退看不到结果,需要在cmd运行。
Note3:如命令行下运行test.exe文件,需要在test.exe文件所在文件夹的空白处,按shift+右键,之后选择“在此处运行命令行”然后输入test即可。
啥是TCC和WWDM?
这就是NVIDIA的两种驱动模式,TCC只支持undisplay的device,如我们的tesla卡;而WWDM就是windows下正常的驱动模式,两种模式切换方法用上面的nvidia-smi -dm 后接0或1即可,更改后需要重启。
下面这段除了环境搭建者可忽略
现在即使切换回WWDM也并不能使心脏机的显示器显示内容,原因是当pci插入类显卡设备后,主板的集成显卡将被屏蔽,所以只要pci插着tesla,主板都会将其识别为独立显卡设备,再加上我们也没有做集显与tesla的交火,所以显示屏无法显示。
我猜想的解决方法:以后换主板时,考虑到可能再加一块tesla,所以建议买带有3个以上pci-e 16x插槽的主板,除了两个tesla,再加一个普通独立显卡的位置,这样关掉TCC模式后,应该能够使普通独立显卡启动,以驱动显示器。
至于多tesla,以及和独显的交火
通过cuda给程序加速
这个博客很有用,但是新建项目那部分没有用
vs下的C/C++工程
按照此博客的过程,这是4.2版本的,6.5版本按以下过程设置即可:
新建win32控制台项目;
在向导的应用程序设置中选择空项目复选框;
然后向项目添加文件,文件夹类型可选择cpp文件夹,写名称时可直接写.cu文件,也可以写成.cpp之后再进行重命名;
在项目名称上右击,快捷菜单中选择“生成自定义”命令,在打开的对话框中选择CUDA6.5;
右键.cu文件,选择属性,项类型设为 CUDA C/C++;
右键项目名称,选择属性,检查一下,保持默认;
linker–>输入–>附加以来库中添加”cudart.lib;”
cu文件中添加以下头文件
#include
#include
#include//提供了时间计算的功能函数 - 若使用arrayfire,则需要属性–VC++目录–包含目录。 添加AF_PATH
以上步骤可以使cuda工程在VS中直接build–run
另: 对.cu文件可以用nvcc工具手动编译
另: 关于cuda的运行时间
2.MATLAB
去网上查matlab cuda一大推教程:
环境我已配好,只用过程做简单整理.
done!