0 enhancer jit 高速化の実験

191016
項目なりenhancerの高速化全色と赤のみチェックで速さを見る全色チェックのルーチンのみ外に出して @jit してみる考察enhancer jit高速化 追加(項目なり)

enhancerの高速化

  • 大きいファイルで実験

全色と赤のみチェックで速さを見る

ほとんど変わりませんでした┐('д')┌
ということはテーブルの参照自体はあまり時間を要しないってことかな

全色チェックのルーチンのみ外に出して @jit してみる

enhancerは単純に元データのRGBを変換テーブルに沿って置き換えているだけ
画像が大きくなると当然データも二乗で増えるから処理に時間がかかるtんだと思う
で、ここを抜き出してjitして時間を計測してみた

①通常画像 jitあり
warnings.warn(errors.NumbaDeprecationWarning(msg, self.func_ir.loc))
makeenhance : 1.6610949039459229
makeenhance : 0.18001031875610352
makeenhance : 0.1760098934173584
makeenhance : 0.18201065063476562
makeenhance : 0.19201111793518066
makeenhance : 0.1870105266571045
makeenhance : 0.1870105266571045
makeenhance : 0.18801069259643555
makeenhance : 0.1910109519958496
makeenhance : 0.16900968551635742
makeenhance : 0.15900897979736328
makeenhance : 0.15500879287719727
makeenhance : 0.17701005935668945
makeenhance : 0.1760101318359375

②通常画像 jitなし
makeenhance : 0.24201369285583496
makeenhance : 0.2110118865966797
makeenhance : 0.21801257133483887
makeenhance : 0.23101305961608887
makeenhance : 0.2260129451751709
makeenhance : 0.21601223945617676
makeenhance : 0.22201251983642578
makeenhance : 0.22301268577575684
makeenhance : 0.19601106643676758
makeenhance : 0.19201111793518066
makeenhance : 0.19201064109802246
makeenhance : 0.19301104545593262
makeenhance : 0.21601247787475586
makeenhance : 0.21401214599609375
makeenhance : 0.2150123119354248
makeenhance : 0.2130122184753418

③大きめ画像 jit
warnings.warn(errors.NumbaDeprecationWarning(msg, self.func_ir.loc))
makeenhance : 3.208183526992798
makeenhance : 0.9250528812408447
makeenhance : 0.9220526218414307

④大きめ画像 jitなし
makeenhance : 1.0920627117156982
makeenhance : 0.9560546875
makeenhance : 0.970055341720581
makeenhance : 1.0410597324371338

考察

  • jitは初回は遅い
    ここでコンパイルするみたい
    事前にコンパイルできたら良いんだけど・・
  • 大きめのファイルでも変換で1秒前後かかり、jitの方が速いけれどせいぜい0.05秒程度
    小さいファイルだと0.02秒程度か
  • 大小ファイルの縦横から画素数を出して1画素単位の速度を出した方が良いな
  • ここにnumpyを使えば速くなるんだろうか??
    やってるのは配列の演算ではなく参照だけだ。それでも速いのかな??
  • エラーじゃないけど警告が出てる
    速度に関係あるのか??

191029

enhancer jit高速化 追加

  • テーブル参照が遅く jitでもあまり高速化できていないんだが、外の参照が遅いってことを思い出した
    確認したら関数の中でselfのテーブルを参照していたのでいったん
    table = self.table
    として関数内の変数にしたら少しだけど速くなった ( ´∀`)
  • しかし地味だな
    もっとネックを押さえて早くできないものか??

→ 戻る PyQt で画像のビューア

0

メモを他の人に見せる

このメモを見せたい人に、このURL(今開いているページのURLです)を教えてあげてください

コメント(0)

  • someone

  • someone