More Related Content Similar to GDKとLLVM(横浜PF部向け) Similar to GDKとLLVM(横浜PF部向け) (20) GDKとLLVM(横浜PF部向け)1. GDKとLLVM
(横浜PF部向け)
でむら なりかず
Jan 27, 2013
2. 自己紹介
●
黄色とげとげの人です
(@checkela)
– 富山から飛行機に乗ってやって来
ました
– 無事に飛んでよかったです(笑)
●
コード書いたり、本書いたりし
ています
– 文章を書く量 < コードを書く量
が今年の目標
Jan 27, 2013
3. NDK本第2版
数少ないNDK本の一つ。
昨年末に発売になりました
買ってね
http://www.amazon.co.jp/gp/product/4798036307
Jan 27, 2013
15. GDKとは
●
NDKの後継開発キット
●
キモはgcc → LLVM/clang
Jan 27, 2013
16. LLVM/clang
エルエルブイエム クラン(グ)
と読みます と読みます
Jan 27, 2013
18. LLVM =
LowLevelVirtualMachine
低レイヤー向け仮想マシン
CPUをVM化したような感じ
コンパイル、リンク、ランタイム
全部面倒見るよ!
Jan 27, 2013
20. LLVMのうれしい点
●
CPUアーキテクチャ、言語から独立
●
ライセンスがBSDライセンス似
– University of Illinois Open Source
License
●
JIT、AOT、GCがある
– 普通のCPUよりスゴイ!
Jan 27, 2013
22. Clang
=
(荒っぽく言うと)
gcc互換
フロントエンド
Jan 27, 2013
25. RenderScript
Renderscript provides a
platform-independent
computation engine that
operates at the native level.
LLVMが裏で支えているから
Jan 27, 2013
27. GDK
=
NDKの後継開発キット
Jan 27, 2013
29. gdk-buildのコメント
gdk関連のコードをビルドするため
のコマンド
# Ensure we get the full path of this script's directory
# this is needed if the caller uses the -C <path> GNU Make
# option, as in:
#
# cd ndk
# ./ndk-build -C <project-path>
#
Jan 27, 2013
35. JNIを利用しないから!
JNI(NDK)利用時
#include <jni.h>
jint
Java_com_example_HelloLLVM_addValues( JNIEnv*
env,jobject thiz, jint a, jint b )
{
return a + b;
}
GDK利用時
int addValues(int a, int b){
return a+b;
Jan 27, 2013 }
36. (3)
ソフトが高速化する
(らしい)
Jan 27, 2013
37. gcc vs LLVM
●
NDKサンプルPlasmaで検証した例
LLVMでは80 fps,
約4倍の高速化!
●
●
GCCでは19 fps.
●
Nexus Sにて
http://www.kandroid.org/board/data/board/conference/file_in_body/1/610th_kandroidllvmclang.pdf
Jan 27, 2013
40. (1)Android NDKr8cより
Clang3.1をサポート(実験的に)
http://developer.android.com/tools/sdk/ndk/index.html
Jan 27, 2013
44. 割と広がりを見せそうな気配
●
FreeBSDでLLVM
●
組み込みLinuxでLLVM
●
LLVMをFPGAで
Jan 27, 2013
46. FreeBSD 10-CURRENTより
デフォルトコンパライラが
LLVM/clangへ移行
http://gihyo.jp/admin/clip/01/fdt/201211/12
Jan 27, 2013
47. 理由
GPLv3がFreeBSDの
目標と合わない
http://unix.stackexchange.com/questions/49906/why-is-freebsd-deprecating-
gcc-in-favor-of-clang-llvm
http://news.mynavi.jp/articles/2010/05/25/bsdcan01/index.html
Jan 27, 2013
49. Embedded Linux
Conference 2013
LLVMLinux: Compiling the
Linux Kernel with LLVM
Jan 27, 2013
50. LLVMの
ハードウェア化
Jan 27, 2013