【发布时间】:2012-03-10 18:08:57
【问题描述】:
当我调用 OpenCL 函数时,我不会想象会创建新线程,在这种情况下,为了简单地获取平台 ID,我的程序会创建 8 个新线程。
cl_platform_id 平台[10] = {0};
cl_uint 平台数 = 0;
clGetPlatformIDs(10, platform, &numberofplatforms);//这会创建8个线程
由于我没有创建上下文,而只是询问平台 ID 以查看可用的内容,为什么这个函数会创建所有这些线程?我正在使用 Windows 7 64 位,i7 920 和 HT(我怀疑它正在创建 8 个线程,因为我有 8 个内核),英特尔和 Nvidia SDK(我有 GTS 250 和 GTX 560),而我与 Nvidia OpenCL 库链接并使用其标头。
这不是一个大问题,但如果我在分析设备后决定不使用 OpenCL,只是“闲置”了 8 个无用线程怎么办。有人知道为什么会这样吗?
【问题讨论】:
-
我猜想通过单独的线程监控它与 GPU 的通信会更简单。
标签: opencl