論文の概要: Differentiate Everything with a Reversible Embeded Domain-Specific
Language
- arxiv url: http://arxiv.org/abs/2003.04617v3
- Date: Sun, 31 Jan 2021 23:03:03 GMT
- ステータス: 処理完了
- システム内更新日: 2022-12-24 21:47:44.089105
- Title: Differentiate Everything with a Reversible Embeded Domain-Specific
Language
- Title(参考訳): 可逆的な埋め込みドメイン特化言語ですべてを区別する
- Authors: Jin-Guo Liu and Taine Zhao
- Abstract要約: 逆モード自動微分(Reverse-mode Automatic differentiation, AD)は、バックプロパゲーションのための中間計算状態をトレースするには空間オーバーヘッドが多すぎるという問題に悩まされる。
本稿では、逆計算を用いて、可逆プログラミングeを設計、実装することで、状態のトレースを行うことを提案する。
暗黙のスタック操作がないため、プログラムは既存のコンパイラ機能と互換性がある。
- 参考スコア(独自算出の注目度): 0.0
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Reverse-mode automatic differentiation (AD) suffers from the issue of having
too much space overhead to trace back intermediate computational states for
back-propagation. The traditional method to trace back states is called
checkpointing that stores intermediate states into a global stack and restore
state through either stack pop or re-computing. The overhead of stack
manipulations and re-computing makes the general purposed (not tensor-based) AD
engines unable to meet many industrial needs. Instead of checkpointing, we
propose to use reverse computing to trace back states by designing and
implementing a reversible programming eDSL, where a program can be executed
bi-directionally without implicit stack operations. The absence of implicit
stack operations makes the program compatible with existing compiler features,
including utilizing existing optimization passes and compiling the code as GPU
kernels. We implement AD for sparse matrix operations and some machine learning
applications to show that our framework has the state-of-the-art performance.
- Abstract(参考訳): 逆モード自動微分(Reverse-mode Automatic differentiation, AD)は、バックプロパゲーションのための中間計算状態をトレースするには空間オーバーヘッドが多すぎるという問題に悩まされる。
状態をトレースする従来の方法はチェックポイントと呼ばれ、中間状態をグローバルスタックに格納し、スタックポップまたは再計算を通じて状態を復元する。
スタック操作と再計算のオーバーヘッドにより、汎用(テンソルベースではない)の広告エンジンは多くの産業ニーズを満たせない。
チェックポイントの代わりに、プログラムを暗黙のスタック操作なしで双方向に実行できる可逆プログラミングedslの設計と実装により、逆計算を使って状態をトレースする。
暗黙のスタック操作がないため、既存の最適化パスを利用し、コードをGPUカーネルとしてコンパイルするなど、既存のコンパイラ機能と互換性がある。
スパース行列演算のためのADと機械学習アプリケーションを実装し、我々のフレームワークが最先端の性能を持っていることを示す。
関連論文リスト
- SNIP: Speculative Execution and Non-Interference Preservation for Compiler Transformations [0.15800607910450126]
投機的意味論に基づくコンパイラ変換における非干渉保存の問題に対処する。
我々は,すべてのソースプログラムに対して一様に保存を保証できる検証方法を開発した。
論文 参考訳(メタデータ) (2024-07-21T07:30:30Z) - ReGAL: Refactoring Programs to Discover Generalizable Abstractions [59.05769810380928]
Generalizable Abstraction Learning (ReGAL)は、再利用可能な関数のライブラリをコード化して学習する手法である。
ReGALによって発見された共有関数ライブラリは、プログラムが様々な領域で容易に予測できることを示している。
CodeLlama-13Bでは、ReGALはLOGOで11.5%、日付理解で26.1%、TextCraftで8.1%という絶対精度が向上し、3つのドメインのうち2つでGPT-3.5を上回った。
論文 参考訳(メタデータ) (2024-01-29T18:45:30Z) - CRIL: A Concurrent Reversible Intermediate Language [0.0]
本稿では,高レベル並列言語を他の低レベル並列言語に翻訳するための構成の可逆中間言語を提案し,可逆性を維持する。
機能的可逆言語としてMogensen が用いた RIL の拡張として CRIL を提案し,P-V 演算に基づくマルチスレッドプロセス呼び出しと同期プリミティブを組み込んだ。
論文 参考訳(メタデータ) (2023-09-13T20:52:54Z) - AutoCoreset: An Automatic Practical Coreset Construction Framework [65.37876706107764]
コアセットは入力セットの小さな重み付き部分集合であり、損失関数によく似ている。
本稿では,ユーザからの入力データと所望のコスト関数のみを必要とするコアセット構築のための自動フレームワークを提案する。
この集合は有限であるが、コア集合は極めて一般であることを示す。
論文 参考訳(メタデータ) (2023-05-19T19:59:52Z) - DiffStack: A Differentiable and Modular Control Stack for Autonomous
Vehicles [75.43355868143209]
DiffStackは、予測、計画、制御のための、微分可能でモジュラーなスタックです。
nuScenesデータセットの結果から,DiffStackによるエンドツーエンドトレーニングは,オープンループおよびクローズループ計画の指標を大幅に改善することが示された。
論文 参考訳(メタデータ) (2022-12-13T09:05:21Z) - QParallel: Explicit Parallelism for Programming Quantum Computers [62.10004571940546]
並列量子プログラミングのための言語拡張を提案する。
QParallelは、現在の量子プログラミング言語における並列性に関する曖昧さを取り除く。
並列化によって最も利益を上げるサブルーチンを識別し,並列領域の配置にプログラマを誘導するツールを提案する。
論文 参考訳(メタデータ) (2022-10-07T16:35:16Z) - Exploiting Long-Distance Interactions and Tolerating Atom Loss in
Neutral Atom Quantum Architectures [4.979871961444077]
ニュートラル原子(NA)アーキテクチャの利点と欠点を評価する。
NAシステムは、長距離通信やネイティブマルチビットゲートなど、いくつかの有望な利点を提供している。
本稿では,原子損失に対するシステムのレジリエンスを劇的に向上させるハードウェアおよびコンパイラ手法を提案する。
論文 参考訳(メタデータ) (2021-11-11T21:34:31Z) - High-performance symbolic-numerics via multiple dispatch [52.77024349608834]
Symbolics.jlは拡張可能なシンボルシステムで、動的多重ディスパッチを使用してドメインのニーズに応じて振る舞いを変更する。
実装に依存しないアクションでジェネリックapiを形式化することで、システムに最適化されたデータ構造を遡及的に追加できることを示します。
従来の用語書き換えシンプリファイアと電子グラフベースの用語書き換えシンプリファイアをスワップする機能を実証する。
論文 参考訳(メタデータ) (2021-05-09T14:22:43Z) - Instead of Rewriting Foreign Code for Machine Learning, Automatically
Synthesize Fast Gradients [6.09170287691728]
本稿では,LLVMコンパイラフレームワーク用の高性能自動微分(AD)コンパイラプラグインであるEnzymeを提案する。
EnzymeはLLVM中間表現(IR)をターゲットにした任意の言語で記述されたプログラムの勾配を合成する
MicrosoftのADBenchを含む機械学習に焦点を当てたベンチマークスイートでは、最適化されたIR上のADは、IR上のAD上の4.5倍の幾何平均スピードアップを達成する。
論文 参考訳(メタデータ) (2020-10-04T22:32:51Z) - Tensor Relational Algebra for Machine Learning System Design [7.764107702934616]
本稿では、リレーショナルテンソル代数(TRA)と呼ばれる別の実装抽象化を提案する。
TRA は、リレーショナル代数に基づく集合基底代数である。
我々の実証研究は、最適化されたTRAベースのバックエンドが、分散クラスタでMLを実行する際の選択肢を大幅に上回っていることを示している。
論文 参考訳(メタデータ) (2020-09-01T15:51:24Z) - Automatic Differentiation in ROOT [62.997667081978825]
数学と計算機代数において、自動微分 (AD) は、コンピュータプログラムによって指定された関数の微分を評価するための一連の技術である。
本稿では、任意のC/C++関数の導関数を生成するために、ClingがサポートするROOTで利用可能なAD技術を提案する。
論文 参考訳(メタデータ) (2020-04-09T09:18:50Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。