enhancer jit 高速化の実験 version 6

2019/11/07 15:51 by yamasyuh68
  :追加された部分   :削除された部分
(差分が大きい場合、文字単位では表示しません)
hogehoge enhancer jit 実験
191016
@[TOC](項目なり)

# 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 で画像のビューア](https://mimemo.io/m/QORbW4qkvOoda0N)
      

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 で画像のビューア