Компания Nvidia представила обновлённую версию программно-аппаратной архитектуры CUDA с учётом преимуществ, предлагаемых графическими чипами поколения Kepler. Внедрение платформы Nvidia Kerpler позволило реализовать ряд улучшений в сфере вычислений общего назначения (GPGPU), среди которых производитель отмечает возможность «разнообразить потенциал распараллеливания вычислений» в зависимости от характеристик нагрузки.
В числе прочего, 5-я версия CUDA предлагает поддержку технологии GPU Direct и интегрированной среды разработки Nsight Eclipse. Язык программирования CUDA 5 представляет особый интерес для тех, кто создаёт приложения для GPGPU-вычислений на ядре Kepler, при этом, как заявляет Nvidia, реализация функционала динамического распараллеливания в чипах Kepler потребует минимальных изменений в программном коде.
Между тем наиболее значимым нововведением в CUDA 5 является технология GPU Direct, позволяющая CUDA-приложениям получать доступ к памяти в других GPU посредством шины PCI-Express и сетевой карты. По заявлению Nvidia, данная технология позволит снизить задержки доступа к памяти вместо того, чтобы расширять объём локальной памяти, доступной для CUDA-приложений. Ахиллесова пята графических ускорителей с поддержкой GPGPU – сравнительно небольшой объём локальной памяти. При работе с большими массивами данных объёмом в несколько десятков гигабайт
видеокарте приходится запрашивать данные из системной памяти
компьютера, что является узким горлышком в работе системы вследствие необходимости ожидания запрашиваемых данных.
Интегрированная среда разработчика Nsight Eclipse не только реализует подсветку синтаксиса CUDA, но также содержит отладчик кода Nsight Debugger и анализатор производительности выполнения кода Nsight Profiler, позволяющие, по словам Nvidia, выявить проблемы в эффективности работы кода. Поддержка Nsight Eclipse заявлена для платформ Linux и Mac OS X.
Тогда как Nvidia делает CUDA приоритетным выбором для тех, кто работает с вычислениями общего назначения в среде Kepler, в данном сегменте рынка наблюдается тенденция к большей популярности
OpenCL – другой платформы, которую Nvidia поддерживает, но уж точно не так активно, как родную CUDA. Хотя CUDA пользуется популярностью в профессиональной среде, Nvidia, вероятно, всё же стоить рассмотреть возможность переноса некоторых специфических для CUDA функций в среду OpenCL, если компания хочет обеспечить дальнейший рост в данном сегменте.