Slide 1

Slide 1 text

SPVMでPerlのforループを 100倍速くする 吉祥寺.pm 2020年7月21日 木本裕紀

Slide 2

Slide 2 text

自己紹介 •Perlゼミ •Perlプログラミングちゃんねる – YouTube •プログラミング言語開発

Slide 3

Slide 3 text

Ubuntuサーバー構築入門 – Perlゼミ講座

Slide 4

Slide 4 text

Perlプログラミングちゃんねる - YouTube

Slide 5

Slide 5 text

SPVM - プログラミング言語開発

Slide 6

Slide 6 text

SPVMの目的 • Perlの数値計算と配列演算を高速化する • XSを書かなくてもC/C++/cudaをバインディング

Slide 7

Slide 7 text

SPVMのソースコード これはPerl? いえ、SPVM。 SPVM Language Specificationで検索。

Slide 8

Slide 8 text

Perlからの呼び出し SPVMのサブルーチンは、Perlのメ ソッドとして呼び出せる SPVM Exchange API

Slide 9

Slide 9 text

SPVMの高速化 – プリコンパイル C言語のソースコードに 変換され機械語にコンパ りう

Slide 10

Slide 10 text

C言語バインディング ネイティブ呼び出し

Slide 11

Slide 11 text

C言語ソースコード C言語呼び出し バインディングも可能

Slide 12

Slide 12 text

和を求めるforループのベンチマーク結果 100倍速くなった!

Slide 13

Slide 13 text

バインディングを試したライブラリ • zlib - 圧縮ライブラリ C言語 • GSL – GNU科学技術計算ライブラリ C言語 • Eigen 行列演算ライブラリ C++ • OpenMP - CPU並列計算ライブラリ • cuda – NVIDIA GPGPU並列計算用のコンパイラ

Slide 14

Slide 14 text

SPVM 1.0は、8月末リリース目標

Slide 15

Slide 15 text

ご清聴、ありがとうございました。