并行计算 week3

本文探讨了GPU计算中串行和并行执行下Step和Work时间复杂度,重点介绍了Exclusive和InclusiveScan运算,包括Hill-steele和Blelloch方法。通过比较,展示了并行算法如何优化工作总量的工作效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先归纳评估gpu计算的两个标准:

step:完成特定计算需要的时间

work:工作总量

当计算 a+b+c+d+e+f+g+...时

串行的step的复杂度为O(N-1)

并行的step时间复杂度为O(logn)

Scan运算:

Scan运算由输入向量、二元结合运算符和标识值组成。

identity element:标识值:标识值需要满足 identity op a=a;  例如 op为乘的时候,i为1.

op:二元结合运算符。

Scan运算分为两种,这两种是非常重点的,在课堂上迷迷糊糊听老师讲耳朵被灌输了不下于n次。

第一种:exclusive

区别(exclusive的输出不包含当前的输入值)

第二种:inclusive

下面来计算exclusive和inclusive的step和work的时间复杂度

inclusive scan:

step的时间复杂度与reduce相同,都是O(logn),具体过程不再复述

work的时间复杂度是O(n^{2})。过程是因为每一步都存在累加,1+2+3+4+...+n-1

时间复杂度太大,下面提出改进方法:

Hills steele inclusive scan:

具体看链接:

【Udacity并行计算课程笔记】- Lesson 3 Fundamental GPU Algorithms (Reduce, Scan, Histogram)-优快云博客

得出横向时间复杂度为O(n),纵向step复杂度为O(logn),所以总的work时间复杂度为O(nlogn)

Blelloch Scan:

具体看链接

【Udacity并行计算课程笔记】- Lesson 3 Fundamental GPU Algorithms (Reduce, Scan, Histogram)-优快云博客

得出step的复杂度为O(2logn),work的时间复杂度为O(n)

不过确实难理解,blelloch Scan

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值