この質問のあいまいさを前もってお詫び申し上げます。
バックグラウンド:
OpenCL で形態学的画像処理関数を作成しようとしています。すべてのピクセルのデータを格納するために使用する __local バッファーがあります (各ピクセルはワークアイテムで表され、まだループ展開はありません)。また、私はテストの初期段階であるため、単一のワークグループ (8x8 ピクセルの画像であるため、手動で結果を検証できます) のみを使用しています。
問題:
場合によっては、1 つ、2 つ、3 つ、さらには 4 つのピクセルからのデータを別のピクセル バッファーに追加する必要があります。これらは同じワークグループ内の隣接するピクセルであるため、ローカル メモリ バンクの競合が発生していると確信しています。大丈夫です。速度は私の最優先事項ではありません (まだ!)。ただし、これらのバンクの競合により、データが失われたり、データが破損したりするようです。バッファーがオーバーフローしたりオーバーランしたりしないように細心の注意を払っています。
ですから、私の最初の質問は、銀行の競合がデータの破損や損失を引き起こしている可能性はありますか? Opencl 仕様は、操作をシリアル化して帯域幅を遅くする必要があることを示しているようですが、データ損失については言及されていません。
私の 2 番目の質問は: 助けて! - これについて何ができますか?
どんなガイダンスも大歓迎です-ありがとう!