diff options
-rw-r--r-- | libclc/amdgcn-amdhsa/lib/OVERRIDES | 1 | ||||
-rw-r--r-- | libclc/amdgcn-amdhsa/lib/SOURCES | 1 | ||||
-rw-r--r-- | libclc/amdgcn-amdhsa/lib/workitem/get_num_groups.cl | 12 |
3 files changed, 14 insertions, 0 deletions
diff --git a/libclc/amdgcn-amdhsa/lib/OVERRIDES b/libclc/amdgcn-amdhsa/lib/OVERRIDES index e69de29..c9bd69b 100644 --- a/libclc/amdgcn-amdhsa/lib/OVERRIDES +++ b/libclc/amdgcn-amdhsa/lib/OVERRIDES @@ -0,0 +1 @@ +workitem/get_num_groups.ll diff --git a/libclc/amdgcn-amdhsa/lib/SOURCES b/libclc/amdgcn-amdhsa/lib/SOURCES index 257942c0..7b7ea4a 100644 --- a/libclc/amdgcn-amdhsa/lib/SOURCES +++ b/libclc/amdgcn-amdhsa/lib/SOURCES @@ -1,2 +1,3 @@ workitem/get_global_size.ll workitem/get_local_size.ll +workitem/get_num_groups.cl diff --git a/libclc/amdgcn-amdhsa/lib/workitem/get_num_groups.cl b/libclc/amdgcn-amdhsa/lib/workitem/get_num_groups.cl new file mode 100644 index 0000000..946b526 --- /dev/null +++ b/libclc/amdgcn-amdhsa/lib/workitem/get_num_groups.cl @@ -0,0 +1,12 @@ + +#include <clc/clc.h> + +_CLC_DEF size_t get_num_groups(uint dim) { + size_t global_size = get_global_size(dim); + size_t local_size = get_local_size(dim); + size_t num_groups = global_size / local_size; + if (global_size % local_size != 0) { + num_groups++; + } + return num_groups; +} |