小卒第三次配置CUDA了,才发现自己这次配置学会了很多,为了记录自己的成长,也为了和大家分享CUDA的配置方法,下面我讲把整个配置过程自己觉得重要的地方记录下来。
一、什么是CUDA
CUDA(Compute Unified Device Architecture),是显卡厂商NVIDIA推出的运算平台。 CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。 开发人员现在可以使用C语言来为CUDA™架构编写程序,C语言是应用最广泛的一种高级编程语言。所编写出的程序于是就可以在支持CUDA™的处理器上以超高性能运行。
二、CUDA的实用价值以及发展展望
CUDA(Compute Unified Device Architecture)是一个新的基础架构,这个架构可以使用GPU来解决商业、工业以及科学方面的复杂计算问题。它是一个完整的GPGPU解决方案,提供了硬件的直接访问接口,而不必像传统方式一样必须依赖图形API接口来实现GPU的访问。在架构上采用了一种全新的计算体系结构来使用GPU提供的硬件资源,从而给大规模的数据计算应用提供了一种比CPU更加强大的计算能力。CUDA采用C语言作为编程语言提供大量的高性能计算指令开发能力,使开发者能够在GPU的强大计算能力的基础上建立起一种效率更高的密集数据计算解决方案。
从CUDA体系结构的组成来说,包含了三个部分:开发库、运行期环境和驱动。
开发库是基于CUDA技术所提供的应用开发库。目前CUDA的1.1版提供了两个标准的数学运算库--CUFFT(离散快速傅立叶变换)和CUBLAS(离散基本线性计算)的实现。这两个数学运算库所解决的是典型的大规模的并行计算问题,也是在密集数据计算中非常常见的计算类型。开发人员在开发库的基础上可以快速、方便的建立起自己的计算应用。此外,开发人员也可以在CUDA的技术基础上实现出更多的开发库。
运行期环境提供了应用开发接口和运行期组件,包括基本数据类型的定义和各类计算、类型转换、内存管理、设备访问和执行调度等函数。基于CUDA开发的程序代码在实际执行中分为两种,一种是运行在CPU上的宿主代码(Host Code),一种是运行在GPU上的设备代码(Device Code)。不同类型的代码由于其运行的物理位置不同,能够访问到的资源不同,因此对应的运行期组件也分为公共组件、宿主组件和设备组件三个部分,基本上囊括了所有在GPGPU开发中所需要的功能和能够使用到的资源接口,开发人员可以通过运行期环境的编程接口实现各种类型的计算。
三、CUDA的配置
1、添加环境变量
在这里,笔者希望你下的是最新版的CUDA,因为在最新版的CUDA中已经集成自动的环境变量安装程序,在CUDA安装好之后,系统会自动添加两个环境变量CUDA_PATH以及动态库的变量。所以这里就不用做处理了。
2、VS软件的配置
项目名称上右键->属性,然后:
(路径以你的电脑实际为准)
(注意配置平台信息32位 还是64位,还有Release和Debug)
VC++目录下的:
包含目录 添加以下内容:
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v8.0\common\inc
C:\Program Files\NVIDIA GPU ComputingToolkit\CUDA\v8.0\include
库目录 添加以下内容:
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v8.0\common\lib\x64
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\lib\x64
在链接器 下的:
输入->附加依赖项 添加(注意发布版本不一样,Debug版的带“d”, Release版的不带)
添加以下内容
Debug:
cublas.lib
cublas_device.lib
cuda.lib
cudadevrt.lib
cudart.lib
cudart_static.lib
cufft.lib
cufftw.lib
curand.lib
cusolver.lib
cusparse.lib
nppc.lib
nppi.lib
nppial.lib
nppicc.lib
nppicom.lib
nppidei.lib
nppif.lib
nppig.lib
nppim.lib
nppist.lib
nppisu.lib
nppitc.lib
npps.lib
nvblas.lib
nvcuvid.lib
nvgraph.lib
nvml.lib
nvrtc.lib
OpenCL.lib