NVIDIA объявила о выходе новой версии набора инструментов NVIDIA CUDA для разработки параллельных приложений с помощью графических процессоров NVIDIA.
Набор инструментов NVIDIA CUDA 4.0 был создан, чтобы упростить параллельное программирование и позволить еще более широкому кругу разработчиков портировать свои приложения на GPU. Основные возможности новой архитектуры:
Технология NVIDIA GPUDirect 2.0 обеспечивает равноправную связь между GPU в рамках одного сервера или рабочей станции, что упрощает и ускоряет мультипроцессорное программирование и работу приложений.
Унифицированная виртуальная адресация (UVA) организует единое адресное пространство для основной системной памяти и памяти GPU, что делает параллельное программирование еще быстрее и проще.
Библиотеки примитивов Thrust C++ - набор алгоритмов C++ с открытым кодом для параллельных расчетов и структур данных, которые упрощают программирование для разработчиков на C++. Thrust ускоряет стандартные операции, такие как параллельное хранение, в 5-100 раз по сравнению с библиотеками Standard Template Library (STL) и Threading Building Blocks (TBB).
«Унифицированная виртуальная адресация облегчает разработчикам переход на параллельные вычисления на GPU», - сказал Джон Стоун (John Stone), старший программист в Университете Иллинойса в Урбана-Кампейн.
«Возможность использования параллельных расчетов на GPU с помощью стандартных шаблонов заметно повышает продуктивность работы в широком спектре задач – от простого формирования денежных потоков до сложных расчетов с рыночными моделями Libor, переменными аннуитетами и корректировкой остаточных денежных потоков», - сказал Питер Декрем (Peter Decrem), директор Rates Products в Quantifi. «Библиотека Thrust C++ заметно уменьшила порог вхождения благодаря низкоуровневой функциональности, такой как доступ и распределение памяти, что позволяет финансовым специалистам сосредоточиться на разработке алгоритмов в среде с GPU-ускорением».
Архитектура CUDA 4.0 включает и другие функции и возможности:
MPI интеграция с приложениями CUDA – Модификация MPI, такая как OpenMPI, автоматически пересылает данные из и в память GPU по Infiniband, когда приложение посылает или получает запрос с MPI.
Многопоточность и GPU – Многочисленные потоки с CPU хоста могут обмениваться контекстом на одном GPU, что упрощает совместное использование GPU многопоточными приложениями.
Использование нескольких GPU одним потоком с CPU – Один поток с CPU хоста может иметь доступ ко всем GPU в системе. Разработчики могут легко распределить работу между несколькими GPU для таких задач, как обмен «ореолами» в приложениях.
Новая библиотека NPP для обработки изображений и компьютерного видения – Большой набор операций по трансформации изображения, которые позволяют быстро разрабатывать приложения обработки изображений и компьютерного зрения.
Новые и улучшенные возможности
Автоматический анализ производительности в Visual Profiler
Новые функции в cuda-gdb и поддержка MacOS
Поддержка функций C++, таких как новый/удалить и виртуальные функции
Новый бинарный дизассемлер на GPU