"vscode:/vscode.git/clone" did not exist on "c3bcb6aec6d7af25770158680e2573498dc8cbd8"
synchronization.amd.hpp.in 479 Bytes
Newer Older
Chao Liu's avatar
Chao Liu committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#ifndef CK_SYNCHRONIZATION_AMD_HPP
#define CK_SYNCHRONIZATION_AMD_HPP

#include "config.hpp"

namespace ck {

__device__ void __llvm_amdgcn_s_barrier() __asm("llvm.amdgcn.s.barrier");

__device__ void block_sync_lds()
{
#if CK_BLOCK_SYNC_LDS_WITHOUT_SYNC_VMEM
    asm volatile("\
    s_waitcnt lgkmcnt(0) \n \
    s_barrier \
    " ::);
#else
    __llvm_amdgcn_s_barrier();
#endif
}

__device__ void block_sync_lds_vmem() { __llvm_amdgcn_s_barrier(); }

} // namespace ck
#endif