![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Перечислите виды и характеристики памяти, доступной из программы CPU при использовании архитектуры CUDA.Стр 1 из 3Следующая ⇒
Вопросы к защите л.р. по графике 1. Что такое ядро в терминологии CUDA? Ядро - функция, исполняемая на устройстве. 2. Как задается размерность и количество потоков ядра, выполняемого графическим процессором? При вызове функции используется синтаксис < < < dg, db> > >, где dg – размерность сетки, соответствующая числу параллельных блоков нитей, в которых будет исполняться ядро; db – размерность блока, равная числу нитей на блок. Размерность блока доступна через встроенную переменную blockDim. Количество потоков в блоке и количество блоков в решётке выбирается программистом исходя из максимизации загрузки ресурсов MP и с учётом аппаратных ограничений (количество регистров, разделяемой памяти и т.д.). Перечислите виды и характеристики памяти, доступной из программы GPU. Каждое арифметико-логическое устройство (АЛУ) обладает собственной регистровой и локальной памятью. Более быстрая разделяемая память доступна для каждого АЛУ блока. Мультипроцессоры (совокупность устройства управления, АЛУ, регистровой, локальной и разделяемой памяти) имеют доступ к значительно более медленным кэшу текстур, кэшу констант и глобальной памяти устройства. 4. Как указать требуемое размещение переменной в памяти GPU (регистровой, разделяемой, глобальной, памяти текстур, …)? С помощью квалификатора переменной. __device__ - размещение в глобальной памяти устройства, __shared__ - размещение в разделяемой памяти мультипроцессора, __constant__ - размещение в памяти констант, доступной только для чтения. Перечислите виды и характеристики памяти, доступной из программы CPU при использовании архитектуры CUDA. Чисто физически память GPU можно разделить на DRAM и на память, размещенную непосредственно на GPU (точнее, в потоковых мультипроцессорах). Однако классификация памяти в CUDA не ограничивается ее чисто физическим расположением. Ниже приводятся доступные виды памяти в CUDA и их основные характеристики.
6. С помощью функций какой группы осуществляется копирование блоков данных из основной памяти CPU в глобальную память GPU? Копирование данных между CPU и GPU осуществляется с помощью функций вида cudaMemcpy (void* dst, constvoid* src, size_tcount, enumcudaMemcpyKindkind). Чтобы копировать из основной памяти CPU в глобальную память GPU последний аргумент должен иметь вид cudaMemcpyHostToDevice. Копирует блок памяти размером count байт, расположенный по адресу src, в память по адресу dst. Один из этих блоков размещается в основной памяти компьютера, второй – в глобальной памяти графического процессора, какой из них где – определяется значением аргумента kind (допустимыcudaMemcpyHostToDevice и cudaMemcpyDeviceToHost). Возвращает либо код успешного завершения, либо код ошибки. 7. Что такое тип данных ulong2? Какие поля содержит этот тип данных? ulong2 – беззнаковыйlong с размерностью 2 и содержит поля x и y. *longдля чисел, которые не помещаются в int(integer). Содержит 64-разрядные (8-байтные) знаковые целые числа в диапазоне от -9, 223, 372, 036, 854, 775, 808 до 9, 223, 372, 036, 854, 775, 807 (9.2...E+18). 8. Какова максимальная размерность блока в потоках? Размерность блока доступна через встроенную переменную blockDim. Максимальные размерности: 512, 512, 64.
|