4265

Возможности NVIDIA CUDA

Доклад

Информатика, кибернетика и программирование

Возможности NVIDIA CUDA Технология CUDA — это программно-аппаратная вычислительная архитектура NVIDIA, основанная на расширении языка Си, которая даёт возможность организации доступа к набору инструкций графического ускорителя и управления его ...

Русский

2012-11-15

17.64 KB

35 чел.

Возможности NVIDIA CUDA

Технология CUDA — это программно-аппаратная вычислительная архитектура NVIDIA, основанная на расширении языка Си, которая даёт возможность организации доступа к набору инструкций графического ускорителя и управления его памятью при организации параллельных вычислений. CUDA помогает реализовывать алгоритмы, выполнимые на графических процессорах видеоускорителей GeForce восьмого поколения и старше (серии GeForce 8, GeForce 9, GeForce 200), а также Quadro и Tesla.

Хотя трудоёмкость программирования GPU при помощи CUDA довольно велика, она ниже, чем с ранними GPGPU решениями. Такие программы требуют разбиения приложения между несколькими мультипроцессорами подобно MPI программированию, но без разделения данных, которые хранятся в общей видеопамяти. И так как CUDA программирование для каждого мультипроцессора подобно OpenMP программированию, оно требует хорошего понимания организации памяти. Но, конечно же, сложность разработки и переноса на CUDA сильно зависит от приложения.

Набор для разработчиков содержит множество примеров кода и хорошо документирован. Процесс обучения потребует около двух-четырёх недель для тех, кто уже знаком с OpenMP и MPI. В основе API лежит расширенный язык Си, а для трансляции кода с этого языка в состав CUDA SDK входит компилятор командной строки nvcc, созданный на основе открытого компилятора Open64.

Перечислим основные характеристики CUDA:

  1.  унифицированное программно-аппаратное решение для параллельных вычислений на видеочипах NVIDIA;
  2.  большой набор поддерживаемых решений, от мобильных до мультичиповых
  3.  стандартный язык программирования Си;
  4.  стандартные библиотеки численного анализа FFT (быстрое преобразование Фурье) и BLAS (линейная алгебра);
  5.  оптимизированный обмен данными между CPU и GPU;
  6.  взаимодействие с графическими API OpenGL и DirectX;
  7.  поддержка 32- и 64-битных операционных систем: Windows XP, Windows Vista, Linux и MacOS X;
  8.  возможность разработки на низком уровне.

Касательно поддержки операционных систем нужно добавить, что официально поддерживаются все основные дистрибутивы Linux (Red Hat Enterprise Linux 3.x/4.x/5.x, SUSE Linux 10.x), но, судя по данным энтузиастов, CUDA прекрасно работает и на других сборках: Fedora Core, Ubuntu, Gentoo и др.

Среда разработки CUDA (CUDA Toolkit) включает:

  1.  компилятор nvcc;
  2.  библиотеки FFT и BLAS;
  3.  профилировщик;
  4.  отладчик gdb для GPU;
  5.  CUDA runtime драйвер в комплекте стандартных драйверов NVIDIA
  6.  руководство по программированию;
  7.  CUDA Developer SDK (исходный код, утилиты и документация).


 

А также другие работы, которые могут Вас заинтересовать

36248. Программные агенты: классификация, структура. Многоагентные системы 43.5 KB
  Классификация агентов. Классификация агентов типы агентов Простые Смышленые Интеллектуальные характеристики Автономное выполнение Взаимодействие с другими агентами и пользователями Слежение за окружением Способность использования абстракций Способность использования предметных знаний Возможность адаптивного поведения для достижения цели Обучение из окружения Терпимость к ошибкам Rel time исполнение ER взаимодействие С позиции изучаемой дисциплины нас прежде всего...
36249. Экспертные системы: виды, структура, этапы построения 119 KB
  При разработке ЭС определяются основные ресурсы к которым относятся: источники знаний время разработки вычислительные средства объем финансирования. Этап завершается созданием модели предметной области и определением следующих задач: типов доступных данных; исходные и выходные данные; используемые стратегии и гипотезы; типы используемых отношений; состав знаний используемых для решения задачи; состав знаний используемых для обоснованного решения. В ходе данного этапа производится оценка выбранного способа представление...
36250. Ресурсы. Свойства и классификация ресурсов. Дисциплины распределения ресурсов 79 KB
  Понятие ресурса. Ресурсы различаются по запасу выделяемых единиц ресурса и бывают в этом смысле исчерпываемые и неисчерпываемые. Исчерпываемость ресурса как правило приводит к жизненным конфликтам в среде потребителей Для регулирования конфликтов ресурсы должны распределяться между потребителями по какимто правилам в наибольшей степени их удовлетворяющим. Именно в этом смысле далее и трактуется понятие ресурса.
36251. Процессы. Задачи синхронизации. Задача взаимного исключения, задача Производитель-потребитель, задача Читатели-писатели 51 KB
  На уровень долгосрочного планирования выносят действия редкие в системе, но требующие больших системных затрат. На уровень краткосрочного планирования выносятся частые и более короткие по длительности действия по управлению процессами.
36252. Аппаратная реализация взаимоисключения: команда test and set. Семафоры. Обеспечение взаимоисключения при помощи семафоров 50 KB
  Главным фактором, обеспечивающим успех в этом случае, является наличие одной аппаратной команды, которая осуществляет чтение переменной, запись ее значения в область сохранения и установку нужного конкретного значения этой переменной
36253. Структура оперативной памяти. Организация виртуальной памяти. Страничное, сегментное и сегментно-страничное распределение памяти 71.5 KB
  Структура оперативной памяти. Организация виртуальной памяти. Страничное сегментное и сегментно-страничное распределение памяти. Структура памяти любой машины является многоуровневой.
36254. Файловая система. Имена, типы, логическая и физическая организация файлов. Основные возможности файловой системы NTFS 71.5 KB
  В широком смысле понятие файловая система включает: совокупность всех файлов на диске наборы структур данных используемых для управления файлами такие например как каталоги файлов дескрипторы файлов таблицы распределения свободного и занятого пространства на диске комплекс системных программных средств реализующих управление файлами в частности: создание уничтожение чтение запись именование поиск и другие операции над файлами. Пользователи дают файлам символьные имена при этом учитываются ограничения ОС как на...
36255. Архитектура операционной системы (ОС). Требования, предъявляемые к ОС: расширяемость, переносимость, совместимость, безопасность. Состав ОС 114 KB
  Архитектура операционной системы ОС. Функциональная сложность операционной системы неизбежно приводит к сложности ее архитектуры под которой понимают структурную организацию ОС на основе различных программных модулей. Обычно в состав ОС входят: исполняемые и объектные модули стандартных для данной ОС форматов; библиотеки разных типов; модули исходного текста программ; программные модули специального формата например загрузчик ОС драйверы вводавывода; конфигурационные файлы; файлы документации; модули справочной системы и т. Большинство...
36256. Функция, процедуры и службы администрирования. Объекты администрирования. Обязанности и права системного администратора информационных систем 37.5 KB
  Службы: необходимы для облегчения администрирования работы и защиты сетей. Пример существующих служб: службы управления конфигурацией контролем характеристик ошибочными ситуациями учетам и безопасностью; службы управления общего пользования; информационные службы; интеллектуальные службы; службы регистрации сбора и обработки информации; службы планирования и развития.