Mercurial > hg > Game > Cerium
diff TaskManager/Cuda/CudaScheduler.h @ 1924:14f9fc88872c draft
fix
author | Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 30 Jan 2014 16:22:51 +0900 |
parents | e801016bd47c |
children | cd5bbd8ec5d6 |
line wrap: on
line diff
--- a/TaskManager/Cuda/CudaScheduler.h Wed Jan 29 20:32:24 2014 +0900 +++ b/TaskManager/Cuda/CudaScheduler.h Thu Jan 30 16:22:51 2014 +0900 @@ -16,23 +16,22 @@ public: typedef struct cudabuffer { int allcate_size; - int size; - CUdeviceptr* buf; + int in_size; + int out_size; + CUdeviceptr* memin; + CUdeviceptr* memout; CUevent* event; - CUStream* stream; - } CudaBuffer; - cudabuffer* CudaBufferPtr; + CUstream stream; + } CudaBuffer, *CudaBufferPtr; CudaScheduler(); virtual ~CudaScheduler(); void init_gpu(); void wait_for_event(CUevent* event, CudaBufferPtr m, TaskListPtr taskList, int cur); void run(); - + // platform platform; // platform は OpenCL が複数のメーカーの GPU に対応してるから必要 // Cuda の場合、NVIDIA だけなので必要ない? - // Cuda で CPU 使うとき要るんじゃね? - // そもそも CPU 使えたっけ? CUdevice device; unsigned int ret_num_platforms; // たぶん要らない unsigned int ret_num_devices; @@ -40,7 +39,6 @@ // command_queue command_queue; // Cuda には command_queue に相当するものはない // Closest approximation would be the CUDA Stream mechanism. らしい... - CUstream stream; int ret; memaddr reply; // cl_kernel に相当 @@ -48,8 +46,7 @@ // とりあえず、kernel で CUfunction kernel[2]; CUevent kernel_event[2]; - CudaBuffer memin[2]; - CudaBuffer memout[2]; + CudaBuffer* cudabuffer; HTask::htask_flag[2]; privete: