我是 CUDA 开发新手,我在 MacPro 上使用 NSight 5。
我正在用两个粒子进行一个非常简单的模拟(ver1这里ver2是两个结构体,它们具有指向另一种结构体的指针—— links)
代码已编译,但在到达此块的末尾时似乎遇到了问题,并且从未进入integrate_functor():
...
thrust::device_vector<Vertex> d_vecGlobalVec(2);
d_vecGlobalVec[0] = ver1;
d_vecGlobalVec[1] = ver2;
thrust::for_each(
d_vecGlobalVec.begin(),
d_vecGlobalVec.end(),
integrate_functor(deltaTime)
);
...
所以我的问题是:
ver1在 NSight 中,我可以看到和的成员变量的值ver2;但是在这个块中代码的最后一行之前,当我展开 的层次结构时d_vecGlobalVec,我可以看到这些值中的任何一个 - 对应的字段(例如,这个向量中的第一个元素)只是空的。为什么会这样?显然,ver1并且ver2在主机备忘录上,而在d_vecGlobalVec设备上的值。
2.
NSight 团队的一名成员发布了此信息。
那么,总的来说,这是否意味着我应该能够在主机和设备代码之间进出,并且能够看到主机/设备变量,就好像它们之间没有障碍一样?
系统:
英伟达 GeForce GT 650M 1024 MB
Mac OS X Lion 10.7.4 (11E2620)