推力装置矢量的推力装置矢量<int>
Thrust device vector of thrust device vector<int>
我在CUDA中使用向量的向量方法,因为我仍然习惯Matlab和Python风格的编程环境。我能够在设备矢量中从主机端提取数据,但现在我不确定如何访问该数据,例如,用于打印。我尝试使用迭代器,但如果我得到错误说device_reference没有成员"begin"或"end"。
(使用vs2010与CUDA Toolkit 5.0)
thrust::device_vector<thrust::device_vector<int>> kmers;
//Do some stuff here to fill kmers
//
//
thrust::device_vector<thrust::device_vector<int>>::iterator ii;
thrust::device_vector<int>::iterator i;
for (ii = kmers.begin();ii!=kmers.end();++ii)
{
for (i = (*ii).begin(); i != (*ii).end(); i++){
std::cout << (*i) << "n";
}
}
任何建议吗?编辑:我知道推力容器目前不能直接传递到CUDA内核。是否有其他库/容器允许我这样做?
当然,CUDA后端有一些限制,使得向量的向量无法使用。
不确定CUDA 6.0中是否解决了这个问题,但CUDA 5.0中肯定没有
你必须线性化你的向量
将此作为示例代码。
#include <stdio.h>
#include <iostream>
#include <iomanip>
#include <fstream>
#include <string>
#include <thrust/host_vector.h>
#include <thrust/device_vector.h>
using namespace std;
void spausdintiRez(thrust::host_vector<int> rezultatai) {
std::cout << rezultatai[0] << std::endl;
}
void sudetis(thrust::device_vector<int> d,thrust::device_vector<int> &rez)
{
for (int i = 0; i < 10; i++)
{
for(int j=0; j<10;j++)
{
rez[0]+=d[i+j];
}
}
}
int main()
{
thrust::host_vector<int> duom(100);
thrust::host_vector<int> rezultatai;
thrust::device_vector<int> d;
thrust::device_vector<int> rez(1);
for(int i=0;i<100;i++)
duom[i]=i;
d = duom;
sudetis(d, rez);
rezultatai = rez;
spausdintiRez(rezultatai);
return 0;
}
相关文章:
- EASTL矢量<向量<int>>连续的
- C - 创建矢量&lt; vector&lt; double&gt;&gt;矩阵具有分配而不是inizializ
- 我可以以某种方式使我的矢量/数组动态更改装置数量吗?
- C 字符串比较“祝您好运”&gt;“再见”
- 为什么将此对向量&lt; map&lt; int,int&gt;&gt;中的地图进行更新.失败
- C :对矢量进行排序&lt; struct&gt;(结构有2个整数)基于结构的整数之一
- C 操作员&gt;&gt;与突变器过载
- 明确的专业化“ CheckIntmap&lt;&gt;”实例化
- 是否需要使用 - &gt;运算符在C 中调用成员函数时
- 什么是模板&lt;&gt;inline bla bla
- Box2D-从身体中获取固定装置的宽度,或者我什至应该尝试
- 编辑C Qlist&lt; object*&gt; gt;QML代码和一些QML警告中的模型
- eigen :: llt&lt;eigen :: matrixxd&gt;具有不完整的类型
- 错误,包括&lt; ctype&gt;在原子上使用C 11
- 错误c++visual studio c2227左侧'->;Init';必须指向类/结构/联合/泛型类型
- std::vector<;uint8_t>;当C++11/14启用时,手动复制而不是调用memcpy
- ``这个''不能用this-&gt;指针变量
- 如何加入向量&lt; int&gt;到C 中的单个INT
- 是std :: set&lt; std :: future&gt;不可能存在
- 在Google测试固定装置中使用参考代替指针