《Better Performance at Lower Occupancy》解读

本文挑战了CUDA编程中的传统观念,指出仅靠增加线程来隐藏延迟并非最佳策略。作者通过实验展示了提高指令集并行度同样能改善计算延迟,且使用更少的线程可以利用更多寄存器,减少shared memory访问,从而提高性能。优化关键在于每个线程执行更多工作和寄存器的高效利用。

背景

  • CUDA的通常建议在SM或者Block中使用更多的线程来隐藏访存时延。
    但是作者提出这种方式可能不是完全正确的这种方式可能不是完全正确的
    有关occupancy的含义:The multiprocessor occupancy is the ratio of active warps to the
    maximum number of warps supported on a multiprocessor of the GPU
  • 作者列举了两个实验数据来说明这件事情,结果一目了然:
    在这里插入图片描述
    作者提出使用CUDA编程时的两点谬论:
  1. 多线程是隐藏时延仅有的一种方式。这里的时延包括两种:一种是算数延时;一种是访存延时
  2. shared memroy 和 register 的访存速度一样快

优化点1:使用更少的线程来隐藏计算延时

首先将计算延迟与访存延迟做一个对比,计算延迟要比访存延迟要快

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值