Concurrency 在使用HIP C+的AMD GPU上使用“shfl”操作有什么要求+;? P>>强HD C++ +,与CUDA C++非常相似。AMD也创建了 HIPIGION/SUGR>将CUDA C++转换为HIP C++(可移植C++代码),它既可以在NVIDIA GPU上执行,也可以在AMD GPU上执行: 在nVidia GPU上使用shfl操作有以下要求:

Concurrency 在使用HIP C+的AMD GPU上使用“shfl”操作有什么要求+;? P>>强HD C++ +,与CUDA C++非常相似。AMD也创建了 HIPIGION/SUGR>将CUDA C++转换为HIP C++(可移植C++代码),它既可以在NVIDIA GPU上执行,也可以在AMD GPU上执行: 在nVidia GPU上使用shfl操作有以下要求:,concurrency,llvm,gpgpu,amd,hip,Concurrency,Llvm,Gpgpu,Amd,Hip,对nvidia的要求 使用此应用程序时,请确保您有一个支持计算的3.0或更高版本的设备,以便使用warp shfl操作并在Makefile中添加-gencode arch=compute=30,code=sm_30 nvcc标志 还注意到,对于AMD上的64波长(翘曲尺寸),HIP支持shfl: 此外,HIP定义了用于查询体系结构特征的便携式机制,并支持更大的64位wavesize,这将选票和洗牌等跨车道功能的返回类型从32位整数扩展到64位整数 但是,哪一个AMD GPU支持函数shfl,

对nvidia的要求

使用此应用程序时,请确保您有一个支持计算的3.0或更高版本的设备,以便使用warp shfl操作并在Makefile中添加-gencode arch=compute=30,code=sm_30 nvcc标志

  • 还注意到,对于AMD上的64波长(翘曲尺寸),HIP支持
    shfl
此外,HIP定义了用于查询体系结构特征的便携式机制,并支持更大的64位wavesize,这将选票和洗牌等跨车道功能的返回类型从32位整数扩展到64位整数

但是,哪一个AMD GPU支持函数
shfl
,或者任何AMD GPU都支持
shfl
,因为在AMD GPU上,它是使用本地内存实现的,而不使用硬件指令寄存器来注册

SHIFL < /代码>操作在AMD GPU上的要求是什么?
  • ,GPUGCN3中有新的指令,如
    ds\U bpermute
    ds\U permute
    ,它们可以提供
    \u shfl()
    等功能

  • 这些
    ds\u bpermute
    ds\u permute
    指令仅使用本地内存路由(LDS 8.6 TB/s),但实际上不使用本地内存,这允许加速线程之间的数据交换:8.6 TB/s

  • 他们使用LDS硬件在波阵面的64条通道之间路由数据,但实际上并没有写入LDS位置

  • 还有数据并行原语(DPP)-在您可以使用它时尤其强大,因为op可以直接读取相邻工作项的寄存器。即DPP可以全速访问相邻线程(工作项)~51.6 TB/s
  • 现在,大多数矢量指令都可以完全跨车道读取 吞吐量

    例如,
    wave\u shr
    -用于扫描算法的指令(波前右移):

    有关GCN3的更多信息:

    新说明

    • “SDWA”-子Dword寻址允许访问VAU指令中VGRP的字节和字
    • “DPP”-数据并行处理允许VAU指令访问相邻车道的数据
    • 第32页,第32页

    DS\U置换\U B32正向置换不写入任何LDS内存