Организация рабочих элементов, рабочих групп и очередей команд и ограничение памяти в OpenCL - PullRequest
6 голосов
/ 13 июля 2010

Хорошо, я уже прошел большинство руководств по ati и nvidia для OpenCL, есть некоторые вещи, в которых я просто хочу быть уверен, а некоторые требуют разъяснения.Ничто в документации не дает четкого ответа.

Теперь у меня есть Radeon 4650, теперь при запросе моего устройства я получил

  CL_DEVICE_MAX_COMPUTE_UNITS:  8
  CL_DEVICE_ADDRESS_BITS:  32
  CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS: 3
  CL_DEVICE_MAX_WORK_ITEM_SIZES: 128 / 128 / 128 
  CL_DEVICE_MAX_WORK_GROUP_SIZE: 128
  CL_DEVICE_MAX_MEM_ALLOC_SIZE:  256 MByte
  CL_DEVICE_GLOBAL_MEM_SIZE:  256 MByte

ОК, моя карта имеет 1 ГБ памяти, почемумне разрешено только 256 МБ?

2-й Я не понимаю часть измерения рабочего элемента, значит ли это, что я могу иметь до 128 * 3 или 128 ^ 3 рабочих элементов?

когда я вычислил это до того, как запустил запрос, я получил 8 ядер * 16 потоковых процессоров * 4 рабочих элемента = 512, почему это неправильно?

также я получил те же 3-х мерные элементы рабочего элемента для моегоIntel Core 2 Duo CPU, применяются ли те же вычисления?

Что касается очередей команд, когда я пытался получить доступ к своему центральному процессору Duo как к устройству с помощью OpenCL, материал обрабатывался только на одном ядре, я пытался сделать несколькоОчереди и очереди нескольких записей, но все еще обрабатывались только на одном ядре, я использовал global_work_size 128 * 128 * 128 * 8 для простой программы записи, где каждый рабочий элемент записывает свой собственный глобальный идентификатор в буфер, и я получил тольконули.

а как же Nvidia Cards?на Nvidia 9500 GT с 32 ядрами cuda рабочие элементы рассчитываются одинаково?

Большое спасибо, я действительно везде пытался найти ответы.

1 Ответ

5 голосов
/ 13 июля 2010

хорошо, во-первых, моя карта имеет 1 ГБ памяти, почему мне разрешено только 256 МБ?

Это ошибка / ограничение драйвера ATI AFAIK.Я проверю свой 5850, если смогу воспроизвести.

http://devforums.amd.com/devforum/messageview.cfm?catid=390&threadid=124142&messid=1069111&parentid=0&FTVAR_FORUMVIEWTMP=Branch

2-й Я не понимаю часть измерения Work-item, значит ли это, что я могу иметьдо 128 * 3 или 128 ^ 3 рабочих элементов?

Нет.Это означает, что вы можете иметь максимум 128 на одну яркость, поскольку CL_DEVICE_MAX_WORK_ITEM_SIZES равно 128 / 128 / 128.И поскольку CL_DEVICE_MAX_WORK_GROUP_SIZE равно 128, вы можете иметь, например: work_group_size(128, 1, 1) или work_group_size(1, 128, 1), или work_group_size(64, 1, 2), или work_group_size(8, 4, 4) и т. Д., Если произведение каждого затемнения равно <= 128, все будет в порядке.*

когда я вычислил это перед выполнением запроса, я получил 8 ядер * 16 потоковых процессоров * 4 рабочих элемента = 512, почему это неправильно?

также я получил то же 3 измеренияматериал рабочих элементов для моего процессора Intel Core Core Duo 2, применяются ли те же вычисления?

Не понимаю, что вы пытаетесь вычислить здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...