実行速度2倍
アポロ精工株式会社 アポロ精工 新横浜オフィス(旧ケーアイテクノロジー/旧市川ソフトラボラトリー)
想像とは違い、胸を張る話ではありません。 「開発現場の生のコラム」として、ご案内します。 画像処理の処理速度高速化の際に、プチテクニックとして連続したアドレスアクセスにする。があります。 これは、DRAMのアクセス速度が、RowAddressと、ColumnAddressの変化では、アクセス速度が異なる。を意識したコーディングです。 ある画像処理で(説明の簡素化の為)横方向の積分処理と、処理の後すぐに縦方向の積分処理を連続して行う。を経験の浅い担当が開発してました。 報告された処理時間が、遅いので上記の処理順番を意識しているか?あえて順番を逆にしたら、処理時間がどのように変化するか?を報告させました。 結果、順番はどちらも同じ処理時間。との事でした。 そこで、個別の処理時間を報告させたところ、後段で処理した方が2倍速い。との報告でした。 ここまで書けば「オチ」も見えてきたかもしれません。 アドレスを意識してコーディングするより、順番に関わらずキャッシュにヒットするので、後段の処理が高速である事がわかりました。 生の事例です。 *ニュースは、弊社メルマガで配信されてます。