基于GPU的稀疏矩阵LU分解(SparseLUFactorizationonAMDGPUs).PDF

基于GPU的稀疏矩阵LU分解(SparseLUFactorizationonAMDGPUs).PDF

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于GPU的稀疏矩阵LU分解(SparseLUFactorizationonAMDGPUs)

基于AMD GPU 的稀疏矩阵LU 分解 及其在电路仿真中的应用 任令 陈晓明 张晨曦 指导教师: 汪玉 摘要—稀疏矩阵求解已成为SPICE仿真器的瓶颈。由于稀疏矩阵LU分解中数据间的依赖性强,目前关于稀 疏矩阵求解的工作较少。较强的数据依赖性也决定了并行稀疏矩阵LU分解算法只有在共享内存的计算设备 上才能高效运行。但是共享统一内存的CPU核的个数通常很有限。最新的图形处理器(GPU )提供了一个 可能的解决方案:GPU拥有共享内存的众核结构。本文中,我们首次提出了一个基于GPU 的稀疏矩阵LU求 解器。我们针对GPU架构优化了任务划分、活跃线程数和内存访问模式。对于分解中浮点运算次数较多的 矩阵,我们的GPU稀疏矩阵LU分解相对单核CPU和8核CPU分别实现了10.5x和2.6x 的加速比。 一、 引言 SPICE (Simulation Program with Integrated Circuit Emphasis) [1]是当今最常用的电路仿真器。 然而,超大规模集成电路(VLSI )的快速发展对SPICE的性能提出了挑战。在当今的超大规模集 成电路中,后仿真寄生参数提取后的电路矩阵的尺寸很容易到达几兆,这使得后仿真在CPU上需 要几天甚至数周的时间才能完成。SPICE仿真中两个最耗时的步骤是利用LU分解求解稀疏矩阵 方程和参数更新。这两个步骤要被迭代进行许多次。 近十年来,GPU在许多领域得到了重要应用[2], [3]。目前已有一些工作使用GPU完成参数更 新[4], [5]。参数更新的并行化非常直观,它由一系列独立的任务组成,即电路中各个元件的参数 更新。然而,由于稀疏矩阵的结构很不规则,且LU分解中的数据间的依赖性很强,稀疏矩阵求 解器的并行化十分困难。据我们了解,目前尚没有能适合电路仿真的基于GPU的稀疏矩阵求解器。 以往的GPU LU分解工作集中在稠密矩阵上[6]– [9]。尽管基于GPU 的稠密矩阵LU分解性能非 常可观,在GTX 280上达到388 Gflop/s (Giga Floating point OPerations per second) [8],简单计 算可知我们不应该将稀疏矩阵当作稠密矩阵分解。以onetone2 (大小为36k * 36k) 为例,即 使将稠密LU分解的性能计算为1000 Gflop/s,对onetone2进行稠密LU分解仍需要15.5s,而单 核CPU上一个简单的串行稀疏LU分解只需要不到1s。 目前,稀疏矩阵LU求解器主要在CPU上实现。为了利用更多的并行性,SuperLU [10]– [12] 将 Supernode思想与Gilbert/Peierls (G/P) 的leftlooking [13]算法结合起来, 实现了对具有稠密块的矩 阵的高效分解。PARDISO [14]也利用了Supernode。Christen等人在GPU上实现了PARDISO [15]。 他们的思路仍然遵循基于GPU 的稠密矩阵分解。他们用GPU计算稀疏矩阵中的稠密块,而其余的 工作在CPU上完成。 然而,Supernode在电路矩阵等极稀疏的矩阵中很少出现。这使得基于Supernode的算法在处 理电路矩阵时比基于列的算法效率低。所以在KLU这款针对电路仿真优化的稀疏求解器中,采 用了直接的G/P left-looking算法[13]和对角块矩阵形式Block Triangular Form (BTF) [16],而放弃 了Supernode思想。 KLU只有串行版本。由于数据间高度依赖,并行G/P leftlooking算法只能高效运行在共享内 存的计算设备上,如现场可编程门阵列(Field Programmable Gate Array, FPGA), 多核CPU and GPU 。一些工作在FPGA实现了G/P leftlooking算法[17]– [19],但这些方法对大矩阵的可拓展性还 受限于FPGA很有限的片上资源。我们在多核CPU上也实现了这一算法[20],但能共享内存的CPU 核数通常很有限。大多数商用CPU都不超过6核,如Intel Xeon X5680, AMD Phenom II 。最新的 GPU为该问题提供了一个可能的解决途径。与CPU相比,GPU共享内存的核数远远多于CPU,且 拥有更高的内存带

文档评论(0)

75986597 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档