gpt4 book ai didi

c++ - boost::numeric::ublas::vector 内部数据存储指针

转载 作者:太空宇宙 更新时间:2023-11-04 12:12:56 26 4
gpt4 key购买 nike

我正在使用 boost::numeric::ublas::vector<double> (http://www.boost.org/doc/libs/1_41_0/libs/numeric/ublas/doc/vector.htm)。

如何获得指向 double 的内部数据指针?我需要内部指针,因为我想将 vector 复制到 CUDA (i.e. using cudaMemcpy) .或者是否有任何优雅的方式来复制我的 boost vector/矩阵?

我知道我可以做类似的事情:

boost::numeric::ublas::vector<double> vector;
double* ptr = &vector[0];

但是有没有更优雅的方式呢?

最佳答案

我认为如果您使用 unbounded_array 作为存储模型来实例化您的 vector:

vector<double, unbounded_array<double,n_elements>> vector;

然后你可以这样做:

cudaMemcpy(device_dest, 
vector.data().begin(),
vector.data().size(),
cudaMemcpyHostToDevice);

这是有效的,因为 unbounded_array 迭代器是一个标准的 C++ 指针,指向被存储的类型。

关于c++ - boost::numeric::ublas::vector 内部数据存储指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9059774/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com