SlideShare a Scribd company logo
cythonの一喜一憂
棚橋 耕太郎
2015.12.01
Python
⭕生産性が高い	
 
⭕みんなから愛されている	
 
⭕機械学習ライブラリや計算ライブラリの充実
Pythonはなんでも夢を叶えてくれる…	
 
ただ一つ実行が遅いことを除いては
Spoiled by Python convenience- and productivity-wise, spoiled by
C++ speed-wise. Now unhappy with both
言語選択で路頭に迷う人
http://programmers.stackexchange.com/questions/197118/spoiled-by-python-convenience-and-productivity-wise-spoiled-by-c-speed-wise
simple python code
loopTest(np.ones((10000,10000))) 実行時間 14.2秒
え、私のpython遅すぎ…!?
Cython
pythonの一部をC言語にコンパイルして実行可能
変数をcdefを用いて静的に型付けする
Cython!!
loopTestCorg(np.ones((10000,10000))) 実行時間 0.000787秒
え、私のpython速すぎ…!?
これで幸せなpythonライフを送れる!
でもifを入れると…
え、私のcython遅すぎ…!?
実行時間 35秒
cython -a
黄色い部分ほど、pythonコード
白いところはCにコンパイル可能
iやdが動的型付けになっているのがわかる
Come on!!!
え、私のcython速すぎ…!? 実行時間 0.000231秒

More Related Content

PPTX
Polyphony: Python ではじめる FPGA
PDF
Pynq祭り資料
PPTX
Polyphony の並列化
PDF
Pynqでカメラ画像をリアルタイムfastx コーナー検出
PDF
PyCon2020 Pythonで競プロをしよう! 〜入門者が知っておくべき高速化Tips〜
PDF
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
PDF
FPGAスタートアップ資料
PPTX
Tfug kansai vol3
Polyphony: Python ではじめる FPGA
Pynq祭り資料
Polyphony の並列化
Pynqでカメラ画像をリアルタイムfastx コーナー検出
PyCon2020 Pythonで競プロをしよう! 〜入門者が知っておくべき高速化Tips〜
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
FPGAスタートアップ資料
Tfug kansai vol3

What's hot (20)

PPTX
Polyphony の行く末(2018/3/3)
PDF
Power Assert and perl.js
PDF
Raspbian, OpenCV and about me(Takachiho.rb)
PPTX
Polyphony IO まとめ
PPTX
PYNQ 祭り: Pmod のプログラミング
PPTX
Introduction to JIT Compiler in JVM
PDF
Pythonを用いた高水準ハードウェア設計環境の検討
PPTX
研究者のための Python による FPGA 入門
PDF
高位合成ツールVivado hlsのopen cv対応
PDF
Vivado hlsのシミュレーションとhlsストリーム
PPTX
Great Ideas in GraalVM
PDF
猫とPerl〜応用編1/YAPC Asia Tokyo 2013 LT-THON::Tiny
PPTX
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
PDF
Read Groovy Compile process(Groovy Benkyoukai 2013)
PDF
有用なRtcの紹介
PPTX
ラプラシアンフィルタをZedBoardで実装(ソフトウェアからハードウェアにオフロード)
PDF
ニコニコ生放送のタイムシフトを無料で保存する方法
PDF
ニコニコ生放送のタイムシフトを無料で保存する方法
PDF
enterprise grails challenge, 2013 Summer
PDF
Markup Template Engine introduced Groovy 2.3
Polyphony の行く末(2018/3/3)
Power Assert and perl.js
Raspbian, OpenCV and about me(Takachiho.rb)
Polyphony IO まとめ
PYNQ 祭り: Pmod のプログラミング
Introduction to JIT Compiler in JVM
Pythonを用いた高水準ハードウェア設計環境の検討
研究者のための Python による FPGA 入門
高位合成ツールVivado hlsのopen cv対応
Vivado hlsのシミュレーションとhlsストリーム
Great Ideas in GraalVM
猫とPerl〜応用編1/YAPC Asia Tokyo 2013 LT-THON::Tiny
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
Read Groovy Compile process(Groovy Benkyoukai 2013)
有用なRtcの紹介
ラプラシアンフィルタをZedBoardで実装(ソフトウェアからハードウェアにオフロード)
ニコニコ生放送のタイムシフトを無料で保存する方法
ニコニコ生放送のタイムシフトを無料で保存する方法
enterprise grails challenge, 2013 Summer
Markup Template Engine introduced Groovy 2.3
Ad

More from Kotaro Tanahashi (13)

PDF
NIPS Paper Reading, Data Programing
PDF
WSDM2016読み会 Collaborative Denoising Auto-Encoders for Top-N Recommender Systems
PDF
変数の入れ替え(SWAPPING)で最速の方法は?
PDF
SWARでpop countをしよう
PDF
Deep Q-Network 論文輪読会
PDF
2.2. map reduce and the new software stack
PDF
deep learning library coyoteの開発(CNN編)
PDF
recurrent models of visual attentionメモ
PDF
情強アルゴリズムDIMSUM
PDF
LBFGSの実装
PDF
Fokker–Planck equation and DPD simulations
PDF
DSP開発におけるSpark MLlibの活用
PDF
How nosql fundamentally changed machine learning?
NIPS Paper Reading, Data Programing
WSDM2016読み会 Collaborative Denoising Auto-Encoders for Top-N Recommender Systems
変数の入れ替え(SWAPPING)で最速の方法は?
SWARでpop countをしよう
Deep Q-Network 論文輪読会
2.2. map reduce and the new software stack
deep learning library coyoteの開発(CNN編)
recurrent models of visual attentionメモ
情強アルゴリズムDIMSUM
LBFGSの実装
Fokker–Planck equation and DPD simulations
DSP開発におけるSpark MLlibの活用
How nosql fundamentally changed machine learning?
Ad