【问题标题】:clarify some things about culasparse澄清一些关于 culasparse 的事情
【发布时间】:2014-03-29 04:59:38
【问题描述】:

查看this示例(API示例在最后),我想问几个问题。

1) 在示例中,我们为矩阵 a 提供非零元素。但矩阵的实际大小是多少?这些是矩阵的元素还是包含非零元素的位置?

2) 我可以在计算中使用(在像 culaSparseSetDcooData 这样的函数中使用)包含零和非零元素的矩阵 A 吗? 如果我想创建一个样本矩阵只是为了测试,我是否必须创建一个零元素的矩阵,然后用一些元素填充它?

【问题讨论】:

  • Reg 1,你能更具体一点吗?有哪些例子?你能把部分代码贴在这里吗?
  • @selalere:最后的 API 示例。

标签: cuda cula


【解决方案1】:

关于 1) 有趣的是,COO 格式的矩阵的大小没有明确指定:它由矩阵的非零元素的坐标组成。如果您有一个包含 1 个非零元素的 COO 矩阵,那么这可能是

double a[1] =  { 1.0 };
int colInd[1] = { 10 };
int rowInd[1] = { 20 };

并且(从行/列索引可以看出)描述矩阵的元素至少大小为 11*21,或者它可以是

double a[1] =  { 1.0 };
int colInd[1] = { 1000 };
int rowInd[1] = { 2000 };

并描述矩阵的元素,至少大小为 1001*2001

但是,在此示例中,这似乎是一个二次矩阵,而n=8 似乎是大小。 (不幸的是,culaSparseSetDcooData函数似乎没有详细的文档......)

关于 2) 这并不完全清楚。如果您的问题是“非零”值是否可能(实际上)具有0.0 的值,那么我可以说:是的,这应该是允许的。但是,您提到的示例已经展示了如何创建一个简单的测试矩阵。

【讨论】:

  • :对于 1)。所以,我们只能告诉“至少大小”。对于 2)我的意思是,如果我们可以将包含零和的矩阵作为参数传递给 culla 函数非零元素。
  • 除非算法本身不要求值是!=0,否则我想不出一个值的原因(即使它在技术上被称为矩阵中的“非零”)不应为 0.0
猜你喜欢
  • 2017-03-28
  • 2021-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-14
相关资源
最近更新 更多