Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Перечислите и охарактеризуйте функции компонент программного обеспечения CUDA.






CUDA (англ. ComputeUnifiedDeviceArchitecture) — программно-аппаратная архитектура параллельных вычислений, которая позволяет существенно увеличить вычислительную производительность благодаря использованию графических процессоров фирмы NVIDIA.

CUDA SDK позволяет программистам реализовывать на специальном упрощённом диалекте языка программирования Си алгоритмы, выполнимые на графических процессорах NVIDIA, и включать специальные функции в текст программы на Cи. Архитектура CUDA даёт разработчику возможность по своему усмотрению организовывать доступ к набору инструкций графического ускорителя и управлять его памятью.

SDK (от англ. softwaredevelopmentkit) — комплект средств разработки, который позволяет специалистам по программному обеспечению создавать приложения для определённого пакета программ, программного обеспечения базовых средств разработки, аппаратной платформы, компьютерной системы, игровых консолей, операционных систем и прочих платформ.

Программист, как правило, получает SDK непосредственно от разработчика целевой технологии или системы. Часто SDK распространяется через Интернет. Многие SDK распространяются бесплатно для того, чтобы побудить разработчиков использовать данную технологию или платформу.

Поставщики SDK иногда подменяют слово «software» в словосочетании «softwaredevelopmentkit» на более точное слово. Например, Microsoft и Apple предоставляют DriverDevelopmentKit (DDK) для разработки драйверов устройств, PalmSource называет свой инструментарий для разработки PalmOSDevelopmentKit (PDK), а Oracle — JavaDevelopmentKit (JDK).

26. Можно ли (и если да – то как) в программе для CPU выяснить, какую версию спецификации CUDA реализует видеокарта?

Следует воспользоваться функцией cudaGetDeviceProperties(cudaDeviceProp *prop, inti) и посмотреть значение полей prop.major и prop.minor.

27. Какую модель параллелизма реализует архитектура CUDA?

SIMT (одна инструкция на множество нитей).

28. Каковы дополнительные виды функций в расширении языка С для CUDA?

__global__ (вызывается CPU, выполняется GPU), __device__ (вызывается GPU, выполняется GPU), __host__ (вызывается CPU, выполняется CPU).

 

Миша: CUDA поддерживает все математические функции из стандартной библиотеки С, однако с точки зрения быстродействия лучше использовать их float-аналоги (а не double) - например sinf. Кроме этого CUDA предоставляет дополнительный набор математических функций (__sinf, __powf и т.д.) обеспечивающие более низкую точность, но заметно более высокое быстродействие чем sinf, powf и т.п.

29. Что делает препроцессор nvcc?

 

Файлы исходного кода на CUDA C компилируются при помощи программы NVCC, которая является оболочкой над другими инструментами, и вызывает их: cudacc, g++, cl и др. NVCC генерирует: код для центрального процессора, который компилируется вместе с остальными частями приложения, написанными на чистом Си, и объектный код PTX для видеочипа. Исполнимые файлы с кодом на CUDA в обязательном порядке требуют наличия библиотек CUDA runtimelibrary (cudart) и CUDA corelibrary (cuda).

Он прораб. Компилятор, который обрабатывает файлы с расширение *.cu и определяет, какой код будет работать на GPU, а какой на CPU.

 

30. Можно ли получить указатель на функцию, выполняемую графическим процессором:

Нет.

Инфа сотка: __device__ (функция выполняется на GPU, вызывается из GPU; рекурсия запрещена; статические переменные запрещены; фиксированное число параметров; указатель на функцию недопустим)

31. С помощью какого расширения синтаксиса из программы для CPU запускается ядро CUDA?

С помощью спецификатора < < < dg, db> > >.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.