没有合适的资源?快使用搜索试试~ 我知道了~
∼SoftwareX 6(2017)63原始软件出版物XaNSoNS:GPU加速的纳米颗粒衍射图案模拟器V.S. NeverovNRC阿提奇莱因福奥文章历史记录:接收日期:2016年10月5日接收日期:2016年2017年1月16日接受保留字:X射线和中子衍射模拟GPUa b st ra ctXaNSoNS是一个具有GPU支持的开源软件,它模拟了非晶或晶体纳米颗粒(高达107原子)的X射线和中子1D(或2D)衍射图案和对分布函数(PDF)在结构的多个参数中,用户可以指定原子位移、位置占据、分子位移和分子旋转。该软件使用非特定于晶体结构的通用方程来计算散射强度。它支持并行计算的四个主要标准:MPI,OpenMP,Nvidia CUDA和OpenCL,使其能够在各种架构上运行,从基于CPU的HPC到消费级GPU。©2017作者由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)。代码元数据当前代码版本30.12.2016(代码持续更新此代码版本使用的代码/存储库的永久链接https://github.com/ElsevierSoftwareX/SOFTX-D-16-00083法律代码许可证GPL v3使用git的代码版本控制系统软件代码语言、工具和服务使用C/C++、python、MPI、OpenMP、CUDA、OpenCL。编译要求,操作环境依赖性Linux,Mac OS,Microsoft Windows,Python 2.7,Numpy(python库),Periodictable(python库)、PyCifRW(python库)、TinyXML-2(包含)、C/C++编译器(支持C++11和OpenMP)、Nvidia CUDA SDK(适用于CUDA版本)、OpenCL头文件(适用于OpenCL版本)、MPI SDK(适用于MPI版本)如果可用,链接到开发人员文档/手册https://gitlab.com/vsnever/XaNSoNS/blob/master/XaNSoNS_user_manual.pdf问题支持电子邮件vs-never@hotmail.com软件元数据当前软件版本30.12.2016(代码持续更新此版本的可执行文件的永久链接https://gitlab.com/vsnever/XaNSoNS/tree/SoftwareX(仅主版本的64位可执行文件适用于Windows、Linux和Mac OS的模块包含在软件分发中,请参见用户手册了解兼容性问题)法律软件许可证GPL v3计算平台/操作系统Microsoft Windows,Linux,Mac OS安装要求依赖Python 2.7,Numpy(python库),Periodictable(python库),PyCifRW(python库)如果可用,链接到用户手册-如果正式出版,包括参考出版物在参考列表https://gitlab.com/vsnever/XaNSoNS/blob/master/XaNSoNS_user_manual.pdf问题支持电子邮件vs-never@hotmail.com1. 动机和意义已知非晶(或纳米晶)材料的衍射图案的分析是一项复杂的任务[1]。晶体介质缺乏典型的空间有序性,纳米结构上的X射线和中子散射(X-ray and Neutron Scattering on NanoscaleStructures)电子邮件地址:vs-never@hotmail.com。http://dx.doi.org/10.1016/j.softx.2017.01.004在纳米尺度的结构内容的重建中。为此任务开发的方法使用各种程序来拟合实验数据与模拟曲线。这些实验数据是衍射图案,或者更常见的是使用傅里叶变换从原始图案导出的成对分布函数(PDF)。为了解决这些问题,大部分的计算时间都花在了计算实际样品中例如,在广泛使用和2352-7110/©2017作者。由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)。可在ScienceDirect上获得目录列表SoftwareX期刊主页:www.elsevier.com/locate/softx64V.S. Neverov/SoftwareX 6(2017)63∼+计算密集的迭代反向蒙特卡罗(RMC)方法[2],在前一步之后稍微细化的原子系综的PDF必须在下一步计算。 这就是为什么非晶材料结构的表征问题需要高性能的PDF和衍射图案模拟。XaNSoNS(X射线和中子散射纳米结构)模拟X射线和中子1D(粉末)和2D(单晶)衍射图案和对分布函数(PDF)的非晶或结晶纳米粒子(高达107原子)的异质结构内容。结构含量的异质性意味着纳米颗粒可以包含具有可变结构参数的多个嵌段,由用户针对每种类型的结构嵌段定义。有六个版本的executable可以由用户构建,都具有相同的功能,但使用不同类型的并行化,并针对不同的计算设备和架构进行了优化也就是说,MPI或MPIOpenMP 版 本 可 以 在 仅 CPU 的 高 性 能 集 群 ( HPC ) 上 使用;OpenMP版本可以在普通PC上使用; CUDA和OpenCL版本可以在配备有基于GPU的协处理器的工作站和配备有现代GPU(分立或集成)的消费级PC上使用使用GPU的性能增益不仅是由于其高度并行架构的优势,而且还由于使用快速的内在三角函数。加速值取决于计算场景和硬件配置。对于高端台式PC,加速的特征值对于PDF模拟在20-40倍的范围内(不使用三角函数),对于2D衍射图案模拟在400-700倍的范围内具体硬件配置见表2和表3中的加速值XaNSoNS不是唯一的,也不是第一个利用GPU的能力来模拟衍射图案的软件,参见,例如,[3,4]。然而,与这些代码不同的是,XaNSoNS可以模拟以下所有内容:PDF,1D和2D衍射图案,并支持以 下 所 有 并 行 计 算 标 准 : MPI , OpenMP , Nvidia CUDA 和OpenCL。虽然代码是原创的,但有些想法来自作品[3,5]。XaNSoNS使用TinyXML-2解析器(https:github.com/leethomason/tinyxml2)解析XML文件中的参数配置。2. 软件描述2.1. 软件构架XaNSoNS架构如图所示。1.一、该软件由Python编写的包装器和C/C++编写的主模块组成。主模块完成所有繁重的计算。 包装器本身具有模块化结构。它有模块:(i) 在PyCifRW python库的帮助下从晶体学信息文件(CIF)格式导入数据[6];(ii) 借助Periodictable python库为特定模型样本填充X射线原子形状因子或中子散射长度表[7];(iii)读取、写入和编辑模拟参数的配置。包装器调用主模块的指定版本(共六个)此外,包装器实现了Python的应用程序编程接口(API),使人们能够在Python应用程序中使用XaNSoNS负责从CIF文件导入数据的模块具有以下适用性限制。 symme-try操作必须在CIF文件中显式提供,即文件应包含以下键之一:完整的分析Fig. 1.XaNSoNS的结构晶体学开放数据库(COD)[8]显示,由于这个原因,XaNSoNS无法处理其收藏的CIF文件中约4%Periodictable模块还有另一个适用性限制。它不包含某些离子的X射线形状因子。如果用户未提供丢失的形状因子,则该问题会阻止处理来自COD的另外4%的CIF文件(参见XaNSoNS用户手册[9]的附录B)。XaNSoNS主模块的六个版本的比较如表1所示。请注意,CUDA和OpenCL版本在具有CUDA计算能力2.0及更高版本的Nvidia GPU上执行时具有相同的性能。CUDA版本包括一些额外的优化,针对具有Tesla架构和CUDA计算能力1.3的旧Nvidia GPU。所有模拟参数以及模型样本(纳米粒子)的参数都在配置XML文件中设置。用户可以指定以下模拟参数:源(X射线或中子)的分辨率、源波长、模拟场景(即,计算什么:PDF、1D衍射图案、2D衍射图案以及使用什么方程)、所得到的PDF或衍射图案的分辨率、散射矢量幅度的范围、在单个衍射图案的情况下样品的空间取向。晶体衍射和其他一些次要参数。代表样品结构的模型纳米颗粒可以由任意数量的用户定义的结构块组成。该块的最小结构单元是原子团。原子簇可以描述晶体晶胞的对称元素的原子,或整个晶胞,或单个分子,或甚至整个结构块。如果原子团簇描述了对称元素的原子,则应提供对称等价位置对于晶体结构,还应该提供晶格矢量、晶胞边缘的长度和沿着每个方向的平移的数量模型样本可能包含结构块的多个副本,在3D空间中具有用户定义的位置和方向此外,用户可以指定位置占位,各向同性原子位移,各向同性分子位移,随机分子旋转(后者是专门为球形或近球形分子,如富勒烯)和一些其他的微参数。该软件能够从CIF文件中提取结构的参数(考虑到上述限制)。使用一组结构块的参数,XaNSoNS计算总原子系综。XaNSoNS可以使用Python API集成到复杂的计算场景中。在此API的帮助下,可以在python脚本中轻松指定模拟参数的配置V.S. Neverov/SoftwareX 6(2017)6365模拟2的集合的PDF所需的时间。4· 105个原子,并通过在GPU上运行模拟实现加速。CPU GPU加速,倍N+21=的vvfel(q)fel( q)(1)海利、杰凯∈i∈j我N表1XaNSoNS主模块的六个版本能力1.3或更高。OpenCL支持(1.2或更高版本)。表2模型TDP,W光刻,nm时间,秒模型TDP,W光刻,nm时间,秒英特尔酷睿i7-97013032108.5NVIDIA GTX Titan250283.0435.7英特尔至强E53458065525.9AMD Radeon R7652825.220.9英特尔酷睿i5- 3230 M3522305.1NVIDIA GeForce GT 740 M332875.24.1英特尔酷睿M 5Y714.5-614188.3英特尔HD 5300(集成)4.5-61457.03.3TDP是热设计功率。表3计算了模拟104原子系综二维衍射图样所需的时间以及在GPU上运行模拟所获得的加速比CPU GPU加速,倍模型TDP,W光刻,nm时间,秒模型TDP,W光刻,nm时间,秒英特尔酷睿i7-9701303256.2NVIDIA GTX Titan250280.09624英特尔至强E53458065248.2AMD Radeon R765280.94264英特尔酷睿i5- 3230 M3522178.3NVIDIA GeForce GT 740 M33280.44405英特尔酷睿M 5Y714.5-614135.1英特尔HD 5300(集成)4.5-6141.071262.2. 软件功能XaNSoNS使用众所周知的通用方程来计算PDF和衍射图案。以下所有方程都是针对X射线衍射给出的。直方图箱的数量N箱由纳米颗粒的线性尺寸和用户提供的箱宽度N箱(默认值为0.001 mm)确定。然后使用以下等式计算散射强度:德拜方程用于计算粉末衍射图案,而不需要直方图近似(与Eqs.(2)和(3)):1NelSx射线(q)=Neli=1feli(q)‘‘艾尔我内尔elj=elifeli(q)felj(q)内尔Sx射线( q)=内尔I=内尔j=阿吉辛格尔我JI El杰埃勒伊季村Nbin−1×k=0sin(qrk)二维K其中,Sx射线是散射强度,eli和elj是指数,其中,N"at“是在所述散射强度中化学元素(离子、同位素等),内尔总数是艾尔我nanoparticles和rk=(k +0. 5)△斌N是纳米颗粒中所有元素的原子总数,q是散射矢量大小, feli(q)是X射线原子形状因子对于具有索引eli的化学元素(或离子),i和j是原子间距离的直方图也用于计算部分PDF:1分别表示某些元素E1i和E1j的原子的指数Rij是第i个原子和第j个原子之间的距离。仅一半Peli,elj(rk)=4πρ0rk2N△Al-Heli,eljalek,(4)在Eq.(1)在真实模拟中计算,因为日吉。XaNSoNS可以使用直方图近似更快地计算粉末衍射图案,其中散射其中ρ0是用户提供的平均原子密度或近似计算的平均原子密度。使用以下公式计算总PDF:使用预先计算的原子间距离的直方图来计算强度。在这方面,XaNSoNS复制了[5],但扩展了该方法在GPU上的适用性这近似显著地减少了正弦函数的数量内尔内尔P(rk)=eli=1elj=eli内尔feli(qp)felj(qp)f2(qp)N培伊、杰(rk),(五)从而降低了计算时间。一旦计算原子间距离rij,Faqp 、更新条件(2)对其有效的bin,_el_i,_el_j_keli=1斌1El、(3)12版本Comp. 装置精度并行性目的非平行CPU双没有精度控制和调试。OpenMPCPU双是(OpenMP)在单台PC和工作站上进行模拟。MPICPU双是(MPI)基于CPU的HPC仿真MPI+ OpenMPCPU双是(每个MPI进程都与多个OpenMP线程并行)在具有适当资源管理的基于CPU的HPC上进行模拟(应CUDAGPU单个是(Nvidia CUDA)分配给每个MPI进程)。使用CUDA计算在Nvidia GPU上进行模拟OpenCLGPU单个是(OpenCL)在AMD、Intel或Nvidia GPU上进行模拟,66V.S. Neverov/SoftwareX 6(2017)63海埃利,杰 k=H el i,el j k+1。k△binrij≤(k+1)△bin,k= 0:Nbin− 1(2)<其中qp是用户定义的散射矢量幅度值计算其总PDF。此外,与[5]一样,XaNSoNS可以计算径向分布函数和简化PDF。V.S. Neverov/SoftwareX 6(2017)6367××××××·××图二. 粒度为10 ~ 10的氯化钠晶体的X射线粉末衍射图谱比较使用德拜方程(1)和方程(2)的直方图近似(3)在CPU和GPU上衍射图案之间没有可见的差异二维衍射图主要用于单晶分析,但也非常有助于分析先进的碳纳米结构,例如:碳纳米管和富勒烯通过下式计算图三. 用XaNSoNS软件对20 ~ 20 ~ 20晶胞大小的角闪石进行了三种不同的模拟,得到了其X射线粉末衍射图。尽管原子系综中存在随机性,但衍射图案之间没有可见的差异。SX射线q,φq1NelNfeli(q)我爱你、(六)i=1i∈i其中qri是散射矢量q和原子位置ri的点积。XaNSoNS有一些限制。主要的一个问题是它不支持(至少现在不支持)周期性边界条件(PBC)。注意,PBC支持的缺乏不一定是无定形固体的诊断中的单个纳米颗粒可以表示样品的体积元素。然而,重要的是要记住,某些值可能被扭曲,即,(i)对于q的低值的散射强度,以及(ii)高r值的PDF。此外,XaNSoNS中使用的方程不考虑多重散射、非弹性散射和吸收。3. 说明性实例首先,我们说明了使用GPU对模拟精度 图图2显示了具有10 ×10 × 10晶胞(8000个原子)尺寸的NaCl晶体的X射线粉末衍射图。前两个图案分别使用原始德拜方程(1)和直方图近似(3)后两个图案使用相同的等式在GPU上计算。所有四个衍射图案看起来都是一样的,所以在GPU上计算不会明显影响精度,也不会使用直方图近似。在[3]中对单精度数学和内三角函数的使用如何影响计算精度进行了全面的研究XaNSoNS发行版中包含了一些使用该软件的示例,包括显示实验数据处理的示例。所有示例均在用户手册[9]中进行了分析。两个例子如下所示。第一个例子展示了XaNSoNS如何模拟复杂矿物纳米晶体的粉末衍射图案。这是一个名为Cheralite的矿物的配置XML文件[10]。CIF文件来自晶体学开放数据库[8](结构ID:9000148)。该矿物具有复杂的化学式:(Ce 0. 15 La 0. 第14集0. 33 Ca 0. 32铅0. 01 U0. 05)(P 0 . 05)。96 Si 0. 04)O4。分数指数是占位值,其表示给定化学元素占据给定原子位置的概率。在该矿物中,Ce、La、Th、Ca、Pb和U原子共享同一原子位置,P和Si原子共享另一原子位置。XaNSoNS可以使原子在晶胞中相对于占位值随机分布。所以,两次不同的模拟运行创建了两个不同的原子系综。在这个例子中,替代缺陷不是随机性的唯一来源,因为原子位移参数非零(通常由原子的热运动引起)。XaNSoNS仅支持各向同性原子位移参数(使用中的“_atom_site_U_iso_or_equiv”键定义CIF文件)。XaNSoNS将图2中给出的这个参数解释然而,对于大的纳米颗粒(>104原子),由替代缺陷和原子位移引起的原 子系综的 随机性并 不导致模 拟粉末衍 射图的随 机性该cheralite的大小为202020个单位电池具有1 .一、92105原子。图图3示出了X射线粉末衍射图通过XaNSoNS的三种不同模拟获得。衍射图案之间没有可见的差异。第二个实施例显示了一束相同的三壁碳纳米管(TWCNT)的2DX射线衍射图案的模拟。下面是此模拟的配置XML文件。268V.S. Neverov/SoftwareX 6(2017)63图四、三 壁碳纳米管(TWCNT)束:(a)顶视图,(b)侧视图。来自该示例的TWCNT具有俄罗斯娃娃模型(它由三个不同半径和手性的单独的单壁碳纳米管(SWCNT)组成)。TWCNT的每一层都由XML中的单独结构块描述。TWCNT的长度为14nm。文件文件注意,没有研究该特定TWCNT束的物理参数。这个 例 子 只 是 展 示 了 软 件 的 功 能 。 图 4 显 示 了使 用 PyMOL( https://sourceforge.net/projects/pymol/ ) 可 视 化 的 TWCNT包。请注意,XaNSoNS可以将最终的原子系综保存为XYZ文件格式,几乎任何可视化原子簇的软件都支持这种格式束沿Z轴定向。为了获得信息性的2D衍射图案,CNT应垂直于入射波取向。由于入射波的方向与Z轴相反,因此需要旋转束。XML元素Euler/>定义了这种旋转。TWCNT束包含49448个原子;衍射图案的模拟仅需要Nvidia GTX Titan GPU上为0.4秒在现代高功率CPU上,它需要数百倍的时间用Matplotlib(www.example.com)可视化的模拟2D衍射图案http://matplotlib.org如图所示。 五、模拟了衍射图样,并绘制了极坐标图.调整颜色图以显示低于最大散射强度的2%的值4. 影响XaNSoNS的主要优势在于其性能。在CPU和GPU上计算PDF和2D衍射图案所需的时间,以及使用GPU带来的性能增益为图五、图1中所示的TWCNT束的模拟2D衍射图案。 四、如表2和表3所示。在此基准测试中,代码的OpenMP和OpenCL版本分别用于CPU和GPU上的模拟。请注意,使用直方图近似在GPU上模拟粉末衍射图案所需的时间(参见等式2)。(2)和(3))几乎等于计算直方图(和PDF)本身所需的时间。然而,对于CPU,该时间取决于非零直方图箱的总数。在最坏的情况下(大纳米颗粒;所有直方图箱都是非零的),粉末衍射图案的模拟可能需要PDF模拟的两倍长原子间距离的直方图是在GPU上使用64位原子函数计算的,以同步写入GPU内存。原子函数的GPU特定实现和GPU存储器访问速度强烈影响PDF模拟的性能。100-用于在GPU上模拟2D衍射图案的性能增益的倍数主要是由非常快的本征三角函数引起的。当然,这些函数不如C中的标准函数精确,但它们对于衍射图案模拟的任务来说足够精确[3]:实验衍射图案中总是存在不可避免的误差所产生的值的扩展通常比使用单精度数学和内在函数所产生的值的扩展要高得多XaNSoNS用于解释工作中碳质材料的实验衍射数据(最初为其 开 发 ) [11 此 外 , XaNSoNS 还 用 于 最 近 启 动 的 BOINC( https://boinc.berkeley.edu ) 项 目 XANSONSforCOD(http://xansons4cod.com)。 该项目旨在使用志愿者提供的计算资源,为晶体学开放数据库[ 8 ]中提供的材料的纳米晶相创建一个模拟X射线和中子粉末衍射图案的开放访问数据库。在本项目的测试阶段,软件的稳定性在多种硬件配置上得到了显著提高修复了几个错误我们相信,该软件以及GPU计算的算法将是研究非晶材料结构的研究人员感兴趣的由于该代码支持以下所有并行计算标准:MPI,OpenMP,CUDA和OpenCL,用于模拟PDF和衍射图案的相对简单的任务,因此该代码可能会对教育目的感兴趣为V.S. Neverov/SoftwareX 6(2017)6369例如,可以并排比较相同函数(内核)的CUDA和5. 结论开发了一个新的开源软件XaNSoNS,它可以模拟非晶或晶体纳米颗粒的X射线和中子1D(或2D)衍射图案和 它支持CPU上的并行计算,MPI和OpenMP,GPU上的CUDA和OpenCL。 该软件能够在各种硬件架构上运行,从基于CPU的高性能集群(得益于MPI)到集成GPU的低功耗笔记本电脑(得益于OpenCL)。对于大型(>105个原子)原子系综,GPU分别为PDF(和1D衍射图案)和2D衍射图案的模拟提供了超过CPU 10倍和100倍的性能增益对周期性边界条件的支持以及其他一些功能将在未来添加到XaNSoNS中致谢作者感谢A.B. Kukushkin和V.Yu. Murzin进行有益的讨论,A.A.Kulichenko为测试软件,和所有志愿者参加'这项工作得到了俄罗斯基础研究基金会(项目RFBR #15-07-07901-a)的支持。引用[1] 莱文·比林格科学2007;316:561. http://dx.doi.org/10.1126/science.1135080网站。[2] 麦格瑞维河《物理学凝结物杂志》2001;13:R877 http://dx.doi.org/10.1088/0953-8984/13/46/201网站。[3] Lønning Reiten A使用GPU支持的算法进行X射线散射模拟。挪威科技大学;2010年预印本http://www.nanowiki.no/images/0/0f/Gpu_scattering_v1.pdf。[4] Gelisio L,Azanza Ricardo CL,Leoni M,Scardi P. J Appl Cryst 2010;43:647.http://dx.doi.org/10.1107/S0021889810005133网站。[5] 沃迪尔湾德拜软件,https://github.com/wojdyr/debyer、http://debyer.readthedocs.io/en/latest/。[6] 小海丝特应用晶体学杂志2006;39:621. http://dx.doi.org/10.1107/S0021889806015627、https://bitbucket.org/jamesrhester/pycifrw/overview。[7] Kienzle P. Periodictable,http://www.reflectometry.org/danse/elements.html.[8] Gragululis S , Chateigner D , Downs RT , Yokochi AFT , Quirós M ,LutterottiL,etal.JApplCryst2009;42:726.http://dx.doi.org/10.1107/S0021889809016690、http://crystallography.net/cod/。[9] NeverovVS.XaNSoNS用户手册,https://gitlab.com/vsnever/XaNSoNS/blob/master/XaNSoNS_user_manual.pdf。[10] FinneyJJ,Nagaraja Rao N. 美国矿物1967;52:13。[11] Kukushkin AB , Neverov VS , Marusov NL , Semenov IB , Kolbasov BN ,Voloshinov VV , Afanasiev AP , Tarasov AS , Stankevich VG , SvechnikovNYu,Veligzhanin AA,Zubavichus YaV,Jazatonskii LA.化学物理学通讯2011;506:265。http://dx.doi.org/10.1016/j.cplett.2011.03.036网站。[12] Neverov VS , Voloshinov VV , Kukushkin AB , Tarasov AS. 物 理 原 子 核2015;78:1112。http://dx.doi.org/10.1134/S1063778815100075网站。[13] Neverov VS , Borisova PA, Kukushkin AB , Voloshinov VV. J Non-CrystSolids 2015;427:166. http://dx.doi.org/10.1016/j.jnoncrysol.2015.07.025网站。[14] Neverov VS,Borisova PA,Kukushkin AB,Voloshinov VV.纳米系统:物理化学数学2016;7(1):226. http://dx.doi.org/10.17586/2220-8054-2016-7-1-226-233网站。
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 前端协作项目:发布猜图游戏功能与待修复事项
- Spring框架REST服务开发实践指南
- ALU课设实现基础与高级运算功能
- 深入了解STK:C++音频信号处理综合工具套件
- 华中科技大学电信学院软件无线电实验资料汇总
- CGSN数据解析与集成验证工具集:Python和Shell脚本
- Java实现的远程视频会议系统开发教程
- Change-OEM: 用Java修改Windows OEM信息与Logo
- cmnd:文本到远程API的桥接平台开发
- 解决BIOS刷写错误28:PRR.exe的应用与效果
- 深度学习对抗攻击库:adversarial_robustness_toolbox 1.10.0
- Win7系统CP2102驱动下载与安装指南
- 深入理解Java中的函数式编程技巧
- GY-906 MLX90614ESF传感器模块温度采集应用资料
- Adversarial Robustness Toolbox 1.15.1 工具包安装教程
- GNU Radio的供应商中立SDR开发包:gr-sdr介绍
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功