我是 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)