【发布时间】:2018-04-28 21:59:17
【问题描述】:
我有一个 CPU 代码:
`if(number_of_pushed_particles<N&&number_of_alive_particles<K)
{
push_particle();
number_of_pushed_particles++;
}`
这里number_of_pushed_particles,number_of_alive_particles,K和N是int,K和N是const。函数 push_particle() 是:
`push_particle()
{
particles[LIFE].id=++MAX_ELEMENT;
particles[LIFE].rx=0.0;
particles[LIFE].ry=0.0;
particles[LIFE].rz=0.0;
...
++LIFE;
}
`Particle是一个浮点结构体。数组Particleparticle[0:GL],整型变量LIFE和MAX_ELEMENT在设备上静态分配。这就是为什么我不想在调用 push_particle() 函数之前/之后使用#pragma acc update host/device 并浪费时间复制数据。如何在 GPU 上启动此顺序代码?
【问题讨论】:
标签: openacc