Особенности GPU реализации многочастичных потенциалов межатомного взаимодействия А.А. Книжник, А.С. Минкин, Б.В. Потапкин НИЦ «Курчатовский институт» Москва 2012 Преимущества GPU • Большое число вычислительных ядер, меньше транзисторов на управление и кэш. • RISC архитектура на уровне инструкций. • Большое число работающих нитей позволяет скрывать латентность доступа к глобальной памяти. • Низколатентная локальная память(16Кб на SM), к которой программист имеет непосредственный доступ, позволяет повысить производительность за счёт меньшего числа обращений к глобальной памяти. • Высокая производительность/$. • Высокая производительность/ватт. Объект исследования Модуль Юнга: YStainless steel = 210 ГПа YSWNT(5,5)= 1140 ГПа YSWNT/YStainless steel ~ 10 Коэффициент теплопроводности: KCopper= 401 Вт/(м∙К) KSWNT(10,10)= 2980 Вт/(м∙К) KSWNT/KCopper ~ 10 Метод классической молекулярной динамики dv a dt dr v dt ma F U Fl rl 2 3kT ,v mv m r – координата, m – масса атома, v – скорость атома, Т – температура. Углерод : 0.4 b 1.4 b Схема интегрирования. Скоростной алгоритм Верле Схема Верле, этап 1 r (t t ) r (t ) v(t )t 0.5 a(t )t 2 vt 0.5 t v(t ) 0.5 a(t )t Схема Верле, этап 2 at t U (r (t t )) / m vt t v(t 0.5 t ) 0.5 a(t t )t Метод молекулярной динамики Основные этапы Молекулярная динамика Вычисление сил Вычисление списка соседей Интегрирование уравнений движения Вычисление производных характеристик В случае короткодействующих потенциалов пространство моделирования состоит из независимых фрагментов, что даёт возможность построения параллельный реализации Потенциал Леннарда-Джонса Взаимодействие двух частиц зависит только от их взаимного расположения. Полная энергия – сумма парных взаимодействий. 1 N N U (r1 , r2 ,..., rN ) (rij ) 2 i 1 j 1 ( j i ) 12 6 rij 0, rij Rc rij 4 f rij 0, rij Rc r r ij ij 14 8 f rij 48 2 0.5 rij r rij ij Многочастичные потенциалы взаимодействия. Потенциал погруженного атома Многочастичные потенциалы позволяют правильно воспроизвести: 1. энергию образования вакансии, 2. упругие свойства кристаллов (например, c11/c44=1.5 для Cu), 3. зависимость связи от направления, Общая форма: Потенциал погруженного атома Потенциал Терсоффа 1 pair mb U 0.5U ij rij U i 2 i j i U ijpair rij VR rij U imb 0.5 bijVA rij V A rij f ij rij Bij exp 2,ij rij b 1 G f r exp r VR rij f ij rij Aij exp 1,ij rij n ij ij k ( i , j ) i 1 n 2n ij ijk ik ik m 3,ijk j i ij rik m Порядок связи Суммы по группам из трех атомов с учётом образуемых ими углов. Функция обрезания c2 c2 Gi ijk ijk 1 2 2 2 d d cos cos 0 1, если rik R D, 1 r R f ik rik 1 sin , если R D rik R D, 2D 2 0, если rik R D, OpenCL • Поддержка большого набора устройств и архитектур: NVIDIA GPUs, ATI GPUs, Cell BE, x86, ARM (Mali T604,T658), Qualcomm APQ8064/Adreno 320, PowerVR (SGX544) и другие embedded процессоры. • Возможность совместного использования OpenCL кода в гетерогенных CPU/GPU вычислениях. • Кроссплатформенность. • Возможность использовать средства отладки: – AMDgDEBugger and Intel SDK for OpenCL – Debugger. – OpenCL Emu с AMD APP SDK. – cl_amd_printf and cl_intel_printf debug extensions. – cudagdb. Потенциал Терсоффа. Алгоритм I (с атомарными операциями) N атомов, N GPU потоков! Fi Fi j 1 VR rij ri bij 2 j 1 VA rij bij 2 r ri j ,k i VA rij , bij ri p( ij ) VA rij 1 bij bij ij 1 F j F j bij VA rij , p( ij ) 2 j r j 2 j ,k r j r j r j bij ij 1 bij Fk Fk VA rij , p( ij ) 2 j ,k rk rk rk p( ij ) 0.5 1 ij / 1 n 2 n 1 n ij ij ij ri Атомарные операции k1 Пример реализации : i1 i1 j2 j1 i1 =j2 int waiting = 1; j1 =k2 while (waiting) { if (!atom_xchg(&semaphor[k], 1)) { accel[k].x += (1./mmk) * prefactor * z_sh_ij_sum.x ; accel[k] .y += (1./mmk) * prefactor * z_sh_ij_sum.y; accel[k] .z += (1./mmk) * prefactor * z_sh_ij_sum.z; atom_xchg(&semaphor[k], 0); waiting = 0; } } k2 i2 i2 Потенциал Терсоффа. Алгоритм II (без атомарных операций) N атомов, N GPU потоков! 1 Eij E ji Fi 2 j i ri ri E jk 1 2 j i , k i ri Eij VR rij VA rij bij bij ij bij VA rij p( ij ) ri ri ri ri ri ri E ji ri E jk ri VR rij ri b jk ri b ji ji VA rij b ji b ji VA rij p( ji ) ri ri ri ri VA rjk b jk ri p( jk ) jk ri Потенциал погруженного атома. Алгоритм I (с атомарными операциями) 1 pair U i U ij rij Ei c j rij 2 j i j i pair 1 Ei c j (rij ) U ij (rij ) Fi Fi 2 j i i ri ri pair c ( r ) U (rij ) 1 Ei j ij ij Fj Fj 2 i r j ri U U i i Атомарные операции Потенциал погруженного атома. Алгоритм II (без атомарных операций) E j c E c j 1 U ijpair rij i i Fi j ri 2 ri j i i ri U U i i Вычисления внутри потока 1 pair U i U ij rij Ei c j rij 2 j i j i Производительность алгоритмов с атомарными операциями Отношение \ число атомов 1000 2000 4000 8000 1600 0 Tersoff, Алгоритм II / Алгоритм I EAM, Алгоритм II / Алгоритм I 9.67 9.62 10.42 10.68 11.94 0.51 0.48 0.47 0.48 0.49 Оценка ускорения OpenCL алгоритмов GPU – NVidia GeForce GTX 470, CPU – Core i5 760 (4 cores) Использование GPU – эффективный способ ускорения вычисления многочастичных потенциалов межатомного взаимодействия, обладающих большей вычислительной сложностью по сравнению с парными. Оценка ускорения OpenCL алгоритмов GPU – NVidia GeForce GTX 470, CPU – Core i5 760 (4 cores) Использование GPU – эффективный способ ускорения вычисления многочастичных потенциалов межатомного взаимодействия, обладающих большей вычислительной сложностью по сравнению с парными. Выводы • Алгоритмы молекулярной динамики могут быть эффективно реализованы на графических процессорах. • Графические процессоры позволяют получить значительное ускорение вычисления парных и многочастичных потенциалов межатомного взаимодействия. • Атомарные операции с глобальной памятью не всегда приводят к замедлению вычисления конечного результата. • OpenCL является эффективной технологией программирования графических процессоров и реализации алгоритмов атомистического моделирования на основе молекулярной динамики. Работа проводилась при финансовой поддержке Министерства образования и науки Российской Федерации, в рамках ГК № 07.514.11.4002 Спасибо за внимание