前言
CUDA并行程序设计系列是本人在学习CUDA时整理的资料,内容大都来源于对《CUDA并行程序设计:GPU编程指南》、《GPU高性能编程CUDA实战》和CUDA Toolkit Documentation的整理。通过本系列整体介绍CUDA并行程序设计。内容包括GPU简介、CUDA简介、环境搭建、线程模型、内存、原子操作、同步、流和多GPU架构等。
本系列目录:
- 【CUDA并行程序设计系列(1)】GPU技术简介
- 【CUDA并行程序设计系列(2)】CUDA简介及CUDA初步编程
- 【CUDA并行程序设计系列(3)】CUDA线程模型
- 【CUDA并行程序设计系列(4)】CUDA内存
- 【CUDA并行程序设计系列(5)】CUDA原子操作与同步
- 【CUDA并行程序设计系列(6)】CUDA流与多GPU
- 关于CUDA的一些学习资料
本文对CUDA进行简单介绍,并通过实例代码演示怎么编写在GPU上运行的代码,最后写一段代码来查询本机GPU的设备参数。
CUDA C简介
CUDA C是NVIDIA公司设计的一种编程语言,用于在GPU上得编写通用计算程序,目前也叫“ CUDA C and C++”,或者“CUDA C/C++”。CUDA C是C语言的扩展,所以使用起来和C语言类似。当然,CUDA现在已经不局限于C语言了,在NVIDIA ZONE的LANGUAGE SOLUTIONS就明确支持多种语言和开发环境,如:C++、Python、Java、.Net、OpenACC、OpenCL等,操作系统也支持Linux、Mac OS、Windows。当然,前提是电脑至少配备一个支持CUDA的GPU,在NVIDIA官方可以查看自己电脑的显卡是否支持CUDA。
GPU计算能力
在查看某个显卡是否支持CUDA时,还会看到一个计算能力(Compute Capability)的参数。正如不同的CPU有着不同的功能和指令集,对于支持CUDA的GPU也同样如此。NVIDIA将GPU支持的各种功能统称为计算能力。硬件的计算能力是固定的。不同计算能力具有一定差别,如,在计算能力1.0版本不支持全局内存上的原子操作。更高计算能力的GPU是低计算能力的超级,所以计算能力2.0支持的功能在3.0也全部支持。可以看到,目前GPU最高的计算能力已经达到5.3(Tegra X1)。
环境搭建
环境搭建比较简单,在NVIDIA开发官网选择对应的平台下载最新版(目前是7.5)并安装就行了。在CUDA Toolkit Online Document