*113229*

“Современные информационные технологии”/2.Вычислительная техника и программирование

                                                  Карташов Д.А.

НИИ Молекулярной Электроники, Россия

Повышение эффективности вычислений результатов двухволновой рентгеновской рефлектометрии многослойных структур при использовании графических процессоров

            и технологии CUDA        

 В настоящее время развитие параллельных вычислительных технологий достигло значительного прогресса, так или иначе связанного с трёхмерными играми. Уже в течение нескольких лет графические процессоры (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.