comparison TaskManager/Gpu/GpuScheduler.h @ 1960:273de551f726 draft

use multiple command_queue
author Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
date Tue, 11 Feb 2014 16:28:22 +0900
parents 5238ca826d6e
children fdb3ed0bc51d
comparison
equal deleted inserted replaced
1959:6d343611bb03 1960:273de551f726
12 #else 12 #else
13 #include <CL/cl.h> 13 #include <CL/cl.h>
14 #endif 14 #endif
15 15
16 extern TaskObject gpu_task_list[MAX_TASK_OBJECT]; 16 extern TaskObject gpu_task_list[MAX_TASK_OBJECT];
17
18 #define STAGE 8
17 19
18 class GpuScheduler : public MainScheduler { 20 class GpuScheduler : public MainScheduler {
19 public: 21 public:
20 typedef struct gpubuffer { 22 typedef struct gpubuffer {
21 cl_int allocate_size; 23 cl_int allocate_size;
32 cl_platform_id platform_id; 34 cl_platform_id platform_id;
33 cl_device_id device_id; 35 cl_device_id device_id;
34 cl_uint ret_num_platforms; 36 cl_uint ret_num_platforms;
35 cl_uint ret_num_devices; 37 cl_uint ret_num_devices;
36 cl_context context; 38 cl_context context;
37 cl_command_queue command_queue; 39 cl_command_queue command_queue[STAGE];
38 cl_int ret; 40 cl_int ret;
39 memaddr reply; 41 memaddr reply;
40 cl_kernel kernel[2]; 42 cl_kernel kernel[STAGE];
41 cl_event kernel_event[2]; 43 cl_event kernel_event[STAGE];
42 GpuBuffer memin[2]; 44 GpuBuffer memin[STAGE];
43 GpuBuffer memout[2]; 45 GpuBuffer memout[STAGE];
44 HTask::htask_flag flag[2]; 46 HTask::htask_flag flag[STAGE];
45 private: 47 private:
46 int load_kernel(int cmd); 48 int load_kernel(int cmd);
47 cl_mem createBuffer(GpuBufferPtr m, int i, cl_context context, cl_mem_flags flags, size_t size, cl_int *error); 49 cl_mem createBuffer(GpuBufferPtr m, int i, cl_context context, cl_mem_flags flags, size_t size, cl_int *error);
48 void initGpuBuffer(GpuBufferPtr m); 50 void initGpuBuffer(GpuBufferPtr m);
49 void destroyGpuBuffer(GpuBufferPtr m); 51 void destroyGpuBuffer(GpuBufferPtr m);