2010-12-10 5 views
1

CUDAを使用すると、グローバルメモリに動的に割り当てることができます。しかし、私はそのmalloc関数のスケーラビリティへの参照を見つけることができませんでした:例えば、メモリのチャンクをあらかじめ割り当ててから、グローバル整数をアトミックにインクリメントしてスレッドに次のメモリチャックを割り当てようとするよりも優れていますか?この最後の「自家製」ソリューションは機能しますが、スケーラビリティに明らかな問題があります。だから、mallocが何とかそれを処理するかどうか疑問です。CUDAでの動的割り当て - 手書きソリューションより低い競合?

+0

Wait - CUDAはGPUコードからのmallocを許可していますか? – wump

+0

CUDAプログラミングガイド3.2、122ページ – GalicianMario

答えて

0

グローバルインテグリティへの同時呼び出しでは遅くなる可能性がありますが、あなたの「自家製」ソリューションは現在と同じように良いかもしれませんが、Mallocが私の選択になると思います。

これは、Nvidiaがスケーラビリティの頭痛に対処し、後でコードを再コンパイルするだけでハードウェアまたはソフトウェア実装のいずれかで改善することができるからです。

+0

マルチコアプログラミングのスケーラビリティのためによく知られているボトルネックであるため、mallocの使用については慎重です。 CUDA mallocのスケーラビリティについての論文/研究のため、私は手作りのソリューションに頼る必要はありません。 – GalicianMario

関連する問題