Mercurial > hg > Members > Moririn
diff src/test/twice.cc @ 300:8bbc0012e1a4
checkErrors on an example
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 12 Feb 2017 09:12:21 +0900 |
parents | b387b224790c |
children | 609bf62768b9 |
line wrap: on
line diff
--- a/src/test/twice.cc Sun Feb 12 08:36:22 2017 +0900 +++ b/src/test/twice.cc Sun Feb 12 09:12:21 2017 +0900 @@ -43,6 +43,9 @@ if (strcmp(argv[i], "--stream") == 0 || strcmp(argv[i], "-s") == 0) { num_stream = atoi(argv[++i]); } + if (strcmp(argv[i], "--numExec") == 0 || strcmp(argv[i], "-e") == 0) { + num_exec = atoi(argv[++i]); + } } // initialize and load kernel @@ -57,8 +60,10 @@ checkCudaErrors(cuCtxCreate(&context, CU_CTX_SCHED_SPIN, device)); checkCudaErrors(cuModuleLoad(&module, "multiply.ptx")); checkCudaErrors(cuModuleGetFunction(&function, module, "multiply")); - for (int i=0;i<num_stream;i++) - checkCudaErrors(cuStreamCreate(&stream[i],0)); + if (num_stream) { + for (int i=0;i<num_stream;i++) + checkCudaErrors(cuStreamCreate(&stream[i],0)); + } // memory allocate CUdeviceptr devA; @@ -94,7 +99,11 @@ if (num_stream <= cur) cur = 0; B[i] = (float)(i+1); - checkCudaErrors(cuMemcpyHtoDAsync(devB[i], &B[i], sizeof(float), stream[cur])); + if (num_stream) { + checkCudaErrors(cuMemcpyHtoDAsync(devB[i], &B[i], sizeof(float), stream[cur])); + } else { + checkCudaErrors(cuMemcpyHtoD(devB[i], &B[i], sizeof(float))); + } } cur = 0; @@ -120,7 +129,11 @@ for (int i=0;i<num_exec;i++,cur++) { if (num_stream <= cur) cur = 0; - checkCudaErrors(cuMemcpyDtoHAsync(result[i], devOut[i], LENGTH*THREAD*sizeof(float), stream[cur])); + if (num_stream) { + checkCudaErrors(cuMemcpyDtoHAsync(result[i], devOut[i], LENGTH*THREAD*sizeof(float), stream[cur])); + } else { + checkCudaErrors(cuMemcpyDtoH(result[i], devOut[i], LENGTH*THREAD*sizeof(float))); + } } // wait for stream