1.4 SPEEDING UP REAL APPLICATIONS

文章探讨了并行化应用程序的加速潜力受限于Amdahl定律,指出大部分加速来自并行部分。优化包括绕过内存带宽限制和GPU利用,同时强调CPU和GPU的协同工作。GPU编程模型如CUDA正在发展以支持更大规模的并行化。

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

我们从并行化应用程序中可以期待什么样的速度,这取决于应用程序中可以并行化的部分。如果可并行化部分所花费时间的百分比为30%,则并行部分的100倍加速将使执行时间减少不超过29.7%。整个应用程序的加速速度将仅为1.4倍左右。事实上,即使在并行部分进行无限的加速,也只能减少30%的执行时间,实现不超过1.43倍的加速。通过并行执行可以达到的加速水平可能会受到应用程序的可并行部分的严重限制,这一事实被称为Amdahl定律。另一方面,如果99%的执行时间在并行部分,则将并行部分加速100倍将应用程序执行减少到原始时间的1.99%。这使整个应用程序速度提高了50倍。因此,对于大规模并行处理器来说,应用程序的绝大部分执行都在并行部分非常重要,以有效加快其执行速度。

研究人员在某些应用中实现了超过100倍的速度。然而,这通常只有在算法增强后进行广泛优化和调整后才能实现,以便超过99.9%的应用程序执行时间处于并行执行。在实践中,应用程序的直接并行化通常饱和内存(DRAM)带宽,导致速度仅提高约10倍。诀窍是弄清楚如何绕过内存带宽限制,这涉及进行许多转换之一,以利用专门的GPU片上存储器来大幅减少对DRAM的访问次数。然而,人们必须进一步优化代码,以绕过有限的芯片内存容量等限制。这本书的一个重要目标是帮助读者充分理解这些优化,并熟练掌握这些优化。

请记住,通过单核CPU执行实现的加速水平也可以反映CPU对应用程序的适用性:在某些应用程序中,CPU性能非常好,因此使用GPU更难加快性能。大多数应用程序都有部分可以由CPU更好地执行。因此,必须给CPU一个公平的执行机会,并确保编写代码,以便GPU补充CPU执行,从而正确利用组合CPU

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值