先日のRubyKaigi 2017のLTではLLVMベースのCRuby向けJITコンパイラLLRBの話をしました。 5分はちょっとJITの話をするには短かかったですね。 LLRBをふまえた、Cのコード生成への軌道修正 さて、上記の資料にある通り、CRubyのJITにおいてはメインの高速化対象が既に存在するCのコードになるため、 開発の早い段階でパフォーマンスにインパクトを持てるとすればLLVM Passの順番を変えるくらいで、 LLVM IRを直接生成しても最適化上のメリットがほとんどないのでその部分はMJIT と同じくCのコードを生成するように変更したい、という話をした*1。 で、LLRBはC拡張として作るべくちょっと不思議な努力をいろいろやっており、 それらの設計はやってみた結果(コアに直接変更を加えるのに比べ)デメリットの方が大きいと思ったので、 LLRBの失敗を全て生かしつつ、今回
JIT native code generation for TensorFlow computation graphs using Python and LLVM Update: Hacker News discussion here. The TensorFlow Computation Graph One of the most amazing components of the TensorFlow architecture is the computation graph that can be serialized using Protocol Buffers. This computation graph follows a well-defined format (click here for the proto files) and describes the compu
Creating an implementation for a dynamic language using just in time compilation (JIT) techniques involves a lot of compromises mainly between complexity of the implementation, speed, warm-up time and memory usage. Especially speed is a difficult trade-off because it’s very easy to end-up spending more time optimizing a piece of code and emitting the assembly than we will ever be able to save by e
Buyer Protection Program When you buy a domain name at Dan.com, you’re automatically covered by our unique Buyer Protection Program. Read more about how we keep you safe on our Trust and Security page. Next to our secure domain ownership transfer process, we strictly monitor all transactions. If anything looks weird, we take immediate action. And if the seller doesn't deliver on their part of the
As of r195562, WebKit’s FTL JIT (Faster Than Light Just In Time compiler) now uses a new backend on OS X. The Bare Bones Backend, or B3 for short, replaces LLVM as the low-level optimizer in the FTL JIT. While LLVM is an excellent optimizer, it isn’t specifically designed for the optimization challenges of dynamic languages like JavaScript. We felt that we could get a bigger speed-up if we combine
Microsoftがcoreclrまわりの新しいネタを投入してきましたね。LLVMを.NET Coreで使うものだそうです。 github.com "an LLVM based compiler for .NET Core." 何だかよくわからないですね。 llilcは、.NETで言えばランタイムの一部分の一種であり、99%の.NET開発者には意識する必要のないプロジェクトです。 .NETランタイムには、MSILを解釈して、実行マシン上のCPUネイティブコードに変換して実行する機能が求められます。いわゆるJITコンパイラーというやつです。LLVM based "compiler"というのは、このJITコンパイラーのことです(RoslynみたいなC#コンパイラーとは、取り扱っている問題が違います)。 オープンソースで公開されているcoreclrには、現在、RyuJITというJITコンパイラー
2010年03月25日 LLVM の JIT を使ってみる (1) LLVM を利用しているプロジェクトとしては MacRuby が有名ですが、他にも LLVM の JIT を利用しているプロジェクトはたくさん存在するようです。 The LLVM Compiler Infrastructure: Projects built with LLVM では、具体的には、どのようにすれば LLVM の JIT が利用できるのでしょうか ? LLVM には、Fibonacci など、API のサンプルがいろいろ付いています。 Index of /llvm/trunk/examples ざっと眺めていたところ、HowToUseJIT というそのものズバリなサンプルがありました。main() 1つだけで、その中で API を使って関数を作ってモジュールに追加しています。 View of /llvm/tr
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く