0

我将 CUSP 用于我的部分 GPU 加速代码。我需要从尖点矩阵 C 中提取对角线。在下面的代码中应该将其放入对角线中。

cusp::extract_diagonal(C, diagonal);

但是在编译时我得到“尖角”没有成员“extract_diagonal”

如果我有:

#include <cusp/format_utils.h>

如示例中所示,我无法找到 format_utils.h。如果我插入详细信息以完成标题的路径,如下所示:

#include <cusp/detail/format_utils.h>

编译能够找到 format_utils.h 但仍然说没有“extract_diagonal”

我正在查看的示例是:

// include cusp array1d header file
#include <cusp/array1d.h>
#include <cusp/coo_matrix.h>
#include <cusp/print.h>
#incldue <cusp/gallery/poisson.h>
#include <cusp/format_utils.h>
int main()
{
// initialize 5x5 poisson matrix
cusp::coo_matrix<int,float,cusp::host_memory> A;
cusp::gallery::poisson5pt(A, 5, 5);
// allocate array to hold diagonal entries
cusp::array1d<float, cusp::host_memory> diagonal(A.num_rows);
// extract diagonal of A
cusp::extract_diagonal(A, diagonal);
// print diagonal entries
cusp::print(diagonal);
}

版本如下:

The following libraries were found:
CUDA   v6.0
Thrust v1.7.1
Cusp   v0.4.0

我是否缺少一些包含或其他?作为最后的手段,我将所有标题都包含在主 cusp 目录中,但无济于事。

任何建议都会很棒。

4

1 回答 1

1

你找不到cusp/format_utils.h,因为它在你使用的 CUSP 版本中不存在,它已经接近 4 年了,并且从那时起代码库已经被重构。如果您升级到 CUSP 0.5.1(您正在使用的示例是为此编写的),您应该会发现它可以工作。

或者,如果您将 include 更改为cusp/format.h,您可能会发现它也可以正常工作,尽管我不能保证并且懒得拉一个古老版本的 CUSP 并检查。

于 2017-03-26T13:13:32.287 回答