GDKとLLVM      (横浜PF部向け)               でむら なりかずJan 27, 2013
自己紹介 ●     黄色とげとげの人です     (@checkela)     –   富山から飛行機に乗ってやって来         ました     –   無事に飛んでよかったです(笑) ●     コード書いたり、本書いたりし    ...
NDK本第2版                  数少ないNDK本の一つ。                  昨年末に発売になりました                  買ってね                  http://www.amaz...
日経Linuxに連載中(全3回)連載開始してます。全三回だから、気がつくと終わっているかもよ。早いところ買って読んでねJan 27, 2013
宣伝終わりJan 27, 2013
横浜Androidプラットフォーム部          改め 横浜Android and モバイルOS     プラットフォーム部Jan 27, 2013
記念すべき最初の発表Jan 27, 2013
ゆるめに行きます(笑)       ほとんどコード        出てきませんJan 27, 2013
結論からいうと       「LLVMやっとけ」Jan 27, 2013
2012年AndroidAdvent Calendar 向けのエントリーJan 27, 2013
NDKの後継開発キット-GDKJan 27, 2013               http://blog.cnu.jp/2012/12/11/android-gdk/
GDKというtoolkitがリ   リースされるかも!?GDK使うとこんなメリット     あるよ!Jan 27, 2013
濃いめのエントリー      としては    予想以上の反響Jan 27, 2013
(色々な意味で)  低い方が好きな方々向け      におさらいJan 27, 2013
GDKとは●    NDKの後継開発キット●    キモはgcc → LLVM/clang    Jan 27, 2013
LLVM/clang               エルエルブイエム   クラン(グ)               と読みます      と読みますJan 27, 2013
LLVM/clangJan 27, 2013
LLVM =   LowLevelVirtualMachine     低レイヤー向け仮想マシン    CPUをVM化したような感じ コンパイル、リンク、ランタイム     全部面倒見るよ!Jan 27, 2013
だいたいの流れJan 27, 2013                   http://www.aosabook.org/en/llvm.html
LLVMのうれしい点●    CPUアーキテクチャ、言語から独立●    ライセンスがBSDライセンス似    –   University of Illinois Open Source        License●    JIT、AOT、...
LLVM/clangJan 27, 2013
Clang           =      (荒っぽく言うと)        gcc互換       フロントエンドJan 27, 2013
clang=gcc互換のフロントエンド               gcc向けのコードが               そのままビルド可能Jan 27, 2013                     http://www.aosabook.o...
LLVMはAndroidで既に使われているよ!Jan 27, 2013
RenderScript   Renderscript provides a   platform-independent   computation engine that   operates at the native level.   ...
話をGDKに戻してJan 27, 2013
GDK     =NDKの後継開発キットJan 27, 2013
なぜそう言えるのか?Jan 27, 2013
gdk-buildのコメント               gdk関連のコードをビルドするため               のコマンド# Ensure we get the full path of this scripts directory#...
どう見てもndk-buildのコピーです。 本当にありが(ryJan 27, 2013
GDKのメリットJan 27, 2013
(1) CPUアーキテクチャの    分別が不要Jan 27, 2013
LLVMがもともとそういう技術だしJan 27, 2013
(2)コードがシンプルになるJan 27, 2013
JNIを利用しないから!      JNI(NDK)利用時     #include <jni.h>     jint     Java_com_example_HelloLLVM_addValues( JNIEnv*     env,jobj...
(3)       ソフトが高速化する          (らしい)Jan 27, 2013
gcc vs LLVM ●     NDKサンプルPlasmaで検証した例     LLVMでは80 fps,                                                     約4倍の高速化! ● ●  ...
GDKは本採用となる     のか?Jan 27, 2013
本採用となる気がする               根拠は2つJan 27, 2013
(1)Android NDKr8cより   Clang3.1をサポート(実験的に)               http://developer.android.com/tools/sdk/ndk/index.htmlJan 27, 2013
(2)対Oracleとの裁判対策   最悪の結果を考慮して     のリスクヘッジJan 27, 2013
Android開発当初は、そこまで深く考えてな かったんだろうなあJan 27, 2013
LLVMの今後Jan 27, 2013
割と広がりを見せそうな気配 ●     FreeBSDでLLVM ●     組み込みLinuxでLLVM ●     LLVMをFPGAでJan 27, 2013
LLVM対応はBSD系  が先行しているJan 27, 2013
FreeBSD 10-CURRENTより  デフォルトコンパライラが    LLVM/clangへ移行               http://gihyo.jp/admin/clip/01/fdt/201211/12Jan 27, 2013
理由GPLv3がFreeBSDの  目標と合わない       http://unix.stackexchange.com/questions/49906/why-is-freebsd-deprecating-       gcc-in-fav...
Linuxカーネルも       LLVM対応は進行中Jan 27, 2013
Embedded Linux               Conference 2013    LLVMLinux: Compiling the    Linux Kernel with LLVMJan 27, 2013
LLVMの               ハードウェア化Jan 27, 2013
LLVMをFPGAへJan 27, 2013                 http://rssi.ncsa.illinois.edu/proceedings/academic/Lee.pdf
ARMプロセッサ将来はLLVMに...?Jan 27, 2013           http://www.arm.com/ja/products/processors/instruction-set-architectures/index.php
基幹技術としてLLVM   は押さえておくべきJan 27, 2013
ご清聴ありがとう          ございましたJan 27, 2013
Upcoming SlideShare
Loading in …5
×

GDKとLLVM(横浜PF部向け)

3,082 views

Published on

Published in: Technology
0 Comments
7 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,082
On SlideShare
0
From Embeds
0
Number of Embeds
461
Actions
Shares
0
Downloads
0
Comments
0
Likes
7
Embeds 0
No embeds

No notes for slide

GDKとLLVM(横浜PF部向け)

  1. 1. GDKとLLVM (横浜PF部向け) でむら なりかずJan 27, 2013
  2. 2. 自己紹介 ● 黄色とげとげの人です (@checkela) – 富山から飛行機に乗ってやって来 ました – 無事に飛んでよかったです(笑) ● コード書いたり、本書いたりし ています – 文章を書く量 < コードを書く量 が今年の目標Jan 27, 2013
  3. 3. NDK本第2版 数少ないNDK本の一つ。 昨年末に発売になりました 買ってね http://www.amazon.co.jp/gp/product/4798036307Jan 27, 2013
  4. 4. 日経Linuxに連載中(全3回)連載開始してます。全三回だから、気がつくと終わっているかもよ。早いところ買って読んでねJan 27, 2013
  5. 5. 宣伝終わりJan 27, 2013
  6. 6. 横浜Androidプラットフォーム部 改め 横浜Android and モバイルOS プラットフォーム部Jan 27, 2013
  7. 7. 記念すべき最初の発表Jan 27, 2013
  8. 8. ゆるめに行きます(笑) ほとんどコード 出てきませんJan 27, 2013
  9. 9. 結論からいうと 「LLVMやっとけ」Jan 27, 2013
  10. 10. 2012年AndroidAdvent Calendar 向けのエントリーJan 27, 2013
  11. 11. NDKの後継開発キット-GDKJan 27, 2013 http://blog.cnu.jp/2012/12/11/android-gdk/
  12. 12. GDKというtoolkitがリ リースされるかも!?GDK使うとこんなメリット あるよ!Jan 27, 2013
  13. 13. 濃いめのエントリー としては 予想以上の反響Jan 27, 2013
  14. 14. (色々な意味で) 低い方が好きな方々向け におさらいJan 27, 2013
  15. 15. GDKとは● NDKの後継開発キット● キモはgcc → LLVM/clang Jan 27, 2013
  16. 16. LLVM/clang エルエルブイエム クラン(グ) と読みます と読みますJan 27, 2013
  17. 17. LLVM/clangJan 27, 2013
  18. 18. LLVM = LowLevelVirtualMachine 低レイヤー向け仮想マシン CPUをVM化したような感じ コンパイル、リンク、ランタイム 全部面倒見るよ!Jan 27, 2013
  19. 19. だいたいの流れJan 27, 2013 http://www.aosabook.org/en/llvm.html
  20. 20. LLVMのうれしい点● CPUアーキテクチャ、言語から独立● ライセンスがBSDライセンス似 – University of Illinois Open Source License● JIT、AOT、GCがある – 普通のCPUよりスゴイ!Jan 27, 2013
  21. 21. LLVM/clangJan 27, 2013
  22. 22. Clang = (荒っぽく言うと) gcc互換 フロントエンドJan 27, 2013
  23. 23. clang=gcc互換のフロントエンド gcc向けのコードが そのままビルド可能Jan 27, 2013 http://www.aosabook.org/en/llvm.html
  24. 24. LLVMはAndroidで既に使われているよ!Jan 27, 2013
  25. 25. RenderScript Renderscript provides a platform-independent computation engine that operates at the native level. LLVMが裏で支えているからJan 27, 2013
  26. 26. 話をGDKに戻してJan 27, 2013
  27. 27. GDK =NDKの後継開発キットJan 27, 2013
  28. 28. なぜそう言えるのか?Jan 27, 2013
  29. 29. gdk-buildのコメント gdk関連のコードをビルドするため のコマンド# Ensure we get the full path of this scripts 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
  30. 30. どう見てもndk-buildのコピーです。 本当にありが(ryJan 27, 2013
  31. 31. GDKのメリットJan 27, 2013
  32. 32. (1) CPUアーキテクチャの 分別が不要Jan 27, 2013
  33. 33. LLVMがもともとそういう技術だしJan 27, 2013
  34. 34. (2)コードがシンプルになるJan 27, 2013
  35. 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. 36. (3) ソフトが高速化する (らしい)Jan 27, 2013
  37. 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.pdfJan 27, 2013
  38. 38. GDKは本採用となる のか?Jan 27, 2013
  39. 39. 本採用となる気がする 根拠は2つJan 27, 2013
  40. 40. (1)Android NDKr8cより Clang3.1をサポート(実験的に) http://developer.android.com/tools/sdk/ndk/index.htmlJan 27, 2013
  41. 41. (2)対Oracleとの裁判対策 最悪の結果を考慮して のリスクヘッジJan 27, 2013
  42. 42. Android開発当初は、そこまで深く考えてな かったんだろうなあJan 27, 2013
  43. 43. LLVMの今後Jan 27, 2013
  44. 44. 割と広がりを見せそうな気配 ● FreeBSDでLLVM ● 組み込みLinuxでLLVM ● LLVMをFPGAでJan 27, 2013
  45. 45. LLVM対応はBSD系 が先行しているJan 27, 2013
  46. 46. FreeBSD 10-CURRENTより デフォルトコンパライラが LLVM/clangへ移行 http://gihyo.jp/admin/clip/01/fdt/201211/12Jan 27, 2013
  47. 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.htmlJan 27, 2013
  48. 48. Linuxカーネルも LLVM対応は進行中Jan 27, 2013
  49. 49. Embedded Linux Conference 2013 LLVMLinux: Compiling the Linux Kernel with LLVMJan 27, 2013
  50. 50. LLVMの ハードウェア化Jan 27, 2013
  51. 51. LLVMをFPGAへJan 27, 2013 http://rssi.ncsa.illinois.edu/proceedings/academic/Lee.pdf
  52. 52. ARMプロセッサ将来はLLVMに...?Jan 27, 2013 http://www.arm.com/ja/products/processors/instruction-set-architectures/index.php
  53. 53. 基幹技術としてLLVM は押さえておくべきJan 27, 2013
  54. 54. ご清聴ありがとう ございましたJan 27, 2013

×