Могу ли я создать pthreads и внутри каждого pthread я могу создать opencl-среду и вызвать одно и то же ядро. То, что я пытаюсь сделать, это запустить ядра opencl параллельно на одном устройстве. Это возможно?pthreads и opencl
Спасибо за ответ.
Могу ли я создать pthreads и внутри каждого pthread я могу создать opencl-среду и вызвать одно и то же ядро. То, что я пытаюсь сделать, это запустить ядра opencl параллельно на одном устройстве. Это возможно?pthreads и opencl
Спасибо за ответ.
На первый взгляд эти швы не нужны.
Когда вы запускаете ядро OpenCL, используя вызов API clEnqueueNDRange(), вы можете запустить столько ядер, сколько вам нужно; каждый в качестве своего потока на одном устройстве. Модель OpenCL состоит в том, что один Контекст/Очередь команд может запускать 100 - 1000 с небольшими потоками ядра на графическом процессоре.
Ya as Tim указал, когда OpenCL поддерживает так много потоков/ядер, почему вы хотите войти в pthreads с opencl. Дальнейшие потоки на графическом процессоре очень легкие по сравнению с pthreads. Pthreads являются дорогостоящими и связаны с большими накладными расходами для переключения контекста, что может существенно снизить эффективность вашей работы.
Но запуск многих ядер с одинаковой командной очередью будет выполнять ядра последовательно. Для каждого ядра должны быть разные очереди команд. Я считаю, что один контекст не должен быть проблемой для запуска ядер параллельно ...
Запускает несколько ядер параллельно, поддерживаемых в 6970? Есть ли версия opencl, которую я должен использовать, причина, по которой я спрашиваю, я создал две очереди команд, и я не вижу ускорения, ну, я не ожидаю линейного ускорения, но потом снова .... Я использую opencl версию 1.1 , – user1459175
Ну, я не вижу причин, почему несколько ядер не должны поддерживаться в 6970. Его немного сложно ответить на этот вопрос, но я бы попробовал (глупый, хотя) изменяющийся размер входных данных и проверить производительность. – Nike
Спасибо попробуйте более крупные матрицы. Я попробовал матрицу транспонирования размером 1024 * 1024. – user1459175
Спасибо за ответ. – user1459175