没有合适的资源?快使用搜索试试~ 我知道了~
GPU加速微磁模拟器Grace:图形处理单元
⃝可在www.sciencedirect.com上在线获取ScienceDirectSoftwareX 3原始软件出版物www.elsevier.com/locate/softxGrace:图形处理单元茹竹物理系,格雷斯兰大学,拉莫尼,IA 50140,美国接收日期:2015年4月4日;接收日期:2015年11月2日;接受日期:2015年11月3日摘要介绍了一种运行在图形处理器(GPU)上的微磁模拟器与其他研究小组主要在NVidia的CUDA平台上运行的GPU实现不同,该模拟器是用C++加速的大规模并行计算(C++ AMP)开发的,并且是硬件平台无关的它运行在来自包括NVIDIA,AMD和Intel在内的供应商的GPU上,与以前的中央处理器(CPU)模拟器相比,它实现了两个数量级的显着性能提升该模拟器为在配备专用显卡的高端工作站和配备集成显卡的低端个人计算机上运行大尺寸微磁模拟铺平了道路,并可免费下载。2015作者由爱思唯尔公司出版 这是CC BY许可下的开放获取文章(http://creativecommons. org/licenses/by/4. 0/)。关键词:微磁学;仿真; GPU; C++ AMP代码元数据当前代码版本0.01此代码版本所用代码/存储库的永久链接https://github.com/ElsevierSoftwareX/SOFTX-D-15-00006法律代码许可证GNU公共许可证使用git的代码版本控制系统使用C++的软件代码语言、工具和服务以及C++AMP加速编译要求、操作环境依赖性Microsoft Visual Studio 2012或更高版本; Microsoft Windows 7或更高版本;C++AMP FFT Library 1.0如果可用,链接到开发人员文档/手册https://github.com/cygnusc/grace/blob/master/Grace.0.01/README.txt问题支持电子邮件graceland.edu1. 动机和意义微磁模拟器是研究磁动力学和开发新型磁器件的重要工具。基于中央处理器(CPU)的仿真器,如OOMMF [1]和magpar [2],广泛用于学术研究和工业应用。微磁模拟中最耗时的评价去磁化场具有N个计算单元的微磁样本的蛮力评估导致电子邮件地址:zhu@graceland.edu。时间复杂度为O(N)由于快速数值方法的应用,使用快速 傅 立 叶 变 换 ( FFT ) [3] 或 使 用 快 速 多 极 子 方 法(FMM)[4]的时间复杂度可以降低到O(NlogN)。尽管如此,在输入问题规模较大的情况下,模拟可能会很慢,因为CPU的处理能力有限。最近,几个研究小组报告了在图形处理单元(GPU)上实现微磁模拟器[5其目的是利用GPU的高计算能力来加速模拟。与此同时,GPU的成本(通常低于1000美元的高端产品)远远低于基于CPU的集群。此外,委员会还认为,http://dx.doi.org/10.1016/j.softx.2015.11.0012352-7110/ 2015作者。由爱思唯尔公司出版 这是CC BY许可下的开放获取文章(http://creativecommons. org/licenses/by/4. 0/)。28R. Zhu / SoftwareX 3δM××2A是µ0Ms用于计算退磁磁场的FFT算法可以很容易地在GPU上采用。事实上,它们通常包含在硬件供应商开发的数字库中。前面提到的GPU模拟器都是基于 NVidia的计算统一设备架构(CUDA)将其应用程序限制在NVidia GPU上。用CUDA编写的模拟器不能在其他供应商(如AMD或Intel)制造的GPU上运行。鉴于这些其他GPU(AMD Radeon,FirePro,Intel Iris和Xeon Phi)在专业工作站和个人计算设备上很受欢迎,因此需要开发一种不仅是GPU加速而且是硬件跨平台的微磁模拟器本文介绍了一种跨平台的微磁模拟器Grace,它的加速因子为对于大型问题的CPU计算,最高可达两个数量级。第二节讨论了微磁学模拟的公式。第3节描述了该公式在GPU上的实现。在第4节中,讨论了模拟器的潜在应用;µMag标准问题#3和#4 [10,11]用于验证计算结果。该模拟器的性能也进行了评估。最后,第5节总结了本文,并讨论了未来可能的工作。2. 软件描述2.1. 软件构架在磁性纳米结构中,磁化的动力学受到从磁能密度计算的有效磁场H eff的影响⇀δε⇀ ⇀ ⇀ ⇀应 用 离 散 卷 积 定 理 和 FFT , 可 将 运 算 时 间 减 少 到 O(NlogN)非周期性边界条件可以通过将其调整为零填充方法[3]来使用另一方面,交换场计算是用六个相邻方案完成的[14]。LLG方程的时间积分是用欧拉方法实现的。加速模拟的骨干硬件是GPU。与CPU相反,CPU的数量有限,虽然GPU具有复杂的控制单元的算术逻辑单元(ALU),但是GPU具有更多数量的ALU,但是对于每个ALU的控制不那么复杂。因此,GPU适用于计算密集型、高度并行化和简单算法。这就是为什么借助FFT算法的大规模微磁模拟是可以应用GPU加速的理想情况。软件平台是C++ Accelerated Massive Parallelism(C++AMP)[15],这是一个由微软开发的开放规范库,用于直接从C++实现数据并行。用于计算退磁场的FFT算法基于C++ AMP FFT库[16]。在大输入尺寸下,与基于CPU的FFT库(如FFTW)相比,该库可以提供两个数量级的性能增益这确保了模拟器的最佳性能。2.2. 软件功能该模拟器具有一个简单直接的输入文件、两个输出文件和一个gnuplot脚本文件,用于可视化模拟结果,如图1所示。输入和输出文件都是纯文本格式,以存储最佳兼容性的数据。在脚本文件中,用户可以指定模拟系统的几何形状,以及时间步长的大小和总时间步长。Heff= −其中δεδMHH=Hexch+Hanis+Hdemag+Hextern是ε关于M的泛函deriv ativ e,H是各向异性场。一模拟时间步长的数量。 默认离散化为1 nm 1 nm 1 nm,但可以修改。两个输出写入文件,一个记录样品的平均磁化强度,另一个记录样品的磁化强度。exch是交换字段,Anis均匀采样的计算单元。 写作间隔如何计算有效场中的每一项的详细版本可以在[12]中找到。控制低阻尼极限下磁动力学的⇀可以指定输出文件的模拟结果数据,例如,每10个时间步执行一个写操作。保存数据后,可以运行包含的gnuplot脚本来可视化磁化的时间演变。用户还可以拖动可视化面板从任何角度查看磁化dMγDT = −1+α2(M×µ0Heff)αγ⇀ ⇀ ⇀-(1+α2)Ms[M×(M×µ0Heff)]其中α是阻尼常数,γ是旋磁比。在微磁模拟中,最关键的一步,如前所述,是计算退磁场。在N个观测器上计算N个源的方向需要O(N2)的计算时间但由于消磁场3. 说明性实例µMag标准问题#3 [10]用于验证模拟结果。将立方样品离散为10 × 10 × 10个胞元,发现从花态到涡x态的转变点在l=108附近. 47lex,其中l是立方体的边长,lex=2实际上是磁化和退磁张量的卷积在一个定期离散的材料,计算-内在长度尺度这一结果与文献[9]的报道一致。弛豫后立方粒子的磁化强度如图1A和1B所示。2和3R. Zhu / SoftwareX 329−=×=5×× × ××Fig. 1. Grace的架构概述10.50-0.5图二、在µMag标准问题#3中,-10个0. 1个0.2t [ns]0.30.40.5在l= 8时的花态。47升前。图三.在µ Mag标准问题#3中,在l = 8时,花态立方粒子的磁化强度。6Lex.µMag标准问题#4 [11]也用于说明该软件的使用并验证计算结果。在这个问题中,薄膜样品被分成见图4。在µMag标准问题#4中,磁场1中,反转期间平均磁化强度与时间的关系。OOMMF的仿真结果进行了比较。图五.在µMag标准问题#4,场1中,当MX首次过零时的磁化分布在样品的左1/3和2/3处可以清楚地看到畴壁。在500 × 125 × 3个细胞中,每个细胞的尺寸为1 nm × 1nm × 1 nm。 样品的交换常数为A1 .310 −11 J/m,饱和磁化强度为M S8。0 10 A/m,并且没有各向异性。在施加外部磁场以反转磁化之前,通过设置大的阻尼常数使系统松弛到S状态。然后使用(24.6mT、4.3mT、0mT)。两个试验的阻尼常数α均设为0.02。输入文件如下:OOMMF MxOOMMF 我的OOMMFMzGrace MxGrace 我平均磁化强度30R. Zhu / SoftwareX 3图六、针对不同的3D问题大小执行一个时间步所需的时间请注意,由于非2的幂次输入大小的FFT计算速度较慢,因此会出现阶梯状行为表1CPU和GPU求解器使用Euler算法处理不同大小的3D问题所需的每步模拟时间数字以毫秒为单位。Mumax版本3.6.2本基准测试使用Windows 64位。可以观察到,对于较小的输入问题大小,Grace的性能优于Mumax,但对于大输入,Grace的性能要慢两倍左右。由于内存限制,Grace无法处理极大的输入,最后两行用N/A表示大小CPU i7 4770(OOMMF)NVidia GTX650 Ti(Mumax3)加速比NVIDIA GTX650 Ti(Grace)加速比AMD Radeon7970(Grace)加速比512(83)0.3251.090.2980.7330.4430.6770.4804096(163)0.9331.200.7780.7641.220.6831.378000(203)4.641.872.481.942.391.024.5515,625(253)6.182.053.013.211.921.195.1932 768(323)9.592.463.903.143.051.247.7364 000(403)53.16.578.089.545.572.8718.5125 000(503)56.912.74.4822.32.554.9411.5262 144(643)7314.05.2131.22.348.628.47512 000(803)49640.512.2471.16.9818.127.4100 000(1003)90779.211.45N/AN/A31.428.92 097 152(1283)105510310.24N/AN/A56.918.5根据图图4和图5中,Grace的平均磁化结果和磁化分布与OOMMF [11](该软件已广泛使用十年)的结果和磁化分布一致。因此,结果是可靠的。4. 影响该模拟器解决了从纳米到微米尺度的磁化动力学问题,具有广泛的应用前景。R. Zhu / SoftwareX 331××===×磁读/写头设计、磁记录介质建模和自旋扭矩器件开发中的阳离子。高仿真速度和低硬件要求允许在短时间和有限预算内进行大规模仿真。自从它公开发行以来,已经吸引了大量访问其下载页面(https://sites.google.com/site/gracegpu/)。根据在线统计工具Google Analytics的数据,每周有300多名用户访问下载页面。由于这项工作的主要目的是在微磁模拟中实现GPU加速,因此演示了模拟器性能的基准。交换常数为A110−11 J/ m,饱和磁化强度 Ms1000 kA/ m,各向异性场H100 kA/ m。将样品分成N N N的网格,并达到其通过将LLG方程应用于每个单元来计算松弛状态测试硬件是AMD Radeon HD 7970 GHz版GPU和Intel Xeon E5410CPU。使用中的GPU是消费市场上最快的GPU之一,但价格仍低于500美元。为了进行比较,还显示了在i7-4770CPU上运行的OOMMF的基准测试数据。如表1和图6所示,实现了大的加速因子,对于大的问题大小高达两个数量级。这表明Grace的性能与Mumax相当[6]。在复杂磁性纳米结构(磁性读/写头、自旋振荡器等)的模拟中经常看到大的问题尺寸,因此,在CPU上进行高精度的模拟可能需要数天时间,但如本文所述,借助GPU加速,可以将其还有其他可用的GPU编程平台,例如NVidia与需要程序在NVidia的GPU上运行的CUDA相比,C++ AMP完全兼容不同的硬件平台,因此用C++ AMP编写的程序可以迁移到不同的GPU而无需任何修改。OpenCL也是平台独立的,但C++ AMP是首选,因为它具有简化的应用程序编程接口(API),使开发人员更容易在GPU上编程[17,18]。GPU的计算能力远远大于每秒1万亿次浮点运算或高端产品的TFLOPS,但在CPU和GPU之间传输数据时要慢得多(约10 GB/s),这是高性能GPU计算的瓶颈。为了克服这个关键的速度瓶颈并最大限度地提高Grace的模拟速度,所有的模拟工作都是在GPU上完成的,在初始条件设置后,数据I/O要快得多(大于200 GB/s),除了将数据写入输出文件。通过在GPU上实现并行代码来隐藏存储延迟,包括退磁、交换、各向异性和外场的计算。5. 结论据作者所在大型模拟中实现了高达两个数量级的加速因子得益于其硬件兼容性,用户现在可以在配备集成显卡的笔记本电脑上运行较小规模的问题以获得初步结果,并在配备专业显卡的工作站上运行大规模问题以获得高精度的结果。未来将为Grace添加更多功能确认这项工作得到了格雷斯兰大学专业发展计划的支持。引用[1] 多纳休·迈克尔·约瑟夫,这是唐纳德·吉恩·波特. OOMMF用户指南。美国商务部技术管理局国家标准与技术研究所,1999年。[2] Scholz Werner 等 人 , 《 Scalable parallel micromagnetic solversformagnetic nanostructures》。Comput. Mater. Sci. 2003;28(2):366-83.[3] 林信夫斋藤浩二中谷义信基于卷积快速傅里叶变换的退磁场分布计算。Jpn J Appl Phys1996;35(12A):6065-73.[4] 作者:Yuan Samuel W. 微磁学的快速自适应算法。IEEE TransMagn1992;28(5):2031-6.[5] 卡凯·阿提拉,韦斯特法尔·埃尔马,赫特尔·里卡多.用图形处理单元加速有限元微磁模拟。IEEE TransMagn 2010;46(6):2303-6.[6] 范德维勒·本·阿恩。MuMax:一种新型的高性能微磁学仿真工具。JMagn Magn Mater 2011;323(21):2585-91.[7] ChangR,et al. FastMag:快速微磁解算器,用于复杂的磁结构. J Appl Phys2011;109(7):07D358.[8] 李少景,鲍里斯·利夫希茨,维塔利·洛马金。 图形处理单元加速微磁解算器。IEEE Trans Magn 2010;46(6):2373-5.[9] Lopez-DiazL等人,使用图形的微磁模拟处理单元。J Phys D:Appl Phys2012;45(32):323001.[10] 多纳休·迈克尔。等人µMAG标准问题#3。NIST,1998年3月Web. Jan.2015.[11] McMichael RD , et al. , Switching dynamics and critical behaviorofstandard problem No. 4,J Appl Phys2001;89(11):7603-5.[12] 朱茹。基于C++ AMP的微磁学模拟加速图形处理单元。arXiv预印本arXiv:1406.7459,2014年。[13] 中谷义信、上坂泰太郎、林信夫。微磁学Landau-Lifshitz-Gilbert方程的直接解。Jpn J ApplPhys 1989;28(12R):2485.[14] Donahue Michael J,Porter DonaldG.三维微磁学的交换能量公式。物理B:凝聚态物质2004;343(1):177-83。[15] 凯特·格雷戈里米勒·艾德C++ AMP:使用MicrosoftVisual C++ VisualC++加速了大规模并行性。O'Reilly Media,Inc. 2012年。[16] 丹尼尔·莫斯等人C++ AMP FFT库。Codebooks,Jan 2013.Web. 23君2014年。[17] 史蒂夫·戴兹。CUDA Programmer的C++ AMP。MSDN,2012年4月。Web.一月2015年。[18] 史蒂夫·戴兹。用于OpenCL程序员的C++ AMP。MSDN,2012年4月。Web.一月2015年。
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Python和Opencv的车牌识别系统实现
- 我的代码小部件库:统计、MySQL操作与树结构功能
- React初学者入门指南:快速构建并部署你的第一个应用
- Oddish:夜潜CSGO皮肤,智能爬虫技术解析
- 利用REST HaProxy实现haproxy.cfg配置的HTTP接口化
- LeetCode用例构造实践:CMake和GoogleTest的应用
- 快速搭建vulhub靶场:简化docker-compose与vulhub-master下载
- 天秤座术语表:glossariolibras项目安装与使用指南
- 从Vercel到Firebase的全栈Amazon克隆项目指南
- ANU PK大楼Studio 1的3D声效和Ambisonic技术体验
- C#实现的鼠标事件功能演示
- 掌握DP-10:LeetCode超级掉蛋与爆破气球
- C与SDL开发的游戏如何编译至WebAssembly平台
- CastorDOC开源应用程序:文档管理功能与Alfresco集成
- LeetCode用例构造与计算机科学基础:数据结构与设计模式
- 通过travis-nightly-builder实现自动化API与Rake任务构建
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功