11

可逆コンピューティングのFAQから:

与えられたビット散逸速度で可能な限り最大の計算性能を達成するには、一般に、デバイス、回路、アーキテクチャ、言語、アルゴリズムなど、計算の最下位レベルだけでなく、すべてのレベルで明示的な可逆性が必要ですまだ正式に証明された結果-それをフランクの法則と呼んでいます)。

私が理解しているように、ビットがゼロになるとエネルギーが失われます。ソフトウェアとハ​​ードウェアのプラットフォームに論理演算を逆にする機能があれば、熱の生成を減らすことができます。

リバーシブル コンピューティングをサポートするプログラミング プラットフォーム (ライブラリ、ランタイム、言語、およびコンパイラ) はありますか?

4

4 に答える 4

10

はい、少なくとも研究では、可逆的なプログラミング言語がいくつかあります。

私もこの分野に興味があり、いくつかの指針を集めています。次の 2 つの論文は非常に優れています。

まだ読んでいない (しかし、ToDo リストにある) 興味深いものは次のとおりです。

ハッカーニュースにもこのスレッドがあります。

(コード、モデル、データ構造などの) 双方向変換に関するより豊富な文献があります。これは、可逆コンピューティングにある程度関連しています。

于 2012-04-25T11:24:08.777 に答える
0

ビットがゼロになると、エネルギーが失われます。

不可逆的なプロセス (つまり、情報を失ったプロセス) には、エネルギーの散逸が伴います。たとえば、x^2関数は全単射ではないため可逆ではありません。この関数を実装するには、次のいずれかを行う必要があります。

  • 一部の情報を消去し、一定量のエネルギーを散逸させ、
  • または代わりに (x, 0) -> (x, x^2) を実装します。

リバーシブル コンピューティングをサポートするプログラミング プラットフォーム (ライブラリ、ランタイム、言語、およびコンパイラ) はありますか?

NiLangは、Julia に組み込まれたオープン ソースのドメイン固有のリバーシブル プログラミング言語です。この eDSL は、プログラミング言語レベルの自動微分に使用でき、そのパフォーマンスは良好です。

于 2020-10-09T19:15:51.980 に答える