how to make float atomic add on 1.0 hardware?

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?