1.课程目标
如何分析GPU算法的速度和效率(speed and efficiency)
三个新的基本算法:归约,扫描和直方图(reduce,scan and histogram)
2.
3.再看之前讲的例子
考虑两件事
介绍几个概念
a.步骤(step):指的是 单人!完成某特定计算(比如挖洞)所需时间
b.工作总量(total amount of work):所有参与员工完成计算量的总值
也就是,人数 * 步数 = 工作总量
4.谈论算法时,将讨论两个成本
a.step complexity(步骤复杂度):一共分成几个步骤得到了最终结果,那个步骤数量
b.work complexity(工作复杂度):一共进行了多少次计算?
我们会用step complexity 或者work complexity来衡量一个算法,而这两个指标通常与input的大小是有关联的
5.
从数学定义开始
有两个输入(一个数组和一个运算符)运算符要具有两个性质:二元性和可结合性
6.
先看串行的归约(每一个操作都依赖前一个操作)
操作次数为4次,共计4 steps
这意味着工作复杂度(与节点数目一致)和步骤复杂度(操作总次数)都是和input成正比的
7.并行归约(就是想办法给他凑成可以一同运算的,互相不依赖的——改变运算次序)结合性保证了次序改变,结果不受影响