Хорошо, я уже прошел большинство руководств по 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 рабочие элементы рассчитываются одинаково?
Большое спасибо, я действительно везде пытался найти ответы.