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

本文详述了CUDA并行编程中的通信模式、内存访问优化和同步策略。探讨了线程间的通信、数据重用、共享内存、全局内存的使用,以及如何通过屏障和原子操作确保内存访问一致性。同时强调了最大化计算能力和减少内存访问时间对于编写高效CUDA程序的重要性。

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

1.通信

 

2.通信的不同类型以及并行计算中,不同的通信模型(about how to map tasks(which are threads in cuda) and meory together)

通信的模式叫做映射(communication pattern is called map)

有在黄格子里的每个元素,你将对每个元素进行同样的函数或者计算任务

这是一个线程的简单映射

有些不是这么简单的

比如依次取三个数的平均值或者用一个像素周围像素的平均值来表示此像素的这种模糊计算

 

 

 

除了这种聚集操作,还有分散操作

 

还有模板操作(stencil):用给定的模板对周围的像素进行着色

模板有几个小块,每个小块就会被重复读取多少次

 

另一种操作:转置(transpose )【数组运算,矩阵,图像操作】按顺序读不按顺序写

这种操作不仅适用于【数组运算,矩阵,图像操作】

也适用于各种数据结构(本质是任务重新排序内存中的数据元素)

比如

测试

 

又引出两种:归约和扫描

 

3.线程如何一齐有效的访问内存?

先讨论一个子问题:如何利用数据重用(how to exploit the data reuse)——有很多线程经常同时访问相同数据,我们如何利用这一点来减少在内存上花费的时间?

4.线程如何通过 共享内存 来交流部分结果?(communicate partial results by sharin

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值