Vitalik の新しい記事: グルーとコプロセッサ アーキテクチャ、効率とセキュリティを向上させるための新しいアイデア

avatar
金色财经
2ヶ月前
本文は約6791字で,全文を読むには約9分かかります
「グルーおよびコプロセッサ」アーキテクチャは、コンピューティングの多くの分野でますます一般的になってきています。このアーキテクチャでは、中央の「グルー」コンポーネントがデータ転送と調整を担当し、コプロセッサ コンポーネントが特定のタイプの計算を効率的に実行する責任を負います。

元のタイトル: グルーとコプロセッサのアーキテクチャ

原作者:ヴィタリック・ブテリン、イーサリアム創設者

オリジナル編集:Deng Tong、Golden Finance

Justin Drake、Georgios Konstantopoulos、Andrej Karpathy、Michael Gao、Tarun Chitra、およびさまざまな Flashbot 寄稿者のフィードバックとコメントに心より感謝いたします。

現代世界で行われているリソースを大量に消費する計算をある程度詳細に分析すると、計算が 2 つの部分に分割できるという特徴が何度も見つかるでしょう。

· 比較的少量の複雑だが計算集約型の「ビジネス ロジック」。

· 集中的だが高度に構造化された「高価な作業」が多数。

これら 2 つのコンピューティング形式は、異なる方法で処理するのが最適です。前者は、アーキテクチャがあまり効率的ではないものの、非常に汎用的である必要があり、後者は、アーキテクチャがあまり一般的ではないかもしれませんが、非常に効率的である必要があります。

この異なるアプローチの実際の例にはどのようなものがありますか?

まず、私が最もよく知っている環境、イーサリアム仮想マシン (EVM) を見てみましょう。これは、私が行った最近の Ethereum トランザクションの geth デバッグ トレースです。ENS 上の私のブログの IPFS ハッシュの更新。このトランザクションは合計 46924 ガスを消費し、次のように分類できます。

・基本コスト:21,000

・通話データ:1,556EVM

· 実行: 24, 368 SLOAD

· オペコード: 6, 400 SSTORE

· オペコード: 10、100 LOG

· オペコード: 2、149

・その他:6,719

Vitalik の新しい記事: グルーとコプロセッサ アーキテクチャ、効率とセキュリティを向上させるための新しいアイデア

ENS ハッシュ更新の EVM 追跡。最後から 2 番目の列はガス消費量です。

この話の教訓は、実行の大部分 (EVM だけを見ると約 73%、計算をカバーする基本コストの部分を含めると約 85%) が、非常に少数の構造化された高価な操作 (ストレージ読み取り) に集中しているということです。書き込み、ロギング、暗号化(基本コストには支払い署名検証の 3000 が含まれ、EVM には支払いハッシュの 272 も含まれます)。残りの実行は「ビジネス ロジック」です。calldata のビットを交換して、設定しようとしているレコードの ID、設定しているハッシュなどを抽出します。トークン転送では、これには残高の加算と減算が含まれ、より高度なアプリケーションではローテーションなどが含まれる場合があります。

EVM では、これら 2 つの実行形式は異なる方法で処理されます。高レベルのビジネス ロジックは、EVM にコンパイルされる高レベル言語 (通常は Solidity) で記述されます。高価な作業は依然として EVM オペコード (SLOAD など) によってトリガーされますが、実際の計算の 99% 以上は、クライアント コード (またはライブラリ) 内に直接記述された専用モジュールで実行されます。

このパターンの理解を深めるために、別のコンテキスト、つまり torch を使用して Python で書かれた AI コードで調べてみましょう。

Vitalik の新しい記事: グルーとコプロセッサ アーキテクチャ、効率とセキュリティを向上させるための新しいアイデア

変圧器モデルのブロックの順方向パス

ここで何が見えるでしょうか?実行される操作の構造を記述する、比較的少量の「ビジネス ロジック」が Python で記述されていることがわかりました。実際のアプリケーションでは、入力の取得方法や出力の処理方法などの詳細を決定する別のタイプのビジネス ロジックが存在します。ただし、個々の操作自体 (self.norm、torch.cat、+、*、self.attn... 内の個々のステップ) をドリルダウンすると、ベクトル化された計算がわかります。同じ操作が並列値で大量に計算されます。 。最初の例と同様に、計算のごく一部はビジネス ロジックに使用され、計算の大部分は大規模な構造化行列およびベクトル演算の実行に使用されます。実際、それらのほとんどは単なる行列の乗算です。

