wot[(mc - 1) * n4 * noff + (kf - 1) * n4 +
it - 1] =
wot[(mc - 1) * n4 * noff + (kf - 1) * n4 +
it - 1] -
ta1 *
(wave
[id * ndatain +
(itr - 1) * ntnew * nband + itm1 - kp1 -
1] - 2.0 * wave[id * ndatain + (itr -
1) *
ntnew * nband + itm1 -
1] + wave[id * ndatain +
(itr -
1) * ntnew *
nband + itm1 +
kp1 - 1]);
the flowing is atomic Floatadd version
atomicFloatAdd (&wot
[(mc - 1) * n4 * noff +
(kf - 1) * n4 + it - 1],
-ta1 *
(wave
[id * ndatain +
(itr -
1) * ntnew * nband +
itm1 - kp1 - 1] -
2.0 * wave[id * ndatain +
(itr -
1) * ntnew *
nband + itm1 -
1] +
wave[id * ndatain +
(itr -
1) * ntnew * nband +
itm1 + kp1 - 1]));
i’m working on a kirchhoff prestack migration. and the out put array wot is very large can be put in share memory. but there are many threads want add input value(wave) should to be add to . i have use atomic float add function on 1.1 and it’s work fine .but how can i make it work on 1.0 hardware?