CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。开发人员现在可以使用C语言来为CUDA™架构编写程序,C语言是应用最广泛的一种高级编程语言。所编写出的程序于是就可以在支持CUDA™的处理器上以超高性能运行。 将来还会支持其它语言,包括FORTRAN以及C++。
随着显卡的发展,GPU越来越强大,而且GPU为显示图像做了优化。在计算上已经超越了通用的CPU。如此强大的芯片如果只是作为显卡就太浪费了,因此NVidia推出CUDA,让显卡可以用于图像计算以外的目的。
目前只有G80、G92、G94和GT200平台的NVidia显卡才能使用CUDA,工具集的核心是一个C语言编译器。G80中拥有128个单独的ALU,因此非常适合并行计算,而且数值计算的速度远远优于CPU。
目前,支持CUDA的GPU销量已逾1亿,数以千计的软件开发人员正在使用免费的CUDA软件开发工具来解决各种专业以及家用应用程序中的问题。这些应用程序从视频与音频处理和物理效果模拟到石油天然气勘探、产品设计、医学成像以及科学研究,涵盖了各个领域。目前市面上已经部署了超过一亿颗支持CUDA的GPU,数以千计的软件开发人员正在使用免费的CUDA软件工具来为各种应用程序加速。
以上引自百度百科,地址http://bike.baidu.com/view/1488597.htm。
以下依据CUDA_Getting_Started_2.2_Linux.pdf
安装过程:
首先要确定显卡是否支持CUDA运算。
目前支持CUDA的GPUs有
NVIDIA GeForce 8,9和200系列GPUs
NVIDIA Tesla 系列
NVIDIA Quadro的某些产品
更详细的列表见http://www.nvidia.com/object/cuda_learn_products.html。
检测显卡型号:
sudo update-pciids
lspci | grep -i nVidia
得到:
01:00.0 VGA compatible controller: nVidia Corporation G92 [GeForce 9600 GSO] (rev a2)
检查系统:
版本2.2支持的linux系统包括
Red Hat Enterprise Linux 4.3-4.7, 5.0-5.3
SUSE Enterprise Desktop 10-SP2
Open SUSE 11.0 or 11.1
Fedora 9 or 10
Ubuntu 8.04 or 8.10
uname -a && cat /etc/*release
得到:
Linux * 2.6.24-24-generic #1 SMP Tue Jul 7 19:46:39 UTC 2009 i686 GNU/Linux
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=8.04
DISTRIB_CODENAME=hardy
DISTRIB_DESCRIPTION=”Ubuntu 8.04.3 LTS”
gcc是否安装?支持gcc版本3.4及以上。
gcc –version
得到:
gcc.real (GCC) 4.2.4 (Ubuntu 4.2.4-1ubuntu4)
Copyright (C) 2007 Free Software Foundation, Inc.
以上软硬件通过之后,就准备安装CUDA吧。
去下载适合你系统的驱动和安装文件,地址:http://www.nvidia.com/object/cuda_get.html
三个文件:
nVidia driver:NVIDIA-Linux-x86-185.18.14-pkg1.run
CUDA Toolkit:cudatoolkit_2.2_linux_32_ubuntu8.04.run
CUDA SDK:cudasdk_2.21_linux.run
nVidia driver安装看这里。
如果以前安装过CUDA Toolkit或SDK,其默认的安装目录为
Toolkit:/usr/local/cuda/
SDK:~/NVIDIA_CUDA-SDK/
只要把这些目录下的文件删除即可。
以root身份安装Toolkit,以一般用户身份安装SDK。
环境变量的设置:
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib:$LD_LIBRARY_PATH
也可以把以上两条命令写到~/.bashrc中。
注:ubuntu中环境变量写在.bashrc或.profile文件中。
安装之后,要确认安装是否有效,cuda能否编译。
首先可以检测Toolkit的版本
nvcc -V
可以得到
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2009 NVIDIA Corporation
Built on Thu_Apr__9_07:37:20_PDT_2009
Cuda compilation tools, release 2.2, V0.2.1221
运行代码算例
进入到~/NVIDIA CUDA SDK/下执行make生成的可执行文件位于~/NVIDIA CUDA SDK/bin/linux/release/下边。
查询设备
进入到~/NVIDIA CUDA SDK/bin/linux/release/下执行
./deviceQuery
得到
CUDA Device Query (Runtime API) version (CUDART static linking)
There is 1 device supporting CUDADevice 0: “GeForce 9600 GSO”
CUDA Capability Major revision number: 1
CUDA Capability Minor revision number: 1
Total amount of global memory: 401932288 bytes
Number of multiprocessors: 12
Number of cores: 96
Total amount of constant memory: 65536 bytes
Total amount of shared memory per block: 16384 bytes
Total number of registers available per block: 8192
Warp size: 32
Maximum number of threads per block: 512
Maximum sizes of each dimension of a block: 512 x 512 x 64
Maximum sizes of each dimension of a grid: 65535 x 65535 x 1
Maximum memory pitch: 262144 bytes
Texture alignment: 256 bytes
Clock rate: 1.51 GHz
Concurrent copy and execution: Yes
Run time limit on kernels: Yes
Integrated: No
Support host page-locked memory mapping: No
Compute mode: Default (multiple host threads can use this device simultaneously)Test PASSED
Press ENTER to exit…
测试带宽
进入到~/NVIDIA CUDA SDK/bin/linux/release/下执行
./bandwidthTest
可得到
Running on……
device 0:GeForce 9600 GSO
Quick Mode
Host to Device Bandwidth for Pageable memory
.
Transfer Size (Bytes) Bandwidth(MB/s)
33554432 1427.7Quick Mode
Device to Host Bandwidth for Pageable memory
.
Transfer Size (Bytes) Bandwidth(MB/s)
33554432 1298.5Quick Mode
Device to Device Bandwidth
.
Transfer Size (Bytes) Bandwidth(MB/s)
33554432 36049.6&&&& Test PASSED
Press ENTER to exit…

相关阅读:

你好,是否支持cuda需要查看你的显卡型号是否在cuda支持之列。如果显卡支持的话,最稳妥的办法是去nvidia官网下载其针对你的显卡型号提供的最新显卡驱动。
你好,我用的时ubuntu11.04,然后用新立得安装的nvdia显卡驱动,请问该驱动支持CUDA吗,还是要下载专门支持CUDA的显卡驱动?谢谢你了!