タグ

JITに関するYassLabのブックマーク (7)

  • YJIT Makes Rails 1.7x Faster

    YassLab
    YassLab 2024/05/17
    “Why does YJIT make Ruby so much faster? In this talk, you’ll explore the latest YJIT optimizations that have a huge impact on your application’s performance. Once you understand what you're missing out on, you can't help but enable YJIT. Back ”
  • Ruby 3.3.0-preview1 Released

    YassLab
    YassLab 2023/05/24
    “We are pleased to announce the release of Ruby 3.3.0-preview1. Ruby 3.3 adds a new pure-Ruby JIT compiler named RJIT, uses Lrama as a parser generator, and many performance improvements especially YJIT.”
  • Mojoは「C言語のように速いPython」なのか - k0kubun's blog

    LLVMやSwiftを作ったChris LattnerがCEOをやっている会社が、Pythonの使用感とC言語並の性能を併せ持つ言語としてMojoをアナウンスした。 まだ手元で試せる状態でリリースされてはいないが、最大35000倍Pythonより速いという。 Mojo🔥 combines the usability of Python with the performance of C, unlocking unparalleled programmability of AI hardware and extensibility of AI models. Also, it's up to 35000x faster than Python 🤯 and … deploys 🏎 pic.twitter.com/tjT09U4F80— Modular (@Modular_AI) May

    Mojoは「C言語のように速いPython」なのか - k0kubun's blog
    YassLab
    YassLab 2023/05/06
    “AI開発のために高速なコードが書けるというのはいいものだと思うし、何よりLLVMやSwiftを作ったChris Lattnerがやっているというのがアツいところなので、正式リリースに期待”
  • RJIT: RubyでRubyのJITコンパイラを書いた - k0kubun's blog

    僕はRustRubyのJITを書く仕事をしているのだが、去年の12月くらいから、趣味ではRubyRubyのJITを書いている。 それまではC言語でコード生成を行なうMJITを5年くらいメンテしていたのだが、先月、Rubyで機械語を直接アセンブルするRJITに差し替えた。 github.com なので、今Rubyのmasterブランチには、会社で業務として開発しているRust製のYJITと、僕が趣味で開発しているRuby製のRJITの2つのJITコンパイラが存在している。余談だが、JITの開発をしすぎてRubyの作者であるまつもとさんのコミット数を最近抜いた。 なぜMJITをやめたのか MJITも結構がんばっていて、去年開発していたRuby 3.2ではMJITのコンパイラの実装をCからRubyにフルスクラッチした上、バックグラウンド処理をpthreadからfork + SIGCHLDで行

    RJIT: RubyでRubyのJITコンパイラを書いた - k0kubun's blog
    YassLab
    YassLab 2023/04/07
    "本番環境では引き続きYJITを使うことが推奨される。YJITの開発ではコンパイル速度やメモリ消費量に細心の注意が払われており、ベンチマークの改善に即座に向上しない複雑な実装はマージしないで塩漬けにする傾向にある
  • RubyKaigi 2022に参加しました

    3行まとめ 2022 9/8 - 9/10に三重県にて開催されたRubyKaigi 2022に現地参加しました そこで感じたことを書きます プログラミング言語に手を入れて改善していくということに興味を持ち、日でそれをやるにはRubyはだいぶ良さそうな環境だと感じました 概要 2022年9/8-9/10に、三重県津市の三重県総合文化センターで開催されたRubyKaigi 2022に参加して来ました。 この会議はオフラインとオンラインのハイブリッド開催でした。私は、所属している株式会社iCAREがスポンサーをしていることもあり、現地参加、スポンサーブースのスタッフも行いました。 ここまで大規模なオフラインの会議の参加は初めてでしたし、オフラインイベントへの参加も、コロナの影響もあり随分久しぶりでした。 現地で聞いた様々な講演の感想や、その他感じたことなどを書いていきます。 興味深かった講演と

    RubyKaigi 2022に参加しました
    YassLab
    YassLab 2022/09/13
    “プログラミング言語に手を入れて改善していくということに興味を持ち、日本でそれをやるにはRubyはだいぶ良さそうな環境だと感じました”
  • RubyKaigi 2022 セッションレポート Day 1 - メドピア開発者ブログ

    バックエンドエンジニアの田中悠大(@ytnk531)です。 RubyKaigi 2022で三重県に来ています。1日目(9/8)に聞いたセッションについて、簡単に紹介させていただきます。 Ruby meets WebAssembly Ruby meets WebAssembly - RubyKaigi 2022 RubyWebAssembly (WASM) 対応についての発表でした。WebAssemblyの基礎から、WASM対応のテクニカルな難しさまで、非常にわかりやすく丁寧に説明されており、聴きごたえのある素晴らしい発表でした。 特にデモがおもしろく、思わずスゴイ!とうなってしまうものばかりでした。 RubyWASM対応にあたっては、ExceptionやFiberで利用する特殊な制御をWASM上で再現するのに特に苦労されたそうです。Asyncifyという技術を使うことで、うまく解決でき

    RubyKaigi 2022 セッションレポート Day 1 - メドピア開発者ブログ
    YassLab
    YassLab 2022/09/13
    “現状のYJITは、YARV命令列からx86-64用のアセンブラを生成し、そこからマシンコードを生成 / ARM64でも動くようにするために、直接ARM64のアセンブラを生成するのではなく、中間表現を生成するアプローチをとった”
  • Ruby が YJIT でなんで速くなるのか? Lazy Basic Block Versioning をサクッと理解してみた - estie inside blog

    estie でソフトウェアエンジニアをしている徳永(@yTo_9)です。 estie では Ruby を書いたりTypeScriptを書いたりしています! estie 夏のブログ祭りにかこつけて、せっかくなら普段は追わない部分だけど、気になっていたYJITなるものを深掘りしてみようと思い、「YJITがなぜRailsアプリケーションの高速化を実現できたのか」を調べてみたので紹介したいと思います。 「どうせ難しいんでしょ?」と思いながら調べてみたのですが、講演や論文の説明がわかりやすく、意外に概要を把握することは難しくありませんでした。 YJIT の核となっているのは Lazy Basic Block Versioning (LBBV) という手法で、これはRubyだけに限らず動的言語全般に適用可能な強力なアプローチであることがわかりました。 「あるタイプの条件分岐は、ほとんどの場合で片側しか

    Ruby が YJIT でなんで速くなるのか? Lazy Basic Block Versioning をサクッと理解してみた - estie inside blog
    YassLab
    YassLab 2022/08/16
    “「組み合わせ上は存在するコードバージョンの多くが実行時に殆ど現れない」という現実のコードへの鋭い観察に基づいたシンプルなアプローチ / 動的言語の書き味は変えないまま、型固有の最適化されたコードを生成”
  • 1