gpt4 book ai didi

cuda - CUDA经线大小和控制偏差

转载 作者:行者123 更新时间:2023-12-04 09:15:57 26 4
gpt4 key购买 nike

我对以下问题有疑问:

假设我们有一张9 * 7的图片(x方向上为7像素,y方向上为9像素),假设每条扭曲有4 * 4线程和8线程的块,那么多少个扭曲将具有控制散度?

块和变形在这里将如何组织?
对于x或水平方向,我可以假设每行2个块。类似地,
对于垂直方向,每列3个块。
但是,变形将如何组织?有人可以指出翘曲的线程ID以及发生控制差异的情况(那些线程ID等)。

谢谢

最佳答案

假设我们有一张9 * 7的图片(x方向上为7像素,y方向上为9像素),假设每条扭曲有4 * 4线程和8线程的块,那么多少个扭曲将具有控制散度?



散度是程序(代码)的属性,而不是程序块/变形布局本身的属性。如果您的算法在图像中的所有像素上均以相同的方式运行,则无论线程数量及其组织如何,都不会有任何差异。如果您的算法在扭曲边界上分支,那么也将不会有差异。因此,在看不到您的代码的情况下,您的问题在技术上是无法回答的。
如果您运行的每个线程束包含16个线程和8个线程(在CUDA硬件上实际上是不可能的:线程束由32个线程组成,并且线程的大小不可配置),那么您可能根本不需要GPU就可以运行。这些数字太小了,无法从任何硬件加速中受益。



块和变形在这里将如何组织?对于x或水平方向,我可以假设每行2个块。类似地,对于垂直方向,我可以假设每列3个块。但是,变形将如何组织?


我将继续您的示例,并尝试提供线程ID,块ID,扭曲ID的架构。请记住,实际上,这种布局在CUDA硬件上是不可能的。

Image     Global Thread IDs      Block IDs              Local Thread IDs
□□□□□□□ | 00 01 02 03 04 05 06 | 00 00 00 00 00 00 00 | 00 01 02 03 04 05 06
□□□□□□□ | 07 08 09 10 11 12 13 | 00 00 00 00 00 00 00 | 07 08 09 10 11 12 13
□□□□□□□ | 14 15 16 17 18 19 20 | 00 00 01 01 01 01 01 | 14 15 00 01 02 03 04
□□□□□□□ | 21 22 23 24 25 26 27 | 01 01 01 01 01 01 01 | 05 06 07 08 09 10 11
□□□□□□□ | 28 29 30 31 32 33 34 | 01 01 01 01 02 02 02 | 12 13 14 15 00 01 02
□□□□□□□ | 35 36 37 38 39 40 41 | 02 02 02 02 02 02 02 | 03 04 05 06 07 08 09
□□□□□□□ | 42 43 44 45 46 47 48 | 02 02 02 02 02 02 03 | 10 11 12 13 14 15 00
□□□□□□□ | 49 50 51 52 53 54 55 | 03 03 03 03 03 03 03 | 01 02 03 04 05 06 07
□□□□□□□ | 56 57 58 59 60 61 62 | 03 03 03 03 03 03 03 | 08 09 10 11 12 13 14
----------------------------------------------------------------------------
Image Global Warp IDs Block IDs Local Warp IDs
□□□□□□□ | 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00
□□□□□□□ | 00 01 01 01 01 01 01 | 00 00 00 00 00 00 00 | 00 01 01 01 01 01 01
□□□□□□□ | 01 01 02 02 02 02 02 | 00 00 01 01 01 01 01 | 01 01 00 00 00 00 00
□□□□□□□ | 02 02 02 03 03 03 03 | 01 01 01 01 01 01 01 | 00 00 00 01 01 01 01
□□□□□□□ | 03 03 03 03 04 04 04 | 01 01 01 01 02 02 02 | 01 01 01 01 00 00 00
□□□□□□□ | 04 04 04 04 04 05 05 | 02 02 02 02 02 02 02 | 00 00 00 00 00 01 01
□□□□□□□ | 05 05 05 05 05 05 06 | 02 02 02 02 02 02 03 | 01 01 01 01 01 01 00
□□□□□□□ | 06 06 06 06 06 06 06 | 03 03 03 03 03 03 03 | 00 00 00 00 00 00 00
□□□□□□□ | 07 07 07 07 07 07 07 | 03 03 03 03 03 03 03 | 01 01 01 01 01 01 01
----------------------------------------------------------------------------



以及发生控制差异的情况(这些线程的ID等)


如上所述,差异是代码的属性,而不是线程布局的属性,没有代码就无法回答这个问题。

关于cuda - CUDA经线大小和控制偏差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28159275/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com