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 (исходный код, утилиты и документация).


 

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

18443. Работа со строками в PHP 207 KB
  Серверные технологии разработки webсайтов Работа со строками в PHP Строки Вероятно читатели примерно представляют что такое тип данных строка и как создать переменную такого типа. В одной из первых лекций мы приводили три способа задания строк: с помощью одинарных
18444. Регулярные выражения в PHP 190.5 KB
  Серверные технологии разработки webсайтов Регулярные выражения в PHP Понятие регулярного выражения Регулярное выражение regular expression это технология которая позволяет задать шаблон и осуществить поиск данных соответствующих этому шаблону в заданном тексте предст
18445. Основы клиент-серверных технологий 185 KB
  Серверные технологии разработки webсайтов Основы клиентсерверных технологий Основы клиентсерверных технологий В самом начале курса мы уже говорили о том что PHP это скриптовый язык обрабатываемый сервером. Сейчас мы хотим уточнить что же такое сервер какие функ
18446. Работа с файловой системой средствами PHP 188 KB
  Серверные технологии разработки webсайтов Работа с файловой системой средствами PHP Создание файла Функция fopen Вообще говоря в PHP не существует функции предназначенной именно для создания файлов. Большинство функций работают с уже существующими файлами в файловой
18447. Механизм сессий в PHP 158 KB
  Серверные технологии разработки webсайтов Механизм сессий в PHP В этой лекции мы разберем что такое сессии и в чем их специфика в PHP решим одну из основных задач возникающих при построении болееменее сложных информационных систем сайтов задачу авторизации доступа п
18448. Основные понятия реляционных баз данных и языка SQL 181 KB
  Серверные технологии разработки webсайтов Основные понятия реляционных баз данных и языка SQL В данной лекции мы рассмотрим основные понятия теории баз данных и познакомим читателей с системой управления базами данных MySql способами работы с ней ее особенностями и реа
18449. Взаимодействие PHP и СУБД MySQL 146.5 KB
  Серверные технологии разработки webсайтов Взаимодействие PHP и СУБД MySQL Для наглядности будем строить эти интерфейсы для таблицы Artifacts в которой содержится информация об экспонатах виртуального музея информатики. Каждый экспонат в коллекции Artifacts описывается с помощью...
18450. Объекты и классы в PHP 184 KB
  Серверные технологии разработки webсайтов Объекты и классы в PHP Классы и объекты Начнем с основных понятий объектноориентированного программирования класса и объекта. Существует множество определений этих понятий. Мы дадим следующее: объект это структурированн
18451. Взаимодействие PHP и XML 164 KB
  Серверные технологии разработки webсайтов Взаимодействие PHP и XML 14. Лекция: Взаимодействие PHP и XML: версия для печати и PDA Лекция знакомит с понятием объектной модели XMLдокумента и ее использованием в PHP. Установка расширения DOM XML. Обработка элементов XML документа с помо