EVM の例と同様に、これら 2 種類の作業は 2 つの異なる方法で処理されます。高レベルのビジネス ロジック コードは、汎用性と柔軟性に優れた言語である Python で記述されていますが、非常に遅いです。また、総計算コストのごく一部しか必要としないため、非効率性を単純に受け入れます。同時に、集中的な操作は高度に最適化されたコード (GPU 上で実行される CUDA コード) で記述されます。 ASIC 上で LLM 推論が実行される例も増えてきています。

SNARK などの最新のプログラム可能な暗号化も、2 つのレベルで同様のパターンに従います。まず、証明者は高級言語で記述することができ、上記の AI の例のように、ベクトル化された操作を通じて面倒な作業が行われます。ここにある循環 STARK コードはこれを示しています。第 2 に、暗号化内部で実行されるプログラム自体は、一般的なビジネス ロジックと高度に構造化された高価な作業を区別する方法で作成できます。

これがどのように機能するかを理解するために、STARK によって実証された最新の傾向の 1 つを見てみましょう。多用途で使いやすいように、RISC-V などの広く採用されている最小限の仮想マシン用の STARK 証明器を構築するチームが増えています。実行を証明する必要があるプログラムはすべて RISC-V にコンパイルでき、認証者はそのコードの RISC-V 実行を認証できます。

Vitalik の新しい記事: グルーとコプロセッサ アーキテクチャ、効率とセキュリティを向上させるための新しいアイデア

RiscZero ドキュメントからの図

これは非常に便利です。つまり、証明ロジックを一度書くだけで済み、それ以降は証明が必要なプログラムを任意の「従来の」プログラミング言語で書くことができます (たとえば、RiskZero は Rust をサポートしています)。ただし、問題があります。このアプローチには多大なオーバーヘッドが発生します。プログラム可能な暗号化はすでに非常に高価であり、RISC-V インタプリタでコードを実行するオーバーヘッドを追加するのは大きすぎます。そこで開発者は、計算の大部分を占める特定の高価な操作 (通常はハッシュと署名) を特定し、それらの操作を非常に効率的に証明するための特殊なモジュールを作成するというトリックを思いつきました。次に、非効率的ではあるが一般的な RISC-V 証明システムと、効率的ではあるが特殊な証明システムを組み合わせて、両方の長所を活用するだけです。

ZK-SNARK 以外のプログラム可能な暗号化 (マルチパーティ計算 (MPC) や完全準同型暗号化 (FHE) など) は、同様の方法を使用して最適化できます。

全体的にはどのような現象なのでしょうか?

現代のコンピューティングは、私がグルー アンド コプロセッサー アーキテクチャーと呼ぶものにますます準拠しています。つまり、汎用性は高いものの非効率で、1 つまたは複数のコプロセッサー コンポーネント間でタスクを実行する、中央の「グルー」コンポーネントがあります。これらのコプロセッサー コンポーネントは、汎用性は低いものの、転送効率は高いです。それらの間のデータ。

Vitalik の新しい記事: グルーとコプロセッサ アーキテクチャ、効率とセキュリティを向上させるための新しいアイデア

これは単純化したものです。実際には、効率と汎用性の間のトレードオフ曲線は、ほとんどの場合、2 つ以上のレベルを持ちます。業界で一般に「コプロセッサ」と呼ばれる GPU およびその他のチップは、CPU ほど多用途ではありませんが、ASIC よりは多用途です。専門化のトレードオフは複雑で、アルゴリズムのどの部分が 5 年後も変わらず、どの部分が 6 か月後に変更されるかについての予測と直感に依存します。 ZK 証明アーキテクチャでは、同様の複数の特殊化レイヤーがよく見られます。しかし、広範なメンタル モデルの場合は、2 つのレベルを考慮するだけで十分です。同様の状況がコンピューティングの多くの分野で存在します。

Vitalik の新しい記事: グルーとコプロセッサ アーキテクチャ、効率とセキュリティを向上させるための新しいアイデア

上記の例から、このように計算を分割できるのは確かに自然法則のように思えます。実際、数十年にわたるコンピューティングの専門化の例を見つけることができます。しかし、この乖離はさらに進んでいるように思います。これには理由があると思います。

CPU クロック速度の向上は最近になって限界に達したばかりなので、さらなる向上は並列化によってのみ達成できます。ただし、並列化は推論が難しいため、開発者にとっては、逐次推論を継続し、特定の操作用に構築された特殊なモジュールでラップされたバックエンドで並列化を実行する方が現実的であることがよくあります。

