Сколько потоков (или рабочего элемента) может выполняться одновременно?

Я новичок в программировании GPGPU и работаю с реализацией OpenCL NVIDIA.

Мой вопрос заключался в том, как вычислить предел устройства графического процессора (по количеству потоков).
Насколько я понял, существует ряд рабочих групп (эквивалент блоков в CUDA), которые содержат ряд рабочих элементов (~ поток cuda).

  • Как мне узнать количество рабочих групп, представленных на моей карте (и которые могут работать одновременно), и количество рабочих элементов, присутствующих в одной рабочей группе?

  • Чему соответствует CL_DEVICE_MAX_COMPUTE_UNITS?
    В спецификации khronos говорится о ядрах («Количество параллельных вычислительных ядер на устройстве OpenCL»). В чем разница с ядром CUDA, указанным в спецификации моей графической карты. В моем случае openCL дает 14, а у моего GeForce 8800 GT 112 ядер на основе веб-сайта NVIDIA.

  • Соответствует ли CL_DEVICE_MAX_WORK_GROUP_SIZE (512 в моем случае) общему количеству рабочих элементов, предоставленных конкретной рабочей группе, или количеству рабочих элементов, которые могут выполняться одновременно в рабочей группе?

Мы будем очень признательны за любые предложения.

18
задан Laure Jonchery 15 April 2011 в 16:31
поделиться