Вопросы о Cuda 4.0 и модели унифицированной памяти - PullRequest
2 голосов
/ 28 февраля 2011

Nvidia, похоже, заявляет, что Cuda 4.0 позволяет программистам использовать унифицированную модель памяти между процессором и графическим процессором. Это не заменит необходимость управлять памятью вручную в графическом и центральном процессорах для достижения наилучшей производительности, но позволит ли реализовать более простые реализации, которые можно протестировать, проверить и затем оптимизировать (вручную управлять памятью графического процессора и процессора)? Я хотел бы услышать комментарии или мнения:)

Ответы [ 3 ]

3 голосов
/ 28 февраля 2011

Из того, что я прочитал, важное отличие состоит в том, что если у вас есть 2 или более графических процессора, вы сможете перенести память из GPU1 в GPU2, не касаясь оперативной памяти хоста.Вы также сможете управлять двумя графическими процессорами, используя только один поток на хосте.

3 голосов
/ 28 февраля 2011

Хммм, это кажется большой новостью! Библиотека thrust , созданная собственными инженерами NVIDIA, уже дает вам некоторое представление. Вы можете перемещать данные из оперативной памяти в DRAM графического процессора просто с помощью знака = (не нужно вызывать cudaMalloc, cudaMemcpy и тому подобное). Так что тяга делает CUDA-C больше похожим на «просто C».

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

Редактировать: CUDA 4.0 было объявлено, и тяга будет интегрирована с ним.

0 голосов
/ 01 мая 2011

«Объединенная» память относится только к адресному пространству.Указатели хоста и устройства выделяются из одного и того же 64-битного адресного пространства, поэтому любой заданный диапазон указателей уникален для всего процесса.В результате CUDA может определить по указателю, какому устройству «принадлежит диапазон указателей».

Важно не путать адресные пространства с возможностью чтения / записи этих диапазонов указателей.Процессор не сможет разыменовать указатели памяти устройства.Я полагаю, что на платформах с унифицированным адресом все распределения хостов будут отображаться по умолчанию, поэтому графические процессоры смогут разыменовывать распределения хостов.Vista / Windows 7 не поддерживает эту функцию.

...