过程层析成像中用于可视化的无矩阵有限元方法

计算科学 计算几何 计算机视觉 无基质
2021-12-05 13:29:41

我是计算机科学家,现在我对 GPU 上的矩阵乘法感兴趣。我的研究集中在矩阵自由有限元方法上,我乘以稀疏矩阵。稀疏矩阵可以乘常规或无矩阵。一般基于特殊的坐标函数。我有几个普遍的问题:这种方法有多受欢迎?此方法是否存在其他名称?我也在寻找专注于有限元方法的书籍和文章,尤其是矩阵自由乘法,我考虑一般书籍和文章。因为许多文章都基于相当复杂的例子,比如共轭梯度法或其他一些不同的例子。正如我在主题名称中所说,我尝试在过程断层扫描可视化中使用这种方法。

2个回答

添加到德米特里的答案(从这个问题的已删除版本复制过来):

无矩阵有限元是相对知名的。对于瞬态问题的显式方法,这涉及使用小参考矩阵和几何特定变换来应用有限元矩阵。

对于隐式问题,这通常与迭代求解器(如 CG、GMRES 等)结合使用。请注意,这通常还需要一个预处理器,其中许多可能无法很好地直接映射到 GPU。对于非线性隐式问题,这也可以与线性化中雅可比行列式的无矩阵逼近配对(例如,参见Ben Kirk 的论文,了解无矩阵隐式方法在 CFD 中的应用)。

对于显式方法的特定于 GPU 的实现,有大量关于有限元(特别是不连续 Galerkin)方法的无矩阵实现的文献;例如,参见 Hesthaven/Warburton(不是 GPU 特定的,但实现类似)和Klockner 等人。. 有关无矩阵隐式求解器的 GPU 实现的一些文献,请参阅Remacle、Gandham、Warburton,其中他们使用两个网格重叠的加法 Schwarz 预处理器求解热方程。

无矩阵方法是一类算法的总称,而不是特定方法。例如,考虑求解线性方程Ax=b.例如,如果你要使用高斯消去法解决这个问题,那么你需要预先计算所有元素A并在算法期间保留它们。如果要使用 Krylov 类型的迭代求解器,则需要将矩阵相乘A每一步都有一个向量。你可以做不同的事情。

  1. 预计算A并将其保存在内存中(也许作为稀疏数组)。
  2. 不要储存A,但是每次需要乘法时都重新计算(某些)它的元素A由一个向量。

第一种方法不是无矩阵方法,而第二种方法是。

现在回答你的问题:

  • 无矩阵元素最初的动机是缺乏用于计算的操作内存。尽管该问题尚未得到普遍解决,但在许多应用中,可以使用分布式内存并行计算或更有效的矩阵格式找到补救措施,这些格式允许存储矩阵并避免重新计算其元素。
  • 无矩阵方法对于 GPU 来说确实很有前景,因为在快速 GPU 核心上重新计算矩阵元素可能比将它们从主存储器传送到这个核心更便宜。