Heterogeneous Parallel Programming(异构并行编程)学习笔记(三)
来源:互联网 发布:sql anywhere 5.0下载 编辑:程序博客网 时间:2024/05/16 04:49
米国人都去过圣诞了,这次内容不多。
1. Bursting
由于种种原因,DRAM的核心速度低于接口速度,因此引入了所谓Bursting的技术。Bursting,是指当读取DRAM时,返回所读取的位以及其后连续的许多位,以增加访问速度。若其后的连续位没有被用到,则被丢弃。比如,DRAM的核心速度是接口速度的1/N倍,则在一次读取中,取出N × 接口位宽的数据,然后在N时间段中以接口速度传输。1/N × N × 接口位宽,这样就充分地利用了接口位宽。
2. 内存合并(Memory Coalescing)
从上面可以看出,如果程序读取的是在内存中的连续数据,则读取速度会快很多,最多可达N倍。更具体一些,我们要让各线程在同一步中访问的是在内存中连续的数据。以之前的简单矩阵相乘为例,它的访问模型如下:
我们知道二维矩阵是以行优先的一维数组形式存放的。那么,对d_N来说,各线程是水平并行排列的,在同一时间,它们所需要的数据是水平连续的。因此,读取d_N矩阵是内存合并的,每一个Bursting出来的数据都得到了利用。相反,d_M则是垂直并行的,每一次的内存读取只有读取的位得到利用,后续连续部分都被丢弃。因此,读取d_M矩阵不是内存合并的,效率很低。
3. 边界条件
在分块算法中,由于待计算的矩阵可能不是正方的,导致有些分块可能越过边界。一种简单的思路是将原矩阵进行填充,使其大小正好为分块大小的整数倍。这样做会带来很大的数据传输开销。
边界情况分为两种,以C = A × B为例,第一种是A和B中的部分分块可能越过边界,这样读取时会访问到错误的数据;第二种是C中的部分分块可能越过边界,这样计算时会产生错误,存储时会溢出。如下图所示:
M和N矩阵是第一种情况,而待计算的P矩阵是第二种情况。
这里采用另外一种很简单的办法。在读取数据时,判断位置是否越过边界,若没有,则读取该位置,若是,则赋值为0;在计算和存储数据时判断位置,只有当位置在边界内时才计算和存储。
- Heterogeneous Parallel Programming(异构并行编程)学习笔记(三)
- Heterogeneous Parallel Programming(异构并行编程)学习笔记(一)
- Heterogeneous Parallel Programming(异构并行编程)学习笔记(二)
- Heterogeneous Parallel Programming(异构并行编程)学习笔记(四)
- Heterogeneous Parallel Programming(异构并行编程)学习笔记(五)
- Heterogeneous Parallel Programming(异构并行编程)学习笔记(六)
- Heterogeneous Parallel Programming(异构并行编程)学习笔记(七)
- Java并行编程(parallel programming)
- Heterogeneous Parallel Programming 随笔一
- Heterogeneous Parallel Programming 随笔二
- Java并行编程(parallel programming) 2
- CUDA - Heterogeneous Parallel Processing 笔记
- Parallel Programming-实现并行操作的流水线(生产者、消费者)
- Oracle 并行(Parallel)
- Java并发编程三:并发(Concurrent)与并行(Parallel)的区别(一)
- Hawq学习笔记 --- MPP(大规模并行处理)架构(Massively Parallel Processing)
- Lesson1: Udacity parallel programming 学习笔记
- 并行处理(Parallel Processing)
- Bitmap、Graphics
- 几个常用的oracle函数
- 扩展Ext的DateFIeld,实现月、周、天的输入
- Cookie的基本使用
- 连接xmanager的配置方法(包含redhat、suse等大部分os版本)
- Heterogeneous Parallel Programming(异构并行编程)学习笔记(三)
- vim 寄存器
- 黑马程序员_银行业务调度系统
- java线程池
- snmp小记
- mysql的中文乱码
- suse linux原创案例04: ssh连接反应慢问题
- Python入门教程 超详细1小时学会Python
- esx linux下出现repair filesystem解决办法