Udacity cs344Unit 4-Introduction to Parallel Programming笔记(超详细,CUDA,并行,GPU)

1.啥是紧密(compact):这里的压缩指的是过滤,filter,过滤出一个子集,也就是只留我们想要的(比如一把扑克牌里的方片)

(只计算我们关心的对象才更有意义,计算代价较小,需要更少空间)

2.

3.密集运算好一点?为啥

第一个稀疏运算要启动52个线程,而其中39个线程都是空的(线程成本较高)

第二个虽然过滤出方片会有成本,但是在接下来的映射步骤中它只启动13个线程

4.过滤的步骤

1)对每个元素进行判定

2)记录进数组里面

3)用不包含扫描的方法记录一共需要多少个地址

4)把过滤出来的结果放进地址里(放进输出数组里)

5.稀疏矩阵的表示方法

6.表示出来了怎么算?

将向量(x,y,z)与column的值相对应

列出column的xyz表示形式

之后对应相乘相加即可

本质是过滤掉了所有带0的项

所以越稀疏的矩阵越有效

7.排序(并行环境下)

奇偶排序法

8.归并排序

串行

并行

当归并到越顶层的时候,所占用的线程越少,也就是大部分SM都处于空闲状态,这是不利的,那么我们要考虑:

处理的三个阶段

9.双调排序网

什么是双调序列,为啥需要双调序列

只有一个转折点的就是双调序列

排序一个双调序列特别容易,为啥呢?

可以有效的缩小规模

10.单双归并排序

11.radix sort基数排序

将每个word的序号用二进制表示出来,从二进制表示数的最末位,把是0的按顺序排,再把是1的按顺序排

接着是倒数第二位,以此类推

一共交换的次数与二进制的位数相同

问题的解决难度与问题规模程正相关

12.快速排序

这就是递归,而到目前为止,我们所学的GPU是不支持递归的,那咋办?

先看自己手里有啥工具

13.键排序(比如按照年级排姓名。如果排的东西太大,就直接另存一下,记一个地址就行)

猜你喜欢

转载自blog.csdn.net/Ria_Ria/article/details/81117463
今日推荐