これは本当に時間がかかっています。次のコード(ループ)のFLOPSを推定する簡単な方法が見つかりませんでした。ループの1回の反復でのFLOPSの量は次のとおりです。
float func(float * atominfo, float energygridItem, int xindex, int yindex)
{
...
for (atomid=0; atomid<numatoms*4; atomid+=4)
{
float dy = coory - atominfo[atomid+2];
float dysqpdzsq = (dy * dy) + atominfo[atomid+3];
float dx1 = coorx1 - atominfo[atomid+1];
float s, y, t;
s = atominfo[atomid] * (1.0f / sqrtf(dx1*dx1 + dysqpdzsq));
y = s - energycomp1;
t = energyvalx1 + y;
energycomp1 = (t - energyvalx1) - y;
energyvalx1 = t;
}
...
}
見た目はシンプルですが、先ほどの数字と混同してしまいましたので、正確な数字を教えていただければ幸いです。
ありがとう。