タグ

compilerに関するmoozのブックマーク (13)

  • GitHub - yrnkrn/zapcc: zapcc is a caching C++ compiler based on clang, designed to perform faster compilations

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - yrnkrn/zapcc: zapcc is a caching C++ compiler based on clang, designed to perform faster compilations
    mooz
    mooz 2018/07/12
    clang ベースの高速コンパイラ。テンプレート多用してるコードで特に有効とか。
  • OpenXLA Project

    Stay organized with collections Save and categorize content based on your preferences. XLA (Accelerated Linear Algebra) is an open-source compiler for machine learning. The XLA compiler takes models from popular frameworks such as PyTorch, TensorFlow, and JAX, and optimizes the models for high-performance execution across different hardware platforms including GPUs, CPUs, and ML accelerators. As a

    OpenXLA Project
    mooz
    mooz 2017/11/16
    TensorFlow の内部表現とコンパイラ
  • Prepack · Partial evaluator for JavaScript

    *Prepack is still in an early development stage and not ready for production use just yet. Please try it out, give feedback, and help fix bugs. What does it do? Prepack is a tool that optimizes JavaScript source code: Computations that can be done at compile-time instead of run-time get eliminated. Prepack replaces the global code of a JavaScript bundle with equivalent code that is a simple sequen

    mooz
    mooz 2017/05/04
    Facebook 開発の JS AOT コンパイラ。ES2015準拠のインタプリタが入ってて Symbolic Execution などやりながら事前にコード変換。かっこいい。
  • Numba — Numba

    Numba makes Python code fast Numba is an open source JIT compiler that translates a subset of Python and NumPy code into fast machine code. Learn More Try Numba » Accelerate Python Functions Numba translates Python functions to optimized machine code at runtime using the industry-standard LLVM compiler library. Numba-compiled numerical algorithms in Python can approach the speeds of C or FORTRAN.

    mooz
    mooz 2015/08/20
    JIT/AOT に Python -> LLVM -> 機械語をやって高速化。CPU だけでなく GPU も。すっご。
  • AdaGradが12倍速くなる魔法

    AdaGradは学習率を自動調整してくれる勾配法の亜種で、いろんな人が絶賛しています。 勾配を足し込む時に、各次元ごとに今までの勾配の2乗和をとっておいて、その平方根で割ってあげるだけと、恐ろしくシンプルです。 Adaptive Subgradient Methods for Online Learning and Stochastic Optimization John Duchi, Elad Hazan, Yoram Singer. JMLR 2011. 丁度、 @echizen_tm さんがブログを書いてました。 AdaGrad+RDAを実装しました。 通常のSGDなどは学習率をだんだん減衰させながら勾配を足していくわけですが、どの様に減衰させるかという問題にいつも頭を悩ませます。 AdaGradでは最初の学習率こそ外から与えますが、減衰のさせ方や減衰率といったハイパーパラメータから

    mooz
    mooz 2014/08/07
    -Ofast によるベクトル化。面白いなー。
  • JSX 速さの秘密 - 高速なJavaScriptを書く方法

    JavaScript で高速なコードを書こうとする際に、はまりがちな罠と、JSX のコンパイラでどのように対処しているのかを紹介

    JSX 速さの秘密 - 高速なJavaScriptを書く方法
    mooz
    mooz 2013/12/07
    JSX かなり工夫して最適化おこなってるんだな
  • restrictキーワード - yohhoyの日記

    C99で追加された restrict キーワードについてのメモ。 コンパイラに対して「aliasが存在しないと仮定した最適化を許す」と伝えるためのキーワード。C99以降でのみ有効なキーワードであり、C++11現在でもC++には同キーワードが存在しない。(ただしコンパイラの独自拡張として、C++言語でもrestirctキーワードを使えるケースはある。) 要約: 構文的にはconstやvolatileキーワードと同列で、ポインタ型に対してのみ型修飾を行える。int * restrictなど。restrict intやint restrict *はill-formed*1。 コンパイラでの最適化を助けるためのもの。restrictキーワードを削除してもプログラムの意味は変化しない。 用法と意味 restrictキーワードの用法は、C標準ライブラリmemcpy関数/memmove関数における動作仕

    restrictキーワード - yohhoyの日記
    mooz
    mooz 2013/07/05
    pointer aliasing
  • Aliasing (computing) - Wikipedia

    This article is about aliasing in computing. For other uses, see Aliasing (disambiguation). In computing, aliasing describes a situation in which a data location in memory can be accessed through different symbolic names in the program. Thus, modifying the data through one name implicitly modifies the values associated with all aliased names, which may not be expected by the programmer. As a resul

  • JIT の話あれこれ

    Egtra (ysk-noh) @egtra @phoenixstarhiro Javaなんかは状況次第でC++より速いのではないでしょうか?実行時にしか分からない情報を使ってJITで最適化したり、GCありでメモリ確保も速くできたりするし(それともJavaは最近聞く言語に入らないって?) 2013-07-01 01:10:06 ぷりん大王・鰹節大臣(兼任) @phoenixstarhiro . @egtra うわ、すみません。通知がなく気づきませんでした・・・。不勉強で恐縮ですが、現在のJITでネイティブコードより速くなるケースって結構あるものなんでしょうか? GCはメモリの回収に時間がかかるので、平均的にはマイナスだと思うのですが、いかがでしょうか? 2013-07-02 22:52:36 Shuhei Takahashi @nya3jp JIT は実行時情報を使って最適化できるから静的

    JIT の話あれこれ
  • CSE 231

    mooz
    mooz 2013/05/05
    Advanced Compiler Design and Implementation. コンパイラ最適化の定番本らしい.
  • Cilk Plus/LLVM

    View on GitHub Cilk Plus/LLVM An implementation of the Intel® Cilk™ Plus C/C++ language extensions in LLVM Intel® Cilk™ Plus is an extension to the C and C++ languages to support data and task parallelism. It is one of the easiest, quickest way to harness the power of both multicore and vector processing. Visit cilkplus.org for details. This project implements the Intel® Cilk™ Plus language extens

    mooz
    mooz 2013/02/27
    Cilk Plus implementation in clang, llvm.
  • Partial-redundancy elimination - Wikipedia

    This article includes a list of general references, but it lacks sufficient corresponding inline citations. Please help to improve this article by introducing more precise citations. (May 2015) (Learn how and when to remove this message) In compiler theory, partial redundancy elimination (PRE) is a compiler optimization that eliminates expressions that are redundant on some but not necessarily all

  • mirichiの日記

    「シミュレーションされた宇宙があったとして、その中の生物が別の宇宙をシミュレーションする。そしてその中の生物がまた別の宇宙をシミュレーションし…この関係は無限に続くと考えられる。我々の宇宙がこの連鎖の中に含まれていないというほうが不自然である」なんて言ったのは誰だったか。突っ込みどころは多すぎだけどもちょっと面白かったかな。 非常に寒い日が続いているけどとりあえずDXRuby1.4.7をリリース。現時点でRuby2.5がサポートされている関係上、対応するRubyは2.5~3.0としてある。機能的には変更無し。 大きなポイントはRuby2.6~3.0で64bit版に対応した所で、Ruby2.5だけなぜかDXRubyがコケる症状が出たので2.5だけは32bitのみとなっている。すぐサポート切れるしまあいいか、という感じで。3.0で動くようにはなってるけども、Ractorには対応していない。構造

    mirichiの日記
    mooz
    mooz 2012/08/03
  • 1