1#if !defined(__DEVICE_LAUNCH_PARAMETERS_H__)
2# define __DEVICE_LAUNCH_PARAMETERS_H__
12# if !defined(__STORAGE__)
14# define __STORAGE__ extern const
41 __ESBMC_atomic_begin();
45 for (i = 0; i < 2; i++)
48 for (i = 0; i < 2; i++)
54# define threadIdx indexOfThread[__ESBMC_get_thread_id() - 1]
55# define blockIdx indexOfBlock[__ESBMC_get_thread_id() - 1]
59 __ESBMC_atomic_begin();
60 unsigned int linear_value_total = id;
65 unsigned int linear_value = linear_value_total - grid_position * block_size;
81 __ESBMC_atomic_begin();
83 unsigned int linear_value =
103 __ESBMC_atomic_begin();
105 unsigned int lookup3Dx[2][2][2] = {{{0, 0}, {0, 0}}, {{0, 1}, {0, 1}}};
107 unsigned int gridDim_index = (
unsigned int)(
gridDim.x - 1);
108 unsigned int blockDim_index = (
unsigned int)(
blockDim.x - 1);
113 thread_index.z = (
unsigned int)0;
114 thread_index.y = (
unsigned int)0;
116 (
unsigned int)(lookup3Dx[
id][gridDim_index][blockDim_index]);
118 __ESBMC_atomic_end();
124 __ESBMC_atomic_begin();
126 unsigned int lookup3D[2][2][2] = {{{0, 0}, {0, 0}}, {{1, 0}, {1, 0}}};
128 unsigned int gridDim_index = (
unsigned int)(
gridDim.x - 1);
129 unsigned int blockDim_index = (
unsigned int)(
blockDim.x - 1);
133 block_index.z = (
unsigned int)0;
134 block_index.y = (
unsigned int)0;
135 block_index.x = (
unsigned int)(lookup3D[
id][gridDim_index][blockDim_index]);
137 __ESBMC_atomic_end();
uint3 getThreadIdx_table(unsigned int id)
Apply a lookup table to drastically reduce validation time while retaining the same behavior.
Definition device_launch_parameters.h:101
void assignIndexes()
Definition device_launch_parameters.h:39
dim3 blockDim
Definition device_launch_parameters.h:24
uint3 getThreadIdx(unsigned int id)
Definition device_launch_parameters.h:57
uint3 getBlockIdx(unsigned int id)
Definition device_launch_parameters.h:79
dim3 gridDim
Definition device_launch_parameters.h:26
pthread_t __ESBMC_get_thread_id(void)
#define __STORAGE__
Definition device_launch_parameters.h:14
uint3 getBlockIdx_table(unsigned int id)
Definition device_launch_parameters.h:122
uint3 indexOfThread[1024]
Definition device_launch_parameters.h:30
uint3 indexOfBlock[1024]
Definition device_launch_parameters.h:31
__device_builtin__ __STORAGE__ int warpSize
Definition device_launch_parameters.h:28
#define __device_builtin__
Definition host_defines.h:120
unsigned long int pthread_t
Definition pthread.h:41
__device_builtin__ struct __uint3 uint3
Definition vector_types.h:333
__device_builtin__ struct __dim3 dim3
Definition vector_types.h:395