*113229*
“Современные информационные технологии”/2.Вычислительная техника и программирование
Карташов
Д.А.
НИИ
Молекулярной Электроники, Россия
В настоящее время развитие параллельных вычислительных
технологий достигло значительного прогресса, так или иначе связанного с
трёхмерными играми. Уже в течение нескольких лет графические процессоры (GPU) используются для неграфических вычислений, выполняя на
них сложные математические расчеты. Универсальные устройства с многоядерными
процессорами для параллельных векторных вычислений, используемых в трёхмерной
графике, достигают высокой пиковой производительности, которая центральным
процессорам (CPU) не под силу. Это связано с тем, что видеокарты состоят
из множества мультипроцессоров, которые управляют высокоскоростной памятью, что
делает их использование эффективным как для графических, так и для
неграфических вычислений.
Применение
GPU позволяет
значительно ускорить расчеты на обычных персональных компьютерах малой
стоимости за счет использования общей памяти и значительного параллелизма [1].
Современные видеоадаптеры содержат сотни математических исполнительных блоков,
и эта мощь может использоваться для значительного ускорения множества
вычислительно интенсивных приложений. Вместе с тем нынешние поколения GPU обладают достаточно гибкой
архитектурой, что вместе с высокоуровневыми языками программирования и
программно-аппаратными архитектурами раскрывает эти возможности и делает их
значительно более доступными.
До
недавнего времени эффективное использование вычислительных возможностей
видеокарт для неграфических вычислений оставалось сложным, из-за возможности
управления GPU только
через интерфейс прикладного программирования. Именно поэтому компания NVIDIA выпустила технологию
программирования Compute Unified Device Architecture (CUDA) - это программно-аппаратная вычислительная архитектура
NVIDIA, основанная
на расширении языка СИ со своим компилятором и библиотеками для вычислений на GPU.
Технология CUDA обеспечивает быструю разработку и адаптацию программ
для исполнения на GPU, а также
даёт возможность организации доступа к набору инструкций GPU и управления его памятью при
организации параллельных вычислений. Важно, что поддержка NVIDIA CUDA есть у всех
чипов G8x, G9x, GT2xx, GF1xx и GK1хх применяемых в видеокартах GeForce серий 8, 9, 200, 400, 500 и 600 которые очень широко
распространены [1, 2]. Конечно, максимальная скорость вычислений на GPU достигается лишь в ряде удобных
задач и имеет некоторые ограничения, но такие устройства уже начали довольно
широко применять в сферах, для которых они изначально и не предназначались.
Поскольку целью нашего исследования является использование GPU и технологии CUDA для увеличения эффективности
вычислений по интерпретации результатов двухволновой рентгеновской
рефлектометрии многослойных структур на кремниевых подложках, более детальную
информацию о технологии CUDA можно найти в [1], а также на сайте компании NVIDIA.
В
данной работе были определены параметры многослойной структуры с использованием
описанной технологии CUDA. В результате реализации алгоритма, было получено
значительное ускорение вычислений по сравнению с аналогичной реализацией на
центральном процессоре, что является критически важным для численного решения
обратных задач рентгеновской рефлектометрии. Современные
графические процессоры имеют большие возможности эффективного распараллеливания
операций, что позволяет получить решение на 1-2 порядка быстрее, чем на
центральном процессоре, что, безусловно, увеличивает эффективность вычислений
результатов рентгеновской рефлектометрии, и соответственно, значительно
увеличивает перспективность применения данного метода для анализа многослойных
структур в режиме on-line. Применяя групповой метод расчёта рефлектограмм на
видеокарте, удаётся уменьшить время вычислений ещё в несколько раз по сравнению
с одиночным методом расчёта рефлектограмм на GPU. С увеличением объёма данных в вычислительной модели
время обсчета на CPU растет
линейно, а на GPU нелинейно,
что было использовано для увеличения эффективности использования графических
процессоров [3]. Данный факт увеличивает перспективность использования
технологии CUDA в
решении задач по интерпретации результатов относительной двухволновой
рентгеновской рефлектометрии наноструктур.
Также нужно иметь в виду, что в настоящее время
графические процессоры являются оптимальной по соотношению цена-производительность
параллельной архитектурой с общей памятью [4]. При своей относительно невысокой стоимости по
вычислительным мощностям они сравнимы с более дорогими небольшими кластерами,
реализованными на центральных процессорах.
Литература:
1. NVIDIA CUDA Compute
Unified Device Architecture. Programming Guide. http://developer.download.nvidia.com/compute/cuda/2_0/NVIDIA_CUDA_Programming_Guide_2.0.pdf
2. Аляутдинов М.А., Троепольская Г.В. Использование современных многоядерных процессоров в нейрокомпьютерах для решения задач математической физики //Нейрокомпьютеры: разработка, применение, 2007. - № 9. - C. 71-80.
3. Карташов Д.А., Медетов Н.А., Смирнов Д.И., Орлов
Р.С., Иващенко О.В. // Электронный журнал «Труды МАИ».- 2010.- Выпуск № 40
4. Боярченков А.С., Поташников С.И. Использование графических процессоров и технологии CUDA для задач молекулярной динамики // Вычислительные методы и программирование, 2009. - Т. 10. - С. 9-23.