【宣伝】C89にて「きつねさんのいない12月」を頒布します



お久しぶりです。
C89開幕直前ですが、告知エントリです!
いつもながらの手遅れ感ですが、今回もよろしくお願いいたします!

おことわり

タイトル通り、C89にて新刊「きつねさんのいない12月」を頒布いたします。
タイトルにもある通り、今回きつねさんはいません。
まったくいません!
どこにもいません!
大事なことなのでもう一度いいますよ。
きつねさんはおやすみです!

スペースと頒布物

さて、予防線もたっぷり張ったところで頒布の告知といきましょう。
まずはスペースから。

  • スペース

場所:東京ビッグサイト
日程:2015年12月31日(木)
スペース番号:東ム 43b

ツイッターで当初29日と言ってしまいましたが、三日目(31日)の参加です!
お間違えの無い様お願いいたします!

さて、次に頒布物です。
今回は新刊一種類と既刊一種類の持ち込みになります。
頒布価格と部数は以下の通りです。

  • 【頒布物その1(新刊)】

タイトル:きつねさんのいない12月
ページ数:70ページ(総ページ数)
頒布価格:700円
持込部数:50部

  • 【頒布物その2(既刊)】

タイトル:ばいなり、こんこん、こんぱいる。
ページ数:54ページ(総ページ数)
頒布価格:700円
持込部数:30部

ギリギリの告知でアレですが、今回は久しぶりに新刊の取り置きもやりますので
興味ある方はこちらをご確認ください。
なお、既刊の方は誤字脱字の訂正意外は基本的にC87時の内容です。
つまり、LLVM 3.5における解説となっています。
現在のLLVM 3.7での動作は保証できませんのでご了承ください。
(少なくともGCについてはLLVM 3.7で色々変わっているのでそのまま適用はできないと思います)

内容について

新刊の内容ですが、今回も前回と同様に
風薬と自分で好きなことをそれぞれ書いた形になっています。
風薬はC87の「ばいなり、こんこん、こんぱいる。」から引き続き、LLVMJITについて解説しています。
LLVM 3.7から入った新しいJITであるOrcMCJITについて解説していて、旬な内容で面白いと思います。
「ばいなり、こんこん、こんぱいる」の続編的な位置づけなので、既刊とセットで読むとわかりやすいと思いますよ!
自分の方は、NVPTXバックエンドを使ってGPGPU(CUDA)のコードを生成するお話です。
学生自体初めてLLVMを触ったきっかけがGPGPUだったこともあり、
以前から興味があったのですが今までなかなか手を出せず、ようやく今回取り上げることができました。
今更感も強い内容ですが、昔得た知識を頑張って思い出してGPGPUやCUDAの説明から記載しているので、
GPGPU初心者でも読み進めてもらえるのではないかなーと思っています。
余談ですが、きつねさんのお休みにより、今回初めて自分で表紙を作ることになりました。
うまく出来上がっているか、今でもかなりドキドキしています。
うまくいってるといいなー。

以下、目次を記載しておきます。
興味のある方は是非ふらっと立ち寄ってみてください!

  • はしがき i
  • 第1章 はじめに 1
    • 1.1 本書の構成
    • 1.2 本書内の記載について
    • 1.3 お断り
  • 第2章 環境構築
    • 2.1 本章の概要と構成
    • 2.2 環境
    • 2.3 インストール
      • 2.3.1 ビルドに必要なパッケージのインストール
      • 2.3.2 LLVM/Clangのビルド/インストール
      • 2.3.3 パスの設定
  • 第3章 頭痛で頭が痛くて JIT してられない 9
    • 3.1 諸注意
    • 3.2 LLVMJIT
    • 3.3 OrcMCJITとは
      • 3.3.1 互換API
    • 3.4 OrcMCJITのアーキテクチャ
      • 3.4.1 OrcMCJITのレイヤ
      • 3.4.2 関数単位での遅延コンパイルの実装方法
      • 3.4.3 コールバック
      • 3.4.4 OrcMCJITの使い方
    • 3.5 KaleidoscopeのOrcMCJIT使用例
      • 3.5.1 initial
      • 3.5.2 lazy_codegen
      • 3.5.3 lazy_irgen
      • 3.5.4 fully_lazy
    • 3.6 さいごに
  • 第4章 NVPTX であそぼう 31
    • 4.1 本章の概要
    • 4.2 NVPTXって何?
    • 4.3 CUDAのちょっとした説明
      • 4.3.1 GPUの構成
      • 4.3.2 GPUのメモリ階層
      • 4.3.3 CUDAの実行モデル
    • 4.4 NVVM
      • 4.4.1 Kernel関数の表現
      • 4.4.2 AddressSpace
      • 4.4.3 DataLayout
      • 4.4.4 IntrinsicFunction
    • 4.5 NVVMIRを試してみよう
      • 4.5.1 環境
      • 4.5.2 対象のコード
      • 4.5.3 IRBuilderでコードを吐いて見よう
      • 4.5.4 ホストコード
      • 4.5.5 こんぱいると実行
      • 4.5.6 libdeviceを利用する場合について
    • 4.6 最後に
  • あとがき
  • 著者/関係者一覧