КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Структура программы. Приложения, использующие графический процессор, в настоящее время всегда состоят, по крайней мере, из двух частейПриложения, использующие графический процессор, в настоящее время всегда состоят, по крайней мере, из двух частей. Одна часть исполняется на центральном процессоре и обеспечивает: · взаимодействие приложения с периферийными устройствами (загрузка файлов с жёсткого диска) и с пользователем (запуск приложения, вывод данных на экран); · размещение исходных данных и результатов в оперативной памяти компьютера; · проведение непараллельных расчётов; · копирование необходимых данных в видеопамять, доступную графическому процессору, получение из видеопамяти результатов параллельного расчёта; · запуск вычислительного ядра на графическом процессоре.
Рис. 3.2. Схема и последовательность работы центрального процессора при моделировании прохождения нейтронов через пластину
Часть программы, исполняемую на графическом процессоре, называют вычислительным ядром. Одно и то же вычислительное ядро одновременно выполняется всеми вычислительными потоками. Оно может включать в себя: · получение данных из видеопамяти и запись данных в видеопамять; · обмен данными с разделяемой памятью; · использование регистров графического процессора; · арифметические и логические операции, другие встроенные в CUDA математические функции; · вызовы пользовательских функций (за исключением рекурсивных); · ветвления программы (операторы условного перехода); · циклы.
Рис. 3.3. Схема и последовательность работы центрального процессора при моделировании прохождения нейтронов через пластину Наш пример по расчёту проницаемости пластины методом Монте-Карло будет включать в себя действия, показанные на схемах рис. 3.2 и рис. 3.3. Действия, перечисленные на схеме рис. 3.2, выполняются последовательно, одним центральным процессором. Напротив, вычислительное ядро, запускаемое на графическом процессоре, исполняется параллельно большим количеством вычислительных потоков (в нашем примере их будет 32∙128 = 4096). Порядок работы вычислительного ядра показан на рис. 3.3.
|