首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AMD HCC Swizzle固有性

AMD HCC Swizzle固有性
EN

Stack Overflow用户
提问于 2016-12-19 13:08:50
回答 1查看 693关注 0票数 0

我最近发现了AMD的等价于CUDA的__byte_perm内禀;amdgcn_ds_swizzle(或者至少我认为它相当于字节置换函数)。我的问题是:CUDA的字节perm接收两个无符号的32位整数,然后根据选择器参数的值(作为十六进制值提供)进行置换。然而,AMD的swizzle函数只接受一个没有符号的32位整数和一个被命名为“模式”的int。如何利用AMD的Swizzle固有功能?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-29 16:05:22

ds_swizzle__byte_perm do有点不同。一个在车道上换一个完整的寄存器,而后者从两个32位的规则中置换任意四个字节。

AMD的b32 GCN指令实际上是与其他车道交换值。您可以在要读取的车道中指定32位寄存器,并指定要将其放置在其中的32位寄存器。还有一个硬编码值,指定如何交换这些值。正如ds_swizzle_b32所指出的,这里是对user3528438的一个很好的解释。

烫发不与其他车道交换数据。它只从自己车道上的两个32位寄存器中收集任意4个字节,并将其存储到寄存器中。没有交叉车道的交通。

我猜下一个问题是如何在AMD GCN硬件上做一个“字节置换”。这方面的说明是v_perm_b32。(参见第12-152页这里)它基本上从两个指定的32位寄存器中选择任意四个字节。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41223317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档