Студопедия

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

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

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






Перечислите и охарактеризуйте дополнительные виды функций, существующие в расширении синтаксиса языка С для CUDA.






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

 

Миша: Смотри 28, приведём пример каких-нибудь математических функций.

35. Можно ли из программы для CPU прочитать данные из разделяемой памяти блока?

 

CUDA открывает некоторые аппаратные возможности, недоступные из графических API, такие как разделяемая память. Это память небольшого объёма (16 килобайт на мультипроцессор), к которой имеют доступ блоки потоков. Она позволяет кэшировать наиболее часто используемые данные и может обеспечить более высокую скорость, по сравнению с использованием текстурных выборок для этой задачи. Что, в свою очередь, снижает чувствительность к пропускной способности параллельных алгоритмов во многих приложениях. Например, это полезно для линейной алгебры, быстрого преобразования Фурье и фильтров обработки изображений.

Нельзя.

36. Каковы максимальное количество размерностей сетки блоков?

Максимальные x- и y- размерности сетки блоков равны 65535.

(cudaGetDeviceProperties -> maxGridSize)

37. Какие виды памяти доступны из программ для GPU?

Глобальная, разделяемая, кэш констант.

38. Как синхронизируются процессы в CPU и GPU?

В связи с асинхронностью запуска ядра введены дополнительные средства управления задачами (stream). Задача - это последовательность операций, выполняемых строго по очереди. Относительный порядок операций, принадлежащих различным задачам, не определён. По умолчанию, операция относится к задаче 0. При необходимости организовать выполнение нескольких паралелльных задач необходимо определить задачи и указывать их номера в командах запуска ядра и копирования из памяти в память. Установка переменной окружения CUDA_LAUNCH_BLOCKING в 1 блокирует асинхронное выполнени

/*Слава: Пусть имеются переменные cudaEvent_tstart, stop. Создаемсобытия: cudaEventCreate(& start), cudaEventCreate(& stop). ДалеевпрограммеотмечаемначалоcudaEventRecord(start, 0) иконецcudaEventRecord(stop, 0) расчетовисинхронизируемсясмоментомокончанияcudaEventSynchronize(stop). Синхронизация внутри блока достигается с помощью функции __syncthreads(). Эта функция заставит каждую нить ждать, пока все остальные нити этого блока достигнут этой точки и все операции по доступу к разделяемой и глобальной памяти, совершенные нитями этого блока, завершатся и станут видны нитям этого блока.*/

39. Можно ли одновременно использовать технологии и CUDA?

Да. Пруф с примером программы: sn.im/289es0g

В методичках не нашел

OpenMP (OpenMulti-Processing) — открытый стандарт для распараллеливания программ на языках Си, Си++ и Фортран. Описывает совокупность директив компилятора, библиотечных процедур и переменных окружения, которые предназначены для программирования многопоточных приложений на многопроцессорных системах с общей памятью.

 

40. Какие имена полей используются во встроенных векторных типах данных?

Обращение к компонентам вектора идет по именам - x, y, z, w.

 

41. С данными какого типа оперируют арифметико-логические устройства GPU CUDA?

Не нашел сведений по этому вопросу, оставляем ответ Славы

С теми, память под которые память выделена на устройстве.

 

42. Как узнать максимальное количество потоков в блоке для видеокарты NVIDIA, подключенной к CPU?

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






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