CUDA 并行计算
CUDA 并行计算
并行计算可以被定义为同时使用许多计算资源 (核心或计算机) 来执行并发计算,一个大的问题可以被分解成多个小问题,然后在不同的计算资源上并行处理这些小问题。
所有包含并发执行任务的程序都是并行程序。
在应用程序中有两种基本的并行类型:任务并行和数据并行。
当许多任务或函数可以独立地、大规模地并行执行时,这就是任务并行。任务并行的重点在于利用多核系统对任务进行分配。
当可以同时处理许多数据时,这就是数据并行。数据并行的重点在于利用多核系统对数据进行分配。
CUDA 编程非常适合解决数据并行计算的问题。数据并行处理可以将数据映射给并行线程。
数据并行程序设计的第一步是把数据依据线程进行划分,以使每个线程处理一部分数据。有两种方法可以对数据进行划分:块划分 (block partitioning) 和周期划分 (cyclic partitioning)。
在块划分中,一组连续的数据被分到一个块内。每个数据块以任意次序被安排给一个线程,线程通常在同一时间只处理一个数据块。
在周期划分中,更少的数据被分到一个块内。相邻的线程处理相邻的数据块,每个线程可以处理多个数据块。为一个待处理的线程选择一个新的块,就意味着要跳过和现有线程一样多的数据块。
数据是在一维空间中存储的。即便是多维逻辑数据,仍然要被映射到一维物理地址空间中。
对数据划分有两种基本的方法:
块划分:每个线程作用于一部分数据,通常这些数据具有相同大小。
周期划分:每个线程作用于数据的多部分。
chapter ['tʃæptə]:n. 章,回,(俱乐部、协会等的) 分会,人生或历史上的重要时期 vt. 把...分成章节
graphics processing unit,GPU
application programming interface,API
central processing unit,CPU
general-purpose computing on graphics processing units,GPGPU and GPGP
high-performance computing,HPC
Harvard architecture:哈佛体系结构
Compute Unified Device Architecture,CUDA:统一计算架构
还没有评论,来说两句吧...