我正在使用 cusp 进行稀疏矩阵乘法。从结果矩阵中,我需要最大值而不将矩阵从设备内存复制到主机内存。我打算将结果矩阵包装在推力设备指针中,然后使用函数推力::max_element来获取最大元素。矩阵采用 coo 格式。如果 C 是结果稀疏矩阵,则
C.row_indices[]:包含行号
C.column_indices[]:包含列号
C.values[]:包含实际值
所以基本上我需要 C.values 数组中的最高值。
使用
thrust::device_ptr<int> dev_ptr = C.values;
给出错误
error: no instance of constructor "thrust::device_ptr<T>::device_ptr [with T=int]" matches the argument list
argument types are: (cusp::array1d<float, cusp::host_memory>)
我如何包装我的结果矩阵以便在推力库中使用它?