【技术实现步骤摘要】
【国外来华专利技术】图形处理单元上的高性能稀疏三角求解
技术介绍
三角矩阵是一种类型的方阵,所述方阵在矩阵的主对角线上方或下方具有仅零元素。下三角矩阵在主对角线上方具有仅零元素,使得矩阵中的任何非零元素都在下三角中、在主对角线上或在主对角线下方。上三角矩阵在主对角线下方具有仅零元素,使得矩阵中的任何非零元素都在上三角中、在主对角线上或在主对角线上方。三角矩阵可用于在线性代数的领域中表示方程组。稀疏三角矩阵是在填充的三角中具有大量零元素的三角矩阵;例如,稀疏的下三角矩阵在其下三角中具有一个或多个零值。稀疏三角求解(SpTS)是用于求解方程式Ax=y中的向量x的过程,其中A是具有N个行和N个列的稀疏三角矩阵,x是N个未知值的向量,且y是N个已知值的向量。如果矩阵A中唯一的非零值位于主对角线上和所述对角线的一侧,则可使用替换来求解向量x。求解向量条目x[n]依赖于已在下三角矩阵中进行前向替换的情况下求解所有先前向量条目(例如,x[0]-x[n-1])。然而,如果矩阵稀疏,则三角矩阵值中的一些也为零,并且可在并行处理器上并行地求解多行。附图说明在附图的图示中通过举例的方式而非限制的方式示出本公开。图1示出根据实施方案的用于执行稀疏三角求解(SpTS)的并行计算系统的实施方案。图2示出根据实施方案的计算装置。图3示出根据实施方案的计算装置中的多个处理单元和存储器。图4A示出根据实施方案的稀疏三角矩阵和向量的矩阵乘法。图4B示出根据实施方案的SpTS的依赖图。图4C示出根据实施方案的压缩稀疏行(CS ...
【技术保护点】
1.一种方法,其包括:/n将稀疏三角矩阵存储为压缩稀疏行(CSR)数据集;/n针对第一向量中的多个因子中的每个因子,通过执行以下各项来计算所述因子的值:/n针对所述因子标识所述第一向量中的一组一个或多个在先因子,其中所述因子的所述值取决于所述一个或多个在先因子中的每一个;/n响应于完成数组指示所述一个或多个在先因子值中的全部被求解,基于以下各项来计算所述因子的所述值:/n所述矩阵的行中的一个或多个元素,以及/n对应于所述行的乘积值;以及/n在所述完成数组中,针对所述因子断言指示所述因子被求解的第一完成标志。/n
【技术特征摘要】
【国外来华专利技术】20180420 US 15/958,2651.一种方法,其包括:
将稀疏三角矩阵存储为压缩稀疏行(CSR)数据集;
针对第一向量中的多个因子中的每个因子,通过执行以下各项来计算所述因子的值:
针对所述因子标识所述第一向量中的一组一个或多个在先因子,其中所述因子的所述值取决于所述一个或多个在先因子中的每一个;
响应于完成数组指示所述一个或多个在先因子值中的全部被求解,基于以下各项来计算所述因子的所述值:
所述矩阵的行中的一个或多个元素,以及
对应于所述行的乘积值;以及
在所述完成数组中,针对所述因子断言指示所述因子被求解的第一完成标志。
2.如权利要求1所述的方法,其还包括:
将所述矩阵的元素存储在所述CSR数据集的值数组中;
在所述CSR数据集的列数组中,针对存储在所述值数组中的所述元素中的每一个标识所述矩阵的列;以及
在所述CSR数据集的行指针数组中,标识所述矩阵的每一行中的元素。
3.如权利要求1所述的方法,其还包括:针对所述多个因子中的每个因子:
发起用于计算所述因子的所述值的线程,其中所述线程是并行执行的多个线程中的一个。
4.如权利要求3所述的方法,其还包括:针对所述多个线程中的每个线程:
对在所述线程中执行的自旋循环的迭代次数进行计数,以用于监视所述完成数组中的第二完成标志,其中所述第二完成标志与所述在先因子中的一个相关联;以及
响应于所述迭代次数超过限度,
终止所述自旋循环,
在所述多个并行处理线程中的所有线程已完成时将子内核入队以便执行,以及
在所述子内核中的新线程中监视所述完成标志。
5.如权利要求4所述的方法,其还包括:
检查子启动标志,其中在所述子启动标志被取消断言时执行所述子内核的所述入队;以及
结合所述子内核的所述入队,断言所述子启动标志。
6.如权利要求1所述的方法,其还包括:针对所述多个因子中的每个因子:
执行第一自旋循环以监视所述完成数组中的第一完成标志,其中所述第一完成标志在所述CSR数据集的列数组中的第一位置处指定,并且其中所述列数组中的所述第一位置由对应于所述因子的行指针指示;以及
响应于确定所述第一完成标志被断言并且所述列数组中的第二位置对应于所述稀疏三角矩阵的非对角线元素,执行第二自旋循环以监视所述完成数组中的第二完成标志,其中所述第二完成标志在所述列数组中的所述第二位置处指定。
7.如权利要求6所述的方法,其中:
所述行指针在行指针数组中的位置对应于所述因子在所述向量中的位置;
所述行指针是所述列数组中的所述第一位置的索引;并且
所述列数组的所述第一位置存储所述完成数组中的所述完成标志的索引。
8.如权利要求1所述的方法,其还包括:针对所述多个因子中的每个因子:
存储所述在先因子中的每一个的完成标志;
通过递增所述在先因子的所述完成标志中最高值的完成标志来确定所述因子的所述完成标志的值;以及
通过将所述完成数组中的所述因子的所述完成标志的所确定值存储在对应于所述因子的位置处来断言所述因子的所述完成标志。
9.如权利要求8所述的方法,其还包括:
针对第二向量中多个因子中的每个因子,基于对应于所述完成数组中的所述因子的所述完成标志的值来确定所述因子的层次;以及
根据所确定层次来依次计算所述第二向量中所述因子中的每一个的值,其中并行计算相同层次上的所述多个因子中至少两个的值。
10.如权利要求1所述的方法,其中:
所述CSR数据集存储在存储器系统中,并且
针对所述多个因子中的每个因子,在与所述存储器系统耦接的求解器电路中计算所述因子的所述值。
11.如权利要求1所述的方法,其还包括:
使用自旋循环电路来从所述完成数组读取所述第一完成标志,其中:
所述完成数组存储在存储器系统中,以及
断言所述完成数组中的所述第一完成标志是由与所述自旋循环电路和所述存储器系统耦接的求解器电路执行的。
12.一种计算装置,其包括:
存储器,所述存储器被配置为将稀疏三角矩阵存储为压缩稀疏行(CSR)数据集;以及
处理单元,所述处理单元与所述存储器耦接并且被配置为:
针对第一向量中的多个因子中的每个因子,通过执行以下各项来...
【专利技术属性】
技术研发人员:约瑟夫·L·格雷特豪斯,
申请(专利权)人:超威半导体公司,
类型:发明
国别省市:美国;US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。