cudaプロファイラマニュアルには、より緩和された合体ポリシーのため、未処理メモリトランザクションの数が常にゼロになると記載されています。しかし、私はまだuncoalescingがあると確信しています。それを計算する方法?その周辺に役立つツールやシミュレータはありますか?それらの中で、どれが最も正確であるように見えるか? おかげデバイス1.0ではgpuでの合体および未合併メモリトランザクションの数1.3
答えて
は、あなたは2つのオプションしかいました:
- メモリアクセスが合体され、すべてのデータが1つのメモリトランザクション中にフェッチされ
- メモリアクセスは、非融合であり、データがフェッチされる1バイしたがって、常に16のメモリトランザクション(ハーフワープ)。
ただし、デバイス1.2と1.3では、これは異なって行われます。 デバイスメモリをそれぞれ128バイトのチャンクに分割したとします。ヒットしたチャンクの数だけメモリトランザクションが必要です。だから、:あなたはちょうどあなたがすべてのn番目の単語のすべてのスレッドアクセスあれば2つのメモリトランザクション
- 、あなたは1つのメモリトランザクション
- を取得し、あなたは3を得ることができます、4、またはそれ以上のメモリ・トランザクション
- 最悪の場合には、あなたは、16回のメモリ・トランザクション
- を得ることができますが、アクセスは多少ランダムますが、ローカライズされた場合でも、2つのスレッドが同じチャンクに陥ることが起こることがあり、あなたがより少ないが必要になります16メモリトランザクション
このように多くのケースがあるので、それを2つのカテゴリにまとめる:合体/非合体はもう意味をなさない。だからこそ、Cuda Profilerは別の方法をとったのです。彼らは単純にメモリトランザクションの数を数えます。アクセスパターンがランダムであるほど、メモリアクセス命令のカウントが同じでも、メモリトランザクションのカウントが高くなります。
上記は若干単純化されたモデルです。実際には、メモリトランザクションは、128バイト、64バイト、または32バイト幅のチャンクにアクセスし、帯域幅を節約できます。カラムのロード128b、ロード64b、ロード32b、ストア128b、ストア64b、ストア32bをプロファイラに探します。
詳細な回答ありがとうございます。ただし、メモリアクセスパターンがすべてのワープで似ていると仮定すると、まったく別の考えです。カウンタgld_coherentをカウンタgld_requestに直接捨てると、ワープあたり(未結合の)メモリトランザクションの数がわかります。 – Zk1001
- 1. Websocketの合併症
- 2. TFS2010 - トラックの併合
- 3. Twilio合併症
- 4. NHibernateの設計および複合キー
- 5. 結合WPF、およびDataContextの
- 6. 曜日、java、およびZellerの合同!
- 7. DefaultModelBinderおよび複合型のコレクション
- 8. カスタムプロバイダー、ベストプラクティス、および構成の競合
- 9. Oracle Wallet、JDBCおよびLDAPの統合
- 10. mysql複数の内部結合合併症
- 11. C#RETVAL合併症
- 12. GameCenterインテグレーション合併症?
- 13. ASP.NET MVC用のCSSおよびJavaScriptファイルの結合、最小化、およびgzip
- 14. ラック1.3とレールの併用3.0.9
- 15. オフラインで使用するためのCakePhp 1.3および2.0 API
- 16. autofac、ASP.NET統合、およびHttpRequestScoped
- 17. SQL内部結合およびカウント
- 18. .NET SOAPおよび複合データ型
- 19. エンティティフレームワーク:多対多および合計
- 20. REST、json、.Net4、および複合データ型
- 21. SQLトリガーおよび複合キー
- 22. WPFおよびMVVM。結合事象
- 23. MS Accessおよび自動競合
- 24. Django 1.3 CreateView、ModelForm、およびrequest.userによるフィールドのフィルタリング
- 25. jQuery-Mobile Meteorサンプル統合および/または統合ガイドライン
- 26. ActiveMQの購読済みおよび未送信のトピックメッセージの数
- 27. CakePHPの1.3:カテゴリおよび記事 - ロード時間の検討
- 28. 統合GPUにゼロコピー構造体を割り当てる
- 29. PRO * CおよびC++でのデータ型の競合
- 30. トグルJToggleButton、および未設定のスタイル
メモリトランザクションが一貫していないことを確認しますか? CUDA memcpyのような既知のベンチマークとカーネルのメモリスループットを比較する方が簡単でしょうか? – talonmies