Mercurial > hg > Game > Cerium
view TaskManager/Gpu/GpuThreads.h @ 1876:5e17ab506299 draft
change CPU_TYPE SPE_ANY to IO/0 ( cannot running )
author | Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 30 Dec 2013 20:52:21 +0900 |
parents | 289378e5abf8 |
children | f73ca57cdc81 |
line wrap: on
line source
#ifndef INCLUDED_GPU_THREADS #define INCLUDED_GPU_THREADS #include <pthread.h> #include "Threads.h" #include "GpuScheduler.h" #include "Sem.h" #ifdef __APPLE__ #include <OpenCL/opencl.h> #else #include <CL/cl.h> #endif class GpuScheduler; typedef struct gpu_arg { int cpuid; // should be syncrhonized GpuScheduler *scheduler; TaskManagerImpl *manager; SemPtr wait; int useRefDma; } gpu_thread_arg_t; class GpuThreads : public Threads { public: /* static GpuThreads* getInstance() { static GpuThreads singleton; return &singleton; }*/ GpuThreads(int useRefDma); ~GpuThreads(); void init(); static void *gpu_thread_run(void *args); virtual int spawn_task(int cpu_num, TaskListPtr p); int get_mail(int speid, int count, memaddr *ret); int has_mail(int speid, int count, memaddr *ret); void send_mail(int speid, int num, memaddr *data); void add_output_tasklist(int command, memaddr buff, int alloc_size); void set_wait(SemPtr); private: gpu_thread_arg_t *args; pthread_t *threads; int use_refdma; }; #endif