在AMD GCN组件中共享进位标志交叉通道的好方法?

时间:2018-10-26 17:29:57

标签: amd-gcn

我需要加两个乌龙。

每个数字的前半部分(低32位)存储在具有偶数id的通道中,后半部分(高32位)存储在其偶数id的通道中(下一个奇数id)。

所以一个通道将低32位加起来,而一个通道将高32位加起来。

问题是,如果低32位和有一个进位标志,我需要将该标志添加到高32位和。

一种方法可能是这样的(对于+ = b):

v_add_co_u32 %[a], vcc, %[b], %[a]  
v_addc_co_u32 %[carry], vcc, 0, 0, vcc  
v_add_co_u32_dpp %[a], vcc, %[carry], %[a] quad_perm[1, 0, 3, 2]  

第二行是必需的,因为我需要将进位标志转换为数字,以便可以使用第3行中的dpp指令跨通道共享它。

有更好的方法吗?预先感谢。

0 个答案:

没有答案