QueryPerformanceCounter(&start_t);
d_detectJunction<<<gridSize,blockSize>>>(dev_DenoidedOut,dev_gaborKernel,width,height,gaborW,Thr2,dev_Juntion);
cudaDeviceSynchronize();
cudaStatus = cudaFree(dev_gaborKernel);
cudaStatus = cudaFree(dev_DenoidedOut);
QueryPerformanceCounter(&stop_t);
exe_time = 1e3*(stop_t.QuadPart-start_t.QuadPart)/freq.QuadPart;
totalTime += exe_time;
fprintf(stdout, "4、 executed time with CUDA is %fms.\n", exe_time);
谢谢大家!
15 个解决方案
#1
大家帮忙看看,自顶
#2
怎么判断得到是cudaFree()耗时多的呢?
#3
貌似是我搞错了 , 计时的时候未同步.谢谢你的回答!对了你知道例子里面cudaopenmp怎么用嘛?好像那个程序openmp并没有发挥作用啊!
#4
貌似是我搞错了 , 计时的时候未同步.谢谢你的回答!对了你知道例子里面cudaopenmp怎么用嘛?好像那个程序openmp并没有发挥作用啊!
#5
那个例子是用openmp在host端实现多线程并行,每个CPU线程对应一个GPU设备
只有一个GPU时就相当于串行程序了。
大括号中的内容可以理解为CUDA的kernel函数
omp_set_num_threads(num_gpus); // create as many CPU threads as there are CUDA devices
只有一个GPU时就相当于串行程序了。
#pragma omp parallel
{
//...
}
大括号中的内容可以理解为CUDA的kernel函数
#6
#7
#8
用的2*num_gpus还是不行的话就是你的环境没有配置好,必须加上支持openmp的编译选项
#9
方法:项目属性->CUDA Runtime API->Host->Extra C++ options
添加 /openmp ,然后重新编译就好了,如图:
添加 /openmp ,然后重新编译就好了,如图:
#10
谢谢您的回答,我一直在找个,可是就是没找到。下面是截图
#11
CUDA C/C++ 里应该有是否使用OpenMP的选项
#12
找不到cuda runtime API,那里面才有支持openMP的选项。
#13
没必要非得勾上那个选项,只需要手动添加编译命令/openmp 到你的command line里面就行
#14
没必要非得勾上那个选项,只需要手动添加编译命令/openmp 到你的command line里面就行 找不到cuda runtime API,那里面才有支持openMP的选项。
CUDA C/C++ 里应该有是否使用OpenMP的选项
#15
不熟,最近也需要做这方面的,慢慢学习中
#1
大家帮忙看看,自顶
#2
怎么判断得到是cudaFree()耗时多的呢?
#3
貌似是我搞错了 , 计时的时候未同步.谢谢你的回答!对了你知道例子里面cudaopenmp怎么用嘛?好像那个程序openmp并没有发挥作用啊!
#4
怎么判断得到是cudaFree()耗时多的呢?
#5
那个例子是用openmp在host端实现多线程并行,每个CPU线程对应一个GPU设备
只有一个GPU时就相当于串行程序了。
大括号中的内容可以理解为CUDA的kernel函数
omp_set_num_threads(num_gpus); // create as many CPU threads as there are CUDA devices
只有一个GPU时就相当于串行程序了。
#pragma omp parallel
{
//...
}
大括号中的内容可以理解为CUDA的kernel函数
#6
这个例子里面不是有多个cpu对应一个GPU的例子吗,为什么最后只是做了串行?
#7
#8
用的2*num_gpus还是不行的话就是你的环境没有配置好,必须加上支持openmp的编译选项
#9
方法:项目属性->CUDA Runtime API->Host->Extra C++ options
添加 /openmp ,然后重新编译就好了,如图:
添加 /openmp ,然后重新编译就好了,如图:
#10
方法:项目属性->CUDA Runtime API->Host->Extra C++ options
添加 /openmp ,然后重新编译就好了,如图:
#11
CUDA C/C++ 里应该有是否使用OpenMP的选项
#12
CUDA C/C++ 里应该有是否使用OpenMP的选项
#13
找不到cuda runtime API,那里面才有支持openMP的选项。
CUDA C/C++ 里应该有是否使用OpenMP的选项
#14
没必要非得勾上那个选项,只需要手动添加编译命令/openmp 到你的command line里面就行 找不到cuda runtime API,那里面才有支持openMP的选项。
CUDA C/C++ 里应该有是否使用OpenMP的选项
#15
不熟,最近也需要做这方面的,慢慢学习中