我在看N-body的时候,发现在调用一些子程序的时候并没有利用指针进行传值啊??
如:
extern __shared__ float4[] shPosition;
------这里会给shPosition赋值,但是并不使用----
acc = tile_calculation(myPosition, acc);
tile_calculation(float4 myPosition, float3 accel)
{
extern __shared__ float4[] shPosition;
//再次申明shPosition,再作为传入参数
accel = bodyBodyInteraction(myPosition, shPosition[i++], accel);
}
bodyBodyInteraction(float4 bi, float4 bj, float3 ai)
{
---------
return ai;
}
喔,这里面设置了一个return,是不是就不需要了啊??
- 现在我在编的程序和这个与区别,就是在子程序中还有一些(不止一个)中间变量会在以后的程序中用到,这些变量应该怎么定义啊??
2.这里再加一问就是共享存储器在子程序中使用时需要再次申明吗?这时里面的值会改变不?作为参数传递时,为了能改变里面的值是否需要利用指针??程序中似乎没有
[ 本帖最后由 hnuzhoulin 于 2010-3-16 10:10 编辑 ]