所谓线程映射是指某个线程访问哪一部分数据,其实就是线程id和访问数据之间的对应关系。合适的线程映射可以充分利用硬件特性,从而提高程序的性能,反之,则会降低performance。请参考StaticMemoryAccessPatternAnalysisonaMassivelyParallelGPU这篇paper,文中讲述线程如何在算法中充分利用线程映射。这是我在google中搜索到的下载地址:http://www.ece.neu.edu/~bjang/patternAnalysis.pdf使用不同的线程映射,同一个线程可能访问不同位置的数据。下面是几个线程映射的例子:我们考虑一个简单的串行矩阵乘
2021-03-04 09:07:31 808KB AMDOpenCL大学课程(7)
1
教程中的英文很简单,我相信学OpenCL的人都能看得懂,而且看原汁原味的英文表述,更有利于我们了解各种术语的来龙去脉。我把这些教程翻译成自己的中文表述,主要是强化理解需要,其实我的英文很烂。在计算机术语中,并行性是指:把一个复杂问题,分解成多个能同时处理的子问题的能力。要实现并行计算,首先我们要有物理上能够实现并行计算的硬件设备,比如多核CPU,每个核能同时实现算术或逻辑运算。通常,我们通过GPU实现两类并行计算:任务并行:把一个问题分解为能够同时执行的多个任务。数据并行:同一个任务内,它的各个部分同时执行。下面我们通过一个农场主雇佣工人摘苹果的例子来描述不同种类的并行计算。1.摘苹果的工人就
2021-03-03 21:08:06 298KB AMDOpenCL大学课程(1)
1