1

さて、nVidiaフォーラム(https://devtalk.nvidia.com/default/topic/458062/atomicadd-float-float-atomicmul-float-float-/)で解決策を見つけました。

ありがとう。

4

2 に答える 2

0

まず、このコードは繰り返しの文字化けの混乱であり、デバッグが非常に困難になります。コードが読みやすくなるように、どの部分式が冗長であるかを調べ、それらを異なる変数に分割します。それ以外の場合は、宝くじに当選するための支援を求めるのと同じくらい、このコードに関して支援を求めることは理にかなっています。それは目障りなので、誰もあなたのコードをわざわざ読むつもりはありません。

シングルスレッドソリューションを実行します。プロファイラーを使用して、このコードのどの部分が並列化に最適にさらされるかを判断します。そうしないと、最適化は単なる推測であり、測定可能な用語で表すことはできません。シングルスレッドソリューションを実行すると、同じソリューションを各コアで独立した範囲の値で並列に実行することでかなり良いパフォーマンスが得られる可能性があるため、同期の必要はほとんどありません。

于 2013-02-22T11:02:22.597 に答える
0

シリアル化は、 AtomicFunctionsを使用して実現できます。

Compute Capability 1.1は、浮動小数点数のatomicAdd()をサポートしていませんが、atomicCAS()(Compare And Swap)に基づいて任意のアトミック操作を実装できます。

于 2013-02-22T11:04:11.043 に答える