CUDA中的线程束洗牌指令之--------__shfl_xor

近日感觉线程束洗牌指令还是很重要的,下面就记录一下自己的理解。

__shfl_xor命令

int returnValue __shfl_xor(int inputValue,int laneMask,int width=warpSize)

其中,returnValue 是从源线程中那个值返回的值,inputValue是此线程作为源线程输入给源线程的值。
laneMask则决定了本线程与那个束内线程相关。那么如何判定关联的束内线程id呢?是用束内线程id的按位异或值来表示的,示例如下:


图1 相关联线程示意

这样我们比较清楚的了解两个数据交换线程的关系了,当laneMask为1时属于相邻蝴蝶式的交叉互换,为其他值时有类似意义。

图2 代码参数的值及其含义

当处理的数为double时的做法

--TODO

--2020.12.27 今日去了上图借书并待了一天,乘了一次今天开始试运行的18号线。

自然赠与你
树冠 微风 肩头的暴雨
片刻后生成
平衡 忠诚 不息的身体 --by 万青

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、关于线程和调度的一些基本概念 1.1 什么是线程 线程是操作系统能够进行运算调度的基本单位。它被包含在进程之中...
    ac41d8480d04阅读 861评论 0 2
  • OC语言基础 1.类与对象 类方法 OC的类方法只有2种:静态方法和实例方法两种 在OC中,只要方法声明在@int...
    奇异果好补阅读 4,362评论 0 11
  • 1. CPU 并行 1.1 概述 之所以先从 CPU 聊起而不是直接切入正题讲 GPU, 是因为并行思想在CPU和...
    Teci阅读 5,082评论 1 5
  • 进程是cpu资源分配的最小单位,线程是cpu调度的最小单位。以前进程既是资源分配也是调度的最小单位,后来为了更合理...
    nine_9阅读 649评论 0 1
  • 渐变的面目拼图要我怎么拼? 我是疲乏了还是投降了? 不是不允许自己坠落, 我没有滴水不进的保护膜。 就是害怕变得面...
    闷热当乘凉阅读 4,355评论 0 13