"...parallel-hashmap/benchmark/js/jquery.flot.logaxis.js" did not exist on "1cb25232bdefcaad8ad88c540442981e8d8cab0e"
synchronization.hpp 559 Bytes
Newer Older
Chao Liu's avatar
Chao Liu committed
1
2
3
4
5
6
7
8
9
#ifndef CK_SYNCHRONIZATION_AMD_HPP
#define CK_SYNCHRONIZATION_AMD_HPP

#include "config.hpp"

namespace ck {

__device__ void block_sync_lds()
{
10
#if CK_EXPERIMENTAL_BLOCK_SYNC_LDS_WITHOUT_SYNC_VMEM
Chao Liu's avatar
Chao Liu committed
11
12
13
14
15
    asm volatile("\
    s_waitcnt lgkmcnt(0) \n \
    s_barrier \
    " ::);
#else
16
    __syncthreads();
Chao Liu's avatar
Chao Liu committed
17
18
#endif
}
ltqin's avatar
ltqin committed
19
__device__ void sched_barrier()
ltqin's avatar
ltqin committed
20
{
ltqin's avatar
ltqin committed
21
#if 1
ltqin's avatar
ltqin committed
22
23
24
    asm volatile("\
    s_nop 0 \n \
    " ::);
ltqin's avatar
ltqin committed
25
26
27
#else
    __builtin_amdgcn_sched_barrier(0);
#endif
ltqin's avatar
ltqin committed
28
}
Chao Liu's avatar
Chao Liu committed
29

ltqin's avatar
ltqin committed
30
31
32
33
34
35
36
__device__ void s_barrier()
{
    asm volatile("\
    s_barrier \
    " ::);
}

Chao Liu's avatar
Chao Liu committed
37
38
} // namespace ck
#endif