2013-07-19 23 views
0

我需要多次求解Ax = B,并且cusparseSolveAnalysisInfo_t在循环内占用大量时间。关于cusparseSolveAnalysisInfo_t的查询

cusparseSolveAnalysisInfo_t在AX = B的解决方案中做了什么? 根据文档我可以创建一次,并将其用于不同的B集。 如果我想将它用于具有相同稀疏结构的不同A集,该怎么办。

回答

1

参考the documentationinfo结构的cusparseSolveAnalysisInfo_t类型被传递给分析函数以捕获由分析函数创建的数据。然后通过(不变)解决方案来指导求解器。

您可以在此cuda sample中看到示例用法。

如果更改A,则必须重新创建它(即如果更改A,则必须重新运行分析步骤)。

+0

感谢您的回复罗伯特。但我认为cusparseSolveAnalysisInfo_t上的文档不完全正确。 文档中说明:“求解阶段可以用不同的右手边执行多次 次,而分析阶段只需执行一次 。当稀疏三角线性系统必须为 求解一组一组不同的右侧,而其系数矩阵 保持不变。“ – TheSeriousJoker

+0

这里的系数矩阵不需要在数值上相同。它需要有相同的结构,就是这样。 在我的情况下矩阵A的结构是相同的,只有值改变。 我创建了一次分析信息,并用不同的A和B一次又一次地调用求解部分。 对我而言,它工作正常。 – TheSeriousJoker

+0

我同意你的说法,但要清楚,结构的意思是:1.矩阵的维数和2.零元素与非零元素的关系。因此,只要先前非零元素保持非零,并且先前为零的元素保持为零,则值可以改变。只要您符合这些条件,我认为即使值发生变化,您也可以重新使用分析信息。 –