計算速度が非常に速くなったのはつい最近のことで、ビジネス ロジックの計算コストは本当に無視できるほどになりました。この世界では、計算効率以外の目標 (開発者の使いやすさ、親しみやすさ、セキュリティ、およびその他の同様の目標) を達成するために、ビジネス ロジックが実行される VM を最適化することも意味があります。一方、専用の「コプロセッサ」モジュールは、効率性を重視して設計し続けることができ、接着剤への比較的単純な「インターフェース」からセキュリティと開発者への使いやすさを引き出すことができます。

最も重要でコストのかかる操作が何であるかがますます明らかになりつつあります。これは暗号化で最も顕著であり、法演算、楕円曲線の線形結合 (別名マルチスカラー乗算)、高速フーリエ変換など、特定の種類の高価な演算が使用される可能性が最も高いです。これは人工知能においてもますます顕著になってきており、人工知能では 20 年以上にわたり、ほとんどの計算は (精度のレベルは異なるものの) 「主に行列の乗算」でした。他の分野でも同様の傾向が現れています。 (計算集約型) コンピューティングにおける未知の要素は 20 年前に比べてはるかに少なくなっています。

それはどういう意味ですか?

重要な点は、接着剤が適切な接着剤となるように最適化され、コプロセッサーが適切なコプロセッサーになるように最適化される必要があるということです。いくつかの主要な分野でこの影響を探ることができます。

EVM

ブロックチェーン仮想マシン (EVM など) は効率的である必要はなく、使い慣れているだけで十分です。適切なコプロセッサ (別名「プリコンパイル」) を追加するだけで、非効率な VM での計算を、ネイティブに効率的な VM での計算と同じくらい効率的にすることができます。たとえば、EVM の 256 ビット レジスタによって発生するオーバーヘッドは比較的小さい一方で、EVM の使いやすさと既存の開発者エコシステムによるメリットは大きく、長期にわたって持続します。 EVM を最適化する開発チームは、並列化の欠如がスケーラビリティに対する大きな障害にはならないことが多いことにも気づきました。

EVM を改善する最善の方法は、(i) より適切なプリコンパイル済みまたは特殊化されたオペコードを追加すること (たとえば、EVM-MAX と SIMD の組み合わせが合理的である可能性がある)、および (ii) メモリ レイアウト (たとえば、Verkle ツリー) を改善することです。副作用として、互いに隣接するストレージ スロットにアクセスするコストが大幅に削減されます。

Vitalik の新しい記事: グルーとコプロセッサ アーキテクチャ、効率とセキュリティを向上させるための新しいアイデア

Ethereum Verkle ツリー提案におけるストレージの最適化。隣接するストレージ キーをまとめて配置し、これを反映するようにガス コストを調整します。このような最適化とプリコンパイルの改善は、EVM 自体をチューニングするよりも重要である可能性があります。

セキュアなコンピューティングとオープンなハードウェア

最新のコンピューティングのセキュリティをハードウェア レベルで向上させる際の課題の 1 つは、その過度に複雑で独自仕様の性質であることです。チップは効率的になるように設計されているため、独自の最適化が必要です。バックドアは簡単に隠すことができ、サイドチャネルの脆弱性は常に発見されています。

さまざまな角度から、よりオープンで安全な代替手段を求める取り組みが続けられています。一部のコンピューティングは、ユーザーの携帯電話など、信頼できる実行環境で実行されることが増えており、ユーザーのセキュリティが向上しています。よりオープンソースのコンシューマ ハードウェアへの取り組みは続いており、最近では Ubuntu を実行する RISC-V ラップトップなどのいくつかの製品が成功を収めています。

Vitalik の新しい記事: グルーとコプロセッサ アーキテクチャ、効率とセキュリティを向上させるための新しいアイデア

Debian を実行する RISC-V ラップトップ

ただし、効率性には依然として課題が残っています。上記のリンク先の記事の著者は次のように書いています。

RISC-V のような新しいオープンソース チップ設計は、すでに存在し、数十年かけて改良されてきたプロセッサ テクノロジと競合する可能性は低いです。進歩には常に出発点があります。

FPGA 上に RISC-V コンピュータを構築するこの設計のような、より偏執的なアイデアは、より大きなオーバーヘッドに直面します。しかし、接着とコプロセッサ アーキテクチャにより、このオーバーヘッドが実際には問題にならない場合はどうなるでしょうか?オープンでセキュアなチップが独自のチップよりも遅いことを受け入れる場合、必要に応じて投機的実行や分岐予測などの一般的な最適化を放棄しても、ほとんどのインテンシブで使用される (必要に応じて独自の) ASIC モジュールを追加することでこれを補おうとします。特定の種類の計算についてはどうですか?機密性の高い計算は「メイン チップ」で実行でき、セキュリティ、オープンソース設計、サイドチャネル抵抗が最適化されます。より集中的な計算 (ZK 証明、AI など) は ASIC モジュールで実行され、実行されている計算に関する情報が少なくなります (おそらく暗号によるブラインド化により、場合によっては情報がゼロになることもあります)。

