私は画像処理アプリケーション、グレースケール画像で働いています - GPU占有率ベクトルの増加数によって制限されているワークグループおよびワークグループごとローカルメモリごとを登録します。のfloat4 - 積和 - パフォーマンスのヒントOpenCLの
read_imagef()関数は、のfloat4を返ししかし、私のアプリケーションは、のfloat4の最初コンポーネントと連携 - ので、任意の計算(あたりの余分なフロート動作は、したがってある実行時間が長くなります)。それにもかかわらず
- カーネルは、多くの乗算が、それはあまりベクトル・レジスタを使用するように私はこのカーネルを最適化するにはどうすればよいのfloat4
にも OPSを追加実行している場合を高めるためのヒント、トリックですMAD opsスピード(ハードウェアでサポートされている機能を試して性能が低下したことを知っている)
これは解決策かもしれませんが、読み込みアクセスパターンによって計算がストールする可能性があります。私のマシンではfloat4の読み込みがより効率的ですので、パフォーマンスは** CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT **によって制限されます。 – OmarGW
@OmarGW 3つのチャンネルすべてにアクセスしますか? – kangshiyin
3つのchannelaにアクセスすると、より良いパフォーマンスが得られます。 -----私自身のread_imagef **の実装についてのあなたの考えは? – OmarGW