0
レンダリングスクリプトでは、バインドされたポインタを使用して大きなイメージを反復処理しています。 問題は配列アクセスのパフォーマンスにあります。例えばレンダスクリプトのCスタイルのポインタ使用パフォーマンスの問題
...
for(int i=0; i < channels; i++) {
sum += (input[i*input_size]) * mulValue;
}
...
、input_sizeが12288であるときには、スクリプトを完了するまでに1.5秒かかりますが、input_sizeが12280であるとき、それは〜0.5秒かかります。
このようなミステリー現象を引き起こす原因は何ですか?
範囲外にアクセスしていないことを確認します。また、バインドされたポインタにrsGetElementAt_ *関数を使用することをお勧めします。 – sakridge
@sakridge配列が大きすぎますが、範囲外にアクセスしていません。これはキャッシングの結果ですか? – Vardan95
できます。そのサイズによって、アルゴリズムがキャッシュレベルの1つを超えてしまうことがあります。もう一つは、より遅いサイズがより整列しているため、より多くの銀行の競合が発生する可能性がありますが、3倍の差は過剰と思われます。さまざまなサイズの掃除を試すことができますか? – sakridge