前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >GPU: 衡量计算效能的正确姿势(1)

GPU: 衡量计算效能的正确姿势(1)

作者头像
Linux阅码场
发布2021-04-22 15:10:48
7260
发布2021-04-22 15:10:48
举报
文章被收录于专栏:LINUX阅码场LINUX阅码场

琢磨了好几天,也不知道公众号第一篇正式文章应该怎么写。现在很后悔在朋友圈高调公开公众号,还竟敢宣称有15年行业经验,大家不要信以为真,其实不过是一年经验重复了十几年而已。连知乎的小朋友都知道问问题的正确姿势,我真是有些汗颜。

言归正状,万事开头难,现在骑虎难下,也只好勉力为之。在这里想先介绍些今后文章经常会涉及的一些指标概念,希望能达成基本的共识,到时候交流起来会方便些。

Lateny和Throughput

1 延迟(latency),完成一个任务所需要的时间。

2.吞吐量(throughput),单位时间完成的任务量。

体系结构大神David.A.Patterson在他的著作《计算机组成和设计》用洗衣过程来做譬喻。洗衣过程由清洗,烘干,折叠,收纳四个环节组成,每个环节耗时30分钟,所以每次洗衣任务的latency是2个小时,没有优化以前,8个小时的完成4次洗衣任务,所以throughput只有0.5。

经过流水线改造以后,效率得到改善,虽然每次洗衣还是花费2小时,但单位时间完成的任务量大大提升,4次洗衣任务只花了3.5个小时。

我们可以把生活常识映射到处理器的流水线(Pipeline)设计,处理器的指令Pipeline通过实现指令级的并行(Instruction Level Parallelism)来提高throughput。这种ILP的优化对码农们就是免费的午餐,躺着程序性能就上去了。

另外,如下图,我们也可以通过多核CPU或者内置很多计算单元的GPU来提高程序整体的性能(throughput),这种优化属于线程级并行(Thread Level Parallelism)。相比ILP,TLP对码农不太友好,不再供应免费的午餐,我们需要编写多线程程序,甚至通过专门的接口(CUDA/OpenCL)让CPU/GPU忙碌起来,才能得到性能的提升。

第一篇先写到这儿了,再长就没人看了,接下来会介绍其它几个重要概念。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-04-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Linux阅码场 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档