Когда я вызываю функцию OpenCL, я не представляю, что создаст новые потоки, в этом случае, чтобы просто получить идентификаторы платформы, моя программа создает 8 новых потоков.
cl_platform_id platforms[10] = {0};
cl_uint numberofplatforms = 0;
clGetPlatformIDs(10, platforms, &numberofplatforms);//this creates 8 threads
Из-за того, что я не создаю контекст, а просто запрашиваю идентификаторы платформы, чтобы посмотреть, что доступно, почему эта функция создает все эти потоки? Я использую 64-битную Windows 7, i7 920 с HT (я подозреваю, что это создает 8 потоков, потому что у меня 8 ядер), как Intel, так и Nvidia SDK (у меня есть GTS 250 и GTX 560), в то время как я связывание с библиотеками Nvidia OpenCL и использование его заголовков.
Это не большая проблема, но что, если я решу не использовать OpenCL после анализа устройств, только чтобы «бесполезно» лежало 8 бесполезных потоков. Кто-нибудь знает, почему это происходит?