Cuda 4.0 против 3,2 - PullRequest
       6

Cuda 4.0 против 3,2

2 голосов
/ 05 мая 2011

CUDA 4.0 быстрее, чем 3,2?
Меня не интересуют добавления CUDA 4.0, а скорее знание того, будет ли выделение и передача памяти быстрее, если я использую CUDA 4.0.
Спасибо

Ответы [ 5 ]

7 голосов
/ 05 мая 2011

Распределение и передача памяти больше зависят (если не исключительно) от аппаратных возможностей (более эффективные конвейеры, размер кэша), а не от версии CUDA.

2 голосов
/ 06 мая 2011

Даже в CUDA 3.2 вы можете установить драйверы CUDA 4.0 (270.x) - драйверы обратно совместимы.Таким образом, вы можете проверить это помимо перекомпиляции вашего приложения.Это правда, что существуют оптимизации на уровне драйвера, которые влияют на производительность во время выполнения.

Хотя в целом это работало нормально в Linux, я заметил некоторые сбои в MacOSX.

1 голос
/ 05 мая 2011

Да, у меня есть довольно существенное приложение, которое работало примерно на 10% быстрее, когда я перешел с 3.2 на 4.0. Это без каких-либо изменений кода, чтобы воспользоваться новыми функциями.

У меня также есть GTX480, если это имеет значение.

Обратите внимание, что прирост производительности может быть связан с тем, что я использую более новую версию драйверов dev (устанавливается автоматически при обновлении). Я представляю, что nVidia может настроить производительность CUDA так же, как они делают для блокбастеров, таких как Crysis.

0 голосов
/ 28 сентября 2011

Производительность выделения памяти в основном зависит от платформы хоста (поскольку модели драйверов различаются) и реализации драйвера.Для больших объемов памяти устройства производительность выделения вряд ли будет варьироваться от одной версии CUDA к другой;для небольших объемов (скажем, менее 128 КБ) изменения политики в субраспределителе драйверов могут повлиять на производительность.

Для закрепленной памяти CUDA 4.0 является особым случаем, поскольку она внесла некоторые важные изменения в политику в системах с поддержкой UVA.Прежде всего, при инициализации драйвер делает огромные резервы виртуальных адресов.Во-вторых, вся закрепленная память является переносимой, поэтому ее необходимо отображать для каждого графического процессора в системе.

Производительность передачи PCI Express в основном является артефактом платформы, и обычно разработчик не может сделать для контроляЭто.(Для небольших CUDA memcpy служебные данные драйвера могут варьироваться от одной версии CUDA к другой.) Одна из проблем заключается в том, что в системах с несколькими концентраторами ввода / вывода нелокальный доступ к DMA проходит по каналу HT / QPI и поэтому намного медленнее.Если вы ориентируетесь на такие системы, используйте API-интерфейсы NUMA для управления распределением памяти (и потоков) на том же процессоре, к которому подключен графический процессор.

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

Ответ - Да, потому что CUDA 4.0 уменьшает использование системной памяти и затраты процессора memcpy ()

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