个人觉得Nbody是一个很完美的例子,所以希望对它有一个比较深的理解。但是由于个人能力问题,对整个程序的认识还只是停留在整体,到了各个小环节就感觉有点力不从心啊。。
这次是自己想改变一下这个,去掉动画显示,改为将数据存在本地文件中。。
遇到问题::
1.我也是利用随机数生成初试位置,初试速度先暂时设为零,温度为零,后续再根据物理学的方法加以互相的修正。但是这个时候有问题啊,在host分配内存的时候我用的是float
float* h_pos=(float*)malloc(memSize);
float* h_acc=(float*)malloc(memSize);
float* h_vel=(float*)malloc(memSize);
kernel是integrateBodies<<< grid, threads,memSize >>>(d_pos, d_vel,dtimer);
但是在kernel里面接收的时候考虑一下用float4会比较好,这样就不匹配了啊??怎么办?在源程序中没找到解决办法。。
提示错误:错误 16 error: no suitable constructor exists to convert from “float *” to “float4”
2.我尝试着随意运行了一下,却出现这个
错误 11 error: identifier “pFlags” is undefined C:\CUDA\include\cuda.h 607
最最关键的就是,我没有包含这个文件啊??还有几个类似的错误也是这样,说文件有错误,但是这些文件我似乎没有用到啊????这是为什么啊??
- 一个C语言编程问题:我的实参是结构体数组,那么请问,形参怎么设定啊?就是调用的时候前面的那个类型,使用struct还是我要用的结构体数组名称,或者二者都要???