Mercurial > hg > Papers > 2020 > soto-midterm
comparison src/cuLaunchKernel.cbc @ 1:73127e0ab57c
(none)
author | soto@cr.ie.u-ryukyu.ac.jp |
---|---|
date | Tue, 08 Sep 2020 18:38:08 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
0:b919985837a3 | 1:73127e0ab57c |
---|---|
1 int computeblockDim(int count, int maxThreadPerBlock) { | |
2 return count < maxThreadPerBlock ? count : maxThreadPerBlock; | |
3 } | |
4 | |
5 __code execCUDAExecutor(struct CUDAExecutor* executor, struct Context* task, __code next(...)) { | |
6 // check data parallelism task | |
7 if (task->iterate) { | |
8 struct MultiDimIterator* iterator = &task->iterator->iterator->MultiDimIterator; | |
9 | |
10 // compute block thread size | |
11 int blockDimX = computeblockDim(iterator->x, executor->maxThreadPerBlock); | |
12 int blockDimY = computeblockDim(iterator->y, executor->maxThreadPerBlock); | |
13 int blockDimZ = computeblockDim(iterator->z, executor->maxThreadPerBlock); | |
14 | |
15 checkCudaErrors(cuLaunchKernel(task->function, | |
16 iterator->x/blockDimX, iterator->y/blockDimY, iterator->z/blockDimZ, | |
17 blockDimX, blockDimY, blockDimZ, | |
18 0, NULL, (void**)executor->kernelParams, NULL)); | |
19 } | |
20 ... | |
21 } |