mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-02-09 10:55:03 +00:00
PTX: move implementations of work-item and synchronisation functions
to lib, and add header files in generic. Incorporates a patch by Tom Stellard! llvm-svn: 161313
This commit is contained in:
parent
1e373f07af
commit
a385c53413
1
libclc/generic/include/clc/synchronization/barrier.h
Normal file
1
libclc/generic/include/clc/synchronization/barrier.h
Normal file
@ -0,0 +1 @@
|
||||
_CLC_DECL void barrier(cl_mem_fence_flags flags);
|
1
libclc/generic/include/clc/workitem/get_global_id.h
Normal file
1
libclc/generic/include/clc/workitem/get_global_id.h
Normal file
@ -0,0 +1 @@
|
||||
_CLC_DECL size_t get_global_id(uint dim);
|
1
libclc/generic/include/clc/workitem/get_global_size.h
Normal file
1
libclc/generic/include/clc/workitem/get_global_size.h
Normal file
@ -0,0 +1 @@
|
||||
_CLC_DECL size_t get_global_size(uint dim);
|
1
libclc/generic/include/clc/workitem/get_group_id.h
Normal file
1
libclc/generic/include/clc/workitem/get_group_id.h
Normal file
@ -0,0 +1 @@
|
||||
_CLC_DECL size_t get_group_id(uint dim);
|
1
libclc/generic/include/clc/workitem/get_local_id.h
Normal file
1
libclc/generic/include/clc/workitem/get_local_id.h
Normal file
@ -0,0 +1 @@
|
||||
_CLC_DECL size_t get_local_id(uint dim);
|
1
libclc/generic/include/clc/workitem/get_local_size.h
Normal file
1
libclc/generic/include/clc/workitem/get_local_size.h
Normal file
@ -0,0 +1 @@
|
||||
_CLC_DECL size_t get_local_size(uint dim);
|
1
libclc/generic/include/clc/workitem/get_num_groups.h
Normal file
1
libclc/generic/include/clc/workitem/get_num_groups.h
Normal file
@ -0,0 +1 @@
|
||||
_CLC_DECL size_t get_num_groups(uint dim);
|
@ -12,3 +12,5 @@ integer/sub_sat.ll
|
||||
integer/sub_sat_impl.ll
|
||||
math/hypot.cl
|
||||
math/mad.cl
|
||||
workitem/get_global_id.cl
|
||||
workitem/get_global_size.cl
|
||||
|
5
libclc/generic/lib/workitem/get_global_id.cl
Normal file
5
libclc/generic/lib/workitem/get_global_id.cl
Normal file
@ -0,0 +1,5 @@
|
||||
#include <clc/clc.h>
|
||||
|
||||
_CLC_DEF size_t get_global_id(uint dim) {
|
||||
return get_group_id(dim)*get_local_size(dim) + get_local_id(dim);
|
||||
}
|
5
libclc/generic/lib/workitem/get_global_size.cl
Normal file
5
libclc/generic/lib/workitem/get_global_size.cl
Normal file
@ -0,0 +1,5 @@
|
||||
#include <clc/clc.h>
|
||||
|
||||
_CLC_DEF size_t get_global_size(uint dim) {
|
||||
return get_num_groups(dim)*get_local_size(dim);
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
_CLC_INLINE size_t get_global_id(uint dim) {
|
||||
switch (dim) {
|
||||
case 0: return __builtin_ptx_read_ctaid_x()*__builtin_ptx_read_ntid_x()+__builtin_ptx_read_tid_x();
|
||||
case 1: return __builtin_ptx_read_ctaid_y()*__builtin_ptx_read_ntid_y()+__builtin_ptx_read_tid_y();
|
||||
case 2: return __builtin_ptx_read_ctaid_z()*__builtin_ptx_read_ntid_z()+__builtin_ptx_read_tid_z();
|
||||
default: return 0;
|
||||
}
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
_CLC_INLINE size_t get_global_size(uint dim) {
|
||||
switch (dim) {
|
||||
case 0: return __builtin_ptx_read_nctaid_x()*__builtin_ptx_read_ntid_x();
|
||||
case 1: return __builtin_ptx_read_nctaid_y()*__builtin_ptx_read_ntid_y();
|
||||
case 2: return __builtin_ptx_read_nctaid_z()*__builtin_ptx_read_ntid_z();
|
||||
default: return 0;
|
||||
}
|
||||
}
|
@ -0,0 +1,4 @@
|
||||
workitem/get_group_id.cl
|
||||
workitem/get_local_id.cl
|
||||
workitem/get_local_size.cl
|
||||
workitem/get_num_groups.cl
|
@ -1,4 +1,6 @@
|
||||
_CLC_INLINE void barrier(cl_mem_fence_flags flags) {
|
||||
#include <clc/clc.h>
|
||||
|
||||
_CLC_DEF void barrier(cl_mem_fence_flags flags) {
|
||||
if (flags & CLK_LOCAL_MEM_FENCE) {
|
||||
__builtin_ptx_bar_sync(0);
|
||||
}
|
@ -1,4 +1,6 @@
|
||||
_CLC_INLINE size_t get_group_id(uint dim) {
|
||||
#include <clc/clc.h>
|
||||
|
||||
_CLC_DEF size_t get_group_id(uint dim) {
|
||||
switch (dim) {
|
||||
case 0: return __builtin_ptx_read_ctaid_x();
|
||||
case 1: return __builtin_ptx_read_ctaid_y();
|
@ -1,4 +1,6 @@
|
||||
_CLC_INLINE size_t get_local_id(uint dim) {
|
||||
#include <clc/clc.h>
|
||||
|
||||
_CLC_DEF size_t get_local_id(uint dim) {
|
||||
switch (dim) {
|
||||
case 0: return __builtin_ptx_read_tid_x();
|
||||
case 1: return __builtin_ptx_read_tid_y();
|
@ -1,4 +1,6 @@
|
||||
_CLC_INLINE size_t get_local_size(uint dim) {
|
||||
#include <clc/clc.h>
|
||||
|
||||
_CLC_DEF size_t get_local_size(uint dim) {
|
||||
switch (dim) {
|
||||
case 0: return __builtin_ptx_read_ntid_x();
|
||||
case 1: return __builtin_ptx_read_ntid_y();
|
@ -1,4 +1,6 @@
|
||||
_CLC_INLINE size_t get_num_groups(uint dim) {
|
||||
#include <clc/clc.h>
|
||||
|
||||
_CLC_DEF size_t get_num_groups(uint dim) {
|
||||
switch (dim) {
|
||||
case 0: return __builtin_ptx_read_nctaid_x();
|
||||
case 1: return __builtin_ptx_read_nctaid_y();
|
Loading…
x
Reference in New Issue
Block a user