Главная » Просмотр файлов » Лекция. CUDA 1 (Колганов)

Лекция. CUDA 1 (Колганов) (1186105), страница 2

Файл №1186105 Лекция. CUDA 1 (Колганов) (Электронные лекции) 2 страницаЛекция. CUDA 1 (Колганов) (1186105) страница 22020-08-25СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 2)

Выходные данные получим в resultOnDevicecudaMemcpy(resultOnHost , resultOnDevice , nb, cudaMemcpyDeviceToHost); // переслать результаты на хостcudaFree(inputDataOnDevice) ; // освободить память на устройствеcudaFree(resultOnDevice )) ; // освободить память на устройствеПример: Запуск ядраint n = getSize(); // размер задачи//определения указателей, получение входных данных на хостеcudaMalloc( (void**)& inputDataOnDevice, nb) ; // выделить память на устройстве для входных данныхcudaMalloc( (void**)& resultOnDevice, nb) ; // выделить память на устройстве для хранения результатаcudaMemcpy(inputDataOnDevice, inputDataOnHost , nb, cudaMemcpyHostToDevice); // переслать на устройствовходные данныеdim3 blockDim = dim3(512), gridDim = dim3( (n – 1) / 512 + 1 ); // рассчитать конфигурацию запускаkernel <<< gridDim, blockDim >>> (inputDataOnDevice, resultOnDevice, n); // запустить ядро с рассчитаннойконфигурацией и параметрамиcudaMemcpy(resultOnHost , resultOnDevice , nb, cudaMemcpyDeviceToHost); // переслать результаты на хостcudaFree(inputDataOnDevice) ; // освободить память на устройствеcudaFree(resultOnDevice )) ; // освободить память на устройствеМодель исполнения SIMTCUDA и классификация ФлиннаАрхитектура ЭВМSIMD – всепроцессыодновременновыполняют однуинструкциюSMP – все процессыимеют равныеправа на доступ кпамятиMIMD – каждыйпроцессвыполняетсянезависимо отдругих,MPPMISDNUMASISDcc-NUMACUDA и классификация Флинна У Nvidia собственная модель исполнения,имеющая черты как SIMD, так и MIMD: Nvidia SIMT: Single Instruction – Multiple ThreadSIMDNvidiaSIMTMIMD(SMP)SIMT: виртуальные нити, блоки Виртуально все нити: выполняются параллельно (MIMD) Имеют одинаковые права на доступ к памяти (MIMD :SMP) Нити разделены на группы одинакового размера (блоки): В общем случае (есть исключение) , глобальнаясинхронизация всех нитей невозможна, нити из разныхблоков выполняются полностью независимо Есть локальная синхронизация внутри блока, нити из одногоблока могут взаимодействовать через специальную память Нити не мигрируют между блоками.

Каждая нитьнаходится в своём блоке с начала выполнения и до конца.SIMT: аппаратное выполнение Все нити из одного блока выполняются на одноммультипроцессоре (SM)Максимальное число нитей в блоке – 1024Блоки не мигрируют между SMРаспределение блоков по мультироцесссорам непредсказуемоКаждый SM работает независимо от другихБлокипрограммыВиртуальныйблок нитейGigaThread engineБлоки и варпы Блоки нитей по фиксированному правилу разделяются нагруппы по 32 нити, называемые варпами (warp) Все нити варпа одновременно выполняют одну общуюинструкцию (в точности SIMD-выполнение) Warp Scheduler на каждом цикле работы выбирает варп,все нити которого готовы к выполнению следующейинструкции и запускает весь варпВиртуальныйблок нитейВарпWarp SchedulerВетвление (branching) Все нити варпа одновременно выполняют одну и туже инструкцию. Как быть, если часть нитей эту инструкцию выполнятьне должна? if(<условие>), где значение условия различается длянитей одного варпаЭти нити «замаскируются» нулями в специальномнаборе регистров и не будут её выполнять, т.е.

будутпростаиватьВетвление (branching)Несколько блоков на одном SM SM может работать с варпами нескольких блоководновременно Максимальное число резидентных блоков на одноммультипроцессоре – 8 Максимальное число резидентных варпов – 48 = 1536 нитейВиртуальный блокВиртуальнынитейй блокнитейВиртуальный блокнитейВарпWarp SchedulerЗагруженность (Occupancy) Чем больше нитей активно на мультипроцессоре, темэффективнее используется оборудование Блоки по 1024 нити – 1 блок на SM, 1024 нити, 66% от максимума Блоки по 100 нитей – 8 блоков на SM, 800 нитей, 52% Блоки по 512 нитей – 3 блока на SM, 1536 нитей, 100%SIMT и глобальная синхронизация В общем случае, из-за ограничений по числу нитей иблоков на одном SM, не удаётся разместить сразу всеблоки программы на GPU Часть блоков ожидает выполненияПоэтому в общем случае невозможна глобальнаясинхронизация Блоки выполняются по мере освобождения ресурсовНельзя предсказать порядок выполнения блоков Если все блоки программы удалось разместить, товозможна глобальная синхронизация через атомарныеоперацииВручную, специальная техника «Persistent Threads»SIMT и масштабирование Виртуальное GPU может поддерживатьмиллионы виртуальных нитей Виртуальные блокинезависимыПрограмму можно запустить налюбом количестве SM Аппаратное МультипроцессорынезависимыМожно «нарезать» GPU cразличным количеством SMпрограммаблокSIMTMIMDварпSIMDнитьNvidia SIMT-всенити из одноговарпа одновременновыполняют однуинструкцию, варпывыполняютсянезависимоSIMD – все нитиодновременно выполняютодну инструкциюMIMD – каждая нитьвыполняется независимо отдругих, SMP – все нитиимеют равные возможностидля доступа к памятиВыводыХорошо распараллеливаются на GPU задачи, которые: Имеют параллелизм по данным Одна и та же последовательность вычислений, применяемая к разнымданным Могут быть разбиты на подзадачи одинаковой сложности подзадача будет решаться блоком нитей Каждая подзадача может быть выполнена независимо от всехостальных нет потребности в глобальной синхронизации Число арифметических операций велико по сравнению с операциямидоступа в память для покрытия латентности памяти вычислениями Если алгоритм итерационный, то его выполнение может бытьорганизовано без пересылок памяти между хостом и GPU послекаждой итерации Пересылки данных между хостом и GPU накладны.

Характеристики

Тип файла
PDF-файл
Размер
6,77 Mb
Тип материала
Высшее учебное заведение

Список файлов лекций

Электронные лекции 2016 года
Лекция 7. Диффуры. Разбиение сетки
Lection_Pictures
MPI_Decomposition.c
Puasson_Serial.c
Puasson_Serial_MeshGen.c
Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6366
Авторов
на СтудИзбе
310
Средний доход
с одного платного файла
Обучение Подробнее