Меня смущают различия между следующими элементами:
asm volatile ("s_waitcnt lgkmcnt(0)\n\t");
sub_group_barrier(CLK_LOCAL_MEM_FENCE);
__threadfence_block();
Это одно и то же? Можем ли мы использовать их взаимозаменяемо?
Я ищу замену: sub_group_barrier(CLK_LOCAL_MEM_FENCE);
, потому что он доступен в OpenCL, а не в HIP. Я полагаю, что закрытие asm volatile ("s_waitcnt lgkmcnt(0)\n\t");
, но я хотел проверить.