我有一个结构
struct Point
{
int x;
int y;
float val;
}
我打算使用这个结构来表示稀疏矩阵(我知道 CUSPARSE 和 CUSP,但我只是打算使用推力执行一些测试)并使用推力算法执行操作。
根据我在 CUDA 编程教程中研究的内容,始终建议使用数组结构而不是结构数组来更好地进行内存合并。
如果是这种情况,那么如果我使用上述结构在 device_vector 中存储非零(数百万级)怎么办,这个 device_vector 在处理推力算法时是否会在 GPU 内使用未对齐的内存访问?
我问这个是因为我可能需要访问这个 device_vector 内的不规则步幅并通过传递多个函数对象来执行算法操作。
它会像在数组结构上运行的自定义内核一样高效吗?
谢谢。