差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン 次のリビジョン両方とも次のリビジョン | ||
python [2019/09/20 16:23] – [Framework] ともやん | python [2019/09/21 01:04] – [JIT コンパイラ] ともやん | ||
---|---|---|---|
行 61: | 行 61: | ||
===== JIT コンパイラ ===== | ===== JIT コンパイラ ===== | ||
[[http:// | [[http:// | ||
- | * Anaconda, Inc. が開発する Python コードの JIT コンパイラ | + | * Anaconda, Inc. が開発する Python コードの JIT コンパイラ\\ |
- | * 使い方は関数に @njit = @jit(nopython=True) デコレータを指定する | + | * 使い方は関数に @njit = @jit(nopython=True) デコレータを指定する\\ |
- | * Numpy などは高速化できるが Pandas は Numba によって理解されないため高速化されない | + | * @jit(int32(int32, |
- | * Numba は関数の Python バイトコードを LLVM を使用して CPU合わせた関数のマシンコードバージョンを生成する | + | * @jit(nogil=True) によりマルチコアシステムを活用できる\\ |
- | * [[https:// | + | * @jit(cache=True) によりプログラムを呼び出すたびに掛かるコンパイル時間を回避できる\\ |
+ | * @jit(nopython=True, | ||
+ | * Numpy などは高速化できるが Pandas は Numba によって理解されないため高速化されない\\ | ||
+ | * Numba は関数の Python バイトコードを LLVM を使用して CPU に合わせた関数のマシンコードバージョンを生成する\\ | ||
+ | * [[https:// | ||
+ | |||
+ | Pandas がボトルネックになってもカーネル関数に分離すれば Numba で最適化出来る。\\ | ||
+ | [[https:// | ||
===== 開発環境 ===== | ===== 開発環境 ===== |