GPU基本常识五

本文探讨了GPU中线程的调度机制,重点讲解了如何通过合理安排线程组来提高GPU的运算效率。文中提到,为了充分利用硬件资源,应当将线程按8个或8的倍数绑定成一组,并阐述了这种做法背后的原理和技术细节。

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

 最好8个线程或8的倍数线程,绑定为一个group.

   原因是: VIP7000有2个shader, 每个shader有4个线程并发.(线程并发表示线程来回切换非常的快)

                  同一时刻,一个group里有2个线程并行操作.

                 假设8个线程A,B,C,D,E,F,G,H绑定为一个group,则同一时刻这个group里有2个线程并行操作. 若其中一个线程A执行完(kernel里的所有操作如读图像A,B,图像处理A+B,写数据C等),线程B未完成,则切换到C,D,此时B中所需的数据(DDR到寄存器)仍在操作. 线程C、D同时运行(有可能C和B同时运行), C线程执行完毕(kernel执行完所有操作),  线程D未完成. 依次类推,当A,B,C,D,E,F,G,H线程都执行一遍后(此时,A,C,E,G执行完,B,D,F,H未执行完),group进行切换.

            线程未执行完的原因:DDR数据未给寄存器.

            gpu比cpu快的原因: 隐藏数据+2个线程同时操作.  由于一个线程内部同一时刻有2个线程并行操作,并且group内部线程并发执行,group切换零开销,导致不用等待DDR数据给寄存器的时间.  减少了DDR递给寄存器的时间.


  

向硬件部同事学习的新知识:

      hello.c--->hello.bin (指令段+数据段+堆栈)

     





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值