Python 学習:Numba

2014-12-25 :  PCクリニック
本文の前に、
-・・・ -・-
現時点での blogramのランクインカテゴリは、
6、1、0、2、0、 0、0、0、0、0(41)で、換算ポイント 76pt 。
「Firefox」今朝方4位にアップ。
「C言語」「グルコサミン」が若干bg値がアップ。
・-・ - -・

さて、本文。

過去記事ですが、
画像セグメンテーションに関して、
GrowCut
を数件記事にしている。

当時(2014-04-10)、こんなサイト:
Accelerating Python Libraries with Numba (Part 1)
をブックマークしていた。

このページにある、「Numba」は、
その当時は、「ctypes」のようなもの
と思っていた。

ここに来て、改めて「Numba」を学習した。

本家サイトは、これ:
Numba
ですか?

  Numba

   Numba gives you the power to speed up your applications
  with high performance functions written directly in Python.
   With a few annotations,
  array-oriented and math-heavy Python code can be just-in-time
  compiled to native machine instructions,
  similar in performance to C, C++ and Fortran,
  without having to switch languages or Python interpreters.

   Numba works by generating optimized machine code
  using the LLVM compiler infrastructure at import time,
  runtime, or statically (using the included pycc tool).
   Numba supports compilation of Python to
  run on either CPU or GPU hardware,
  and is designed to integrate with the Python
  scientific software stack.


そして、
例の「Gohlkeさんのページ
にありますね。

  Numba is a NumPy aware dynamic compiler.
    Requires numpy-mkl and llvmpy.
  ・・・・・
  ・ numba-0.15.1.win32-py2.7.exe
  ・・・・・
  ・・・・・

「numpy-mkl」と「llvmpy」が要るとか。

取り敢えず、
「numba-0.15.1.win32-py2.7.exe」 686KB
をダウンロードし、即ダブルクリック(WinPython にインストール)。

それで、必要な「numpy-mkl」と「llvmpy」は?

多分「numpy-mkl」は入っているんじゃ無いかな???

「llvmpy」って何?

先週(2014-12-15)の記事:
C コンパイラ? LLVM / Clang
で書いた、「LLVM」の“Python”ラッパー???

これも「Gohlkeさんのページ
にあった。

  LLVMPy is a wrapper around the LLVM compiler library.
  ・・・・・
  ・ llvmpy-0.12.7.win32-py2.7.exe
  ・・・・・
  ・・・・・

やはり、“LLVM compiler library”のラッパーでした。

これもダウンロード:
「llvmpy-0.12.7.win32-py2.7.exe」 3.85MB
そして、インストール(ダブルクリック)。

それで、確認:(本家サイトの例)

from numba import jit
from numpy import arange

# jit decorator tells Numba to compile this function.
# The argument types will be inferred by Numba when function is called.
@jit
def sum2d(arr):
M, N = arr.shape
result = 0.0
for i in range(M):
for j in range(N):
result += arr[i,j]
return result

a = arange(9).reshape(3,3)
print(sum2d(a))



これ:「@jit」デコレータで、
実行時にコンパイルしている?
1回目の実行では、若干待たされる。


それから、
numba 0.15.0 documentation
に行き、
「User Guide」の「Quick Start」を見た。

先ずは、

from numba import jit

@jit
def sum(x, y):
return x + y


以下、幾つか例がある。

更には、「Examples」にも幾つかある。

真ん中当たりに「Mandelbrot」
これは、効果があるのかな?
最初は若干待たされるが、
2回目は素早く表示される。

5月(2014-05-17)に纏めた:
Python 学習:Python to/from C
のいずれよりも手間が少ない・・・

「Nuitka パッケージ」や
「Scipy の Weave モジュール」
と比較しての効果はどうかな???


本日はここまで。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


140410,1127

関連記事
スポンサーサイト

コメントの投稿

管理者にだけ表示を許可する

おきてがみ/blogram
blogram投票ボタン



おきてがみ

最新記事
カレンダー
09 | 2017/10 | 11
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -
月別アーカイブ
カテゴリ
最新コメント
検索フォーム
リンク
プロフィール

<紙>

Author:<紙>
ようこそ。
「パソコンヲタクの雑記帳」
もろもろなことを綴っています。
パソコン ヲタクってねくら?
画像は kami でなく kani です。

カウンター(fc2、i2i) /Google Analytics


i2i(from 2010-08-24)
Total =
Today  =  
Yesterday=
アンチエイジング

Google Analytics
ブックマーク