49 #ifndef __CLFFT_INTERNAL_H
50 #define __CLFFT_INTERNAL_H
52 #ifdef KJB_HAVE_OPENCL
57 #warning "[Code police] Do not put 'using namespace' in global scope of header."
60 typedef enum kernel_dir_t
67 typedef struct kernel_info_t
72 size_t num_workgroups;
73 size_t num_xforms_per_workgroup;
74 size_t num_workitems_per_workgroup;
75 cl_fft_kernel_dir dir;
76 int in_place_possible;
92 clFFT_DataFormat format;
96 string *kernel_string;
103 cl_fft_kernel_info *kernel_info;
110 cl_kernel twist_kernel;
119 cl_int temp_buffer_needed;
128 size_t last_batch_size;
136 cl_mem tempmemobj_real, tempmemobj_imag;
141 size_t max_localmem_fft_size;
145 size_t max_work_item_per_workgroup;
154 size_t min_mem_coalesce_width;
159 size_t num_local_mem_banks;
162 void FFT1D(cl_fft_plan *plan, cl_fft_kernel_dir dir);