暗号化

もう 1 つの重要な点は、これは暗号化、特に主流になりつつあるプログラマブル暗号化について非常に楽観的であるということです。 SNARK、MPC、その他の設定では、特定の高度に構造化された計算の超最適化された実装がいくつか見られました。一部のハッシュ関数は、計算を直接実行するよりもわずか数百倍高価であり、人工知能 (主に行列の乗算) のオーバーヘッドが発生します。も非常に低いです。 GKR などのさらなる改良により、このレベルはさらに低下する可能性があります。完全に汎用的な VM の実行、特に RISC-V インタプリタで実行される場合、引き続き約 1 万倍のオーバーヘッドが発生する可能性がありますが、この記事で説明されている理由により、これは問題にはなりません。効率的な特殊なテクニックがそれぞれ使用されている限り、最も計算量の多い部分を処理することで、全体的なオーバーヘッドを制御できます。

Vitalik の新しい記事: グルーとコプロセッサ アーキテクチャ、効率とセキュリティを向上させるための新しいアイデア

AI モデル推論の最大のコンポーネントである行列乗算専用の MPC の簡略図。モデルと入力を非公開に保つ方法など、詳細については、この記事を参照してください。

「接着層は慣れていればよく、効率的ではない」という考えの例外は、遅延と、程度は低いですがデータ帯域幅です。計算に同じデータに対する大量の操作が何十回も含まれる場合 (暗号化や人工知能など)、非効率的な接着層によって生じる遅延が実行時の大きなボトルネックになる可能性があります。したがって、グルーコースにも効率要件がありますが、これらの要件はより具体的です。

結論は

全体として、上記の傾向はさまざまな観点から非常に前向きな発展であると思います。まず、これは開発者にとって使いやすいものでありながら計算効率を最大化する論理的な方法であり、両方をより多く得られることは誰にとっても良いことです。特に、クライアント側での特殊化を可能にして効率を高めることにより、機密性が高くパフォーマンスを要求する計算 (ZK 証明、LLM 推論など) をユーザーのハードウェア上でローカルに実行する能力が向上します。第 2 に、効率の追求によって他の価値、特にセキュリティ、オープン性、シンプル性が損なわれないようにするための大きな機会が生まれます。これには、コンピュータ ハードウェアのサイドチャネル セキュリティとオープン性、ZK-SNARK の回路の複雑さの軽減、および回路の複雑さの軽減が含まれます。仮想マシンの複雑さ。歴史的に見て、効率の追求により、これらの他の要素は後回しになってきました。接着剤とコプロセッサのアーキテクチャでは、それはもう必要ありません。マシンの一部は効率を最適化し、別の部分は汎用性やその他の価値を最適化し、その 2 つが連携して機能します。

この傾向は暗号にとっても非常に良いものであり、暗号自体が「高価な構造化コンピューティング」の代表的な例であり、この傾向がこの傾向を加速させます。これにより、セキュリティを向上させる機会がさらに追加されます。ブロックチェーンの世界でもセキュリティの向上が可能です。仮想マシンの最適化について心配する必要がなくなり、仮想マシンと共存するプリコンパイルやその他の機能の最適化に重点を置くことができます。

第三に、この傾向は小規模で新しいプレーヤーにも参加する機会を提供します。コンピューティングがモノリシックではなくなり、よりモジュール化されれば、参入障壁は大幅に低くなります。 1 種類の計算 ASIC を使用するだけでも、違いが生じる可能性があります。 ZK 証明と EVM 最適化の分野でも同じことが当てはまります。最先端に近い効率でコードを書くことがより簡単になり、アクセスしやすくなります。このようなコードの監査と正式な検証は、より簡単かつアクセスしやすくなります。最後に、コンピューティングのこれらの非常に異なる領域がいくつかの共通のパターンに収束しているため、それらの間でコラボレーションと学習の余地がさらに増えています。

元のリンク

オリジナル記事、著者:金色财经。転載/コンテンツ連携/記事探しはご連絡ください report@odaily.email;法に違反して転載するには必ず追究しなければならない

ODAILYは、多くの読者が正しい貨幣観念と投資理念を確立し、ブロックチェーンを理性的に見て、リスク意識を確実に高めてください、発見された違法犯罪の手がかりについては、積極的に関係部門に通報することができる。

おすすめの読み物
編集者の選択