仮想化を禁止したい理由:
ベアメタルアーキテクチャマニフェスト

過去10年間のクラウドコンピューティングの発展の歴史の中で、仮想マシンそしてハイパーバイザー (仮想マシンモニター)これは常にクラウド インフラストラクチャの揺るぎない絶対的な基礎です。 AWS の EC2 であれ、Google Cloud の Compute Engine であれ、ほぼすべてのパブリック クラウド大手は仮想化テクノロジーに依存しています。仮想化により、クラウド サービス プロバイダーは巨大な物理サーバーを数十、場合によっては数百の小さなインスタンスに分割でき、複数の分離されたテナントが同じシリコン、同じバス、同じセットの物理電源を共有できるようになります。この極端なリソース削減と「オーバーサブスクリプション」メカニズムは、クラウド サービス プロバイダーに天文学的な商業利益をもたらし、繁栄した SaaS エコシステムを生み出しました。

しかし、基盤となるハードウェア アーキテクチャの劇的な変化の岐路に立ったとき、特に Apple Silicon (M シリーズ チップ) が革新的な ARM アーキテクチャでデスクトップおよびワークステーション レベルのコンピューティング能力標準を完全に覆したとき、私たちはこの従来の肥大化した X86 クラ​​ウド アーキテクチャを Mac コンピューティング ノードに適用しようとしましたが、絶望的なエンジニアリング ボトルネックが見つかりました。仮想化は、Apple チップの中核となるコンピューティングの魂を不可逆的に破壊しています。

本日、NOVAKVM エンジニアリング チームはこのアーキテクチャ マニフェストをリリースします。非常に深い基礎原理から始めて、仮想化がコンパイル パイプラインおよび極限のパフォーマンスを追求する高強度のローカル大規模言語モデル (LLM) 推論シナリオにおいて放棄されなければならない毒である理由について詳細な分析を提供します。そして、フルスタックの再構築を通じて、世界初の純粋、ロスレス、100% ネイティブの Apple Silicon ベアメタル (ベアメタル) スケジューリング コントロール プレーンをどのように作成したかについて説明します。

なぜ仮想化がパフォーマンスの悪影響を与えるのかを理解するには、まず Apple チップのキラー機能を理解する必要があります。ユニファイド メモリ アーキテクチャ (UMA)。従来の X86 ワークステーション アーキテクチャでは、CPU のシステム メモリ (RAM) と独立したグラフィックス カード (GPU) のビデオ メモリ (VRAM) は物理的に分離されています。 CPU がグラフィックス テクスチャや巨大な AI ニューラル ネットワークの重みなどの大量のデータを GPU 操作に渡す必要がある場合、データは低速で狭い PCIe バスを介して往復コピーする必要があります。このデータ転送の時間損失は、エンジニアによって「PCIe の壁」と呼ばれています。

Apple M4 および M4 Pro チップは、この壁を完全に打ち破ります。 CPU パフォーマンス コア、エネルギー効率コア、マルチコア GPU、ニューラル エンジンはすべて同じシリコン チップ上に統合されており、最大 64 GB、さらには 128 GB の超高帯域幅共有メモリ プールへの直接物理接続。これは、Xcode の並列コンパイル タスクをローカルで実行する場合、または MLX フレームワークを使用して大規模な 70B パラメーター モデルをロードする場合、データは異なるコンピューティング ユニット間で「ゼロコピー」されることを意味します。データはそのまま残りますが、別のコアがメモリ ポインタを取得し、操作は即座に実行されます。

しかし、ハイパーバイザーを導入すると、低レベルの災害が発生しました。

「仮想化層は、CPU の物理命令と基盤となるハードウェア周辺機器の間に、非常に厚いソフトウェア エージェントの層を強制的に挿入します。すべての高速メモリ アドレス指定とすべての高度な同時ファイル システムの読み取りと書き込みは、このエージェント層によってインターセプトされ、変換され、シミュレートされる必要があります。ミリ秒が重要なコンパイルの世界では、これは緩やかな自殺行為です。」

当社の社内ベンチマーク ラボでは、200 万行を超える Swift/Objective-C 混合コードを含む実際の大規模エンタープライズ iOS アプリ プロジェクトを使用しています。テスト結果は衝撃的でした:

  • 100% ベアメタル M4 Pro (14 コア/64GB):インクリメンタルコンパイルと完全なインデックス作成に時間がかかる4分15秒。システムの負荷は非常にスムーズで、NVMe キューの輻輳はありません。
  • M4 Pro VM と同じ構成 (14 vCPU/64GB を割り当て):増分コンパイル時間は大幅に増加しました12分40秒。このとき、ホストのファンは最大速度に達し、カーネル モニタには巨大な速度が表示されます。sys timeこれは、基礎となるページ テーブルの二次変換と I/O 仮想化エージェントのブロックで消費されます。
BENCHMARK_EXECUTION.LOG
root@mg-lab-01:~$ xcodebuild -project Core_Enterprise.xcodeproj -benchmark
> Initiating Build Sequence...
> Allocating parallel compilation threads: 14

[VM Environment Detected - KVM/Hypervisor Hooked]
> Translation overhead: SEVERE
> I/O wait time spiking: > 4200ms
> Result: Build finished in 760.5s. (12m 40s)

root@mg-lab-02:~$ xcodebuild -project Core_Enterprise.xcodeproj -benchmark
> Initiating Build Sequence...

[Bare Metal Environment Detected - Direct Hardware Access]
> Native Metal framework hooked. Zero-copy memory mapped.
> Direct NVMe PCIe lanes confirmed.
> Result: Build finished in 255.0s. (4m 15s)

非常に高い I/O 損失と命令変換損失に加えて、仮想化と物理マシン共有メカニズムもクラウド コンピューティング業界に悪名高い問題を引き起こします。「ノイジーネイバーエフェクト」。単一ホスト上で複数の仮想マシンを実行するとはどういう意味ですか?これは、同じ M4 チップを共有している別のテナントが CPU を異常に占有している場合、仮想マシンのパフォーマンスに予測不可能で深刻なジッターが発生することは避けられないことを意味します。基礎となる CPU レベル 2 (L2) およびシステム レベル (SLC) のキャッシュは、隣接するプロセスによって容赦なくフラッシュおよび排除されます (キャッシュ スラッシング)。この極めて不安定なコンピューティング能力出力は、究極の安定性を追求するエンタープライズレベルの継続的インテグレーション (CI/CD) パイプラインにとって壊滅的な打撃となります。

さらに心配なことは、ハードウェアレベルのセキュリティ防御境界。セキュリティ研究者は、仮想マシンをまたがる物理サイドチャネル攻撃 (有名な Spectre や Meltdown、および ARM アーキテクチャをターゲットとしたその亜種など) には、理論上も実践上も悪用の余地があることを何度も証明してきました。

NOVAKVM では、この隠れた危険を根絶するために最も暴力的かつ効果的な方法を使用します。物理的隔離。レンタルするのはコンピューティング能力だけではなく、アルミニウム合金ケースとマザーボードを備えた本物のスタンドアロン Mac mini です。リースが終了すると、コントロール プレーンが Apple シリコンの最高レベルのセキュリティをトリガーします。Secure Enclave、ハードウェアレベルのデータ暗号化キーを破棄し、次の手順に従います。DoD 5220.22-M 標準NVMe ハードドライブ全体の物理的な深い上書きを実行します。

仮想化のさまざまな欠点を理解した後、チームは非常に難しい選択に直面しました。トレンドに従い、成熟した仮想マシン ソリューションを使用してマシンを過剰販売し、快適に高い利益を獲得するべきでしょうか。それとも、これまで通ったことがなく、工学的な深海に満ちた茨の道を選ぶべきでしょうか?私たちは断固として後者を選択しました。

「人間のオペレーターがクラウド コンピューティングのボトルネックになることは許されません。NOVAKVM では、すべての操作がコード駆動型でなければなりません。」

リバース エンジニアリングとアーキテクチャ設計を何百日も昼夜続けた後、基盤となるネットワーク エンジニアとシステム エンジニアのチームは Apple のMDM(モバイルデバイス管理)プロトコルフレームワーク、Golang に基づいた高い同時実行性のセットをゼロから構築Mac ベアメタル オーケストレーション デーモン (オーケストレーション デーモン)

NOVAKVM コンソールをクリックしたときDEPLOY INSTANCE、サイレント データ センターでは、次のような魔法が自動的かつ高速に実行されます。

  1. スケジューリングと割り当てを行う:スケジューラがリソースプール内の電源オフ状態の物理マシンを確保します。
  2. ハードウェアをリセットしてネットワークブートする:スマート PDU がデバイスに電源を投入し、スイッチがポートを隔離されたリカバリ VLAN に切り替えます。
  3. ネイティブイメージをデプロイする:デプロイサーバーが内部 10G リンク経由でクリーンな macOS イメージを転送します。所要時間は通常 90 秒以内です。
  4. アクセス権を引き渡す:MDM がパブリック静的 IPv4 ルーティングを設定し、SSH 公開鍵をシステムの authorized_keys 信頼パスに書き込みます。

ベアメタル アーキテクチャによってもたらされる利点は、Xcode のコンパイルだけではありません。今日、このアーキテクチャはその最大の用途の到来をもたらしています -局所的大規模モデル (LLM) とエンドサイド推論に関する研究。

「ユニファイドメモリアーキテクチャ」により、1つの構成で64GB以上のメモリM4 Pro 物理マシンのシステム メモリは、GPU によって高速ビデオ メモリとして直接使用できます。 Apple の公式オープンソースと連携してMLXフレームワークを使用すると、開発者は、面倒なメモリの分割やカード間通信を行わずに、超大規模パラメータ スケール モデルをベア メタル ハードウェアに直接シームレスにロードできます。

MLX_INFERENCE_TEST.LOG
# NOVAKVM 64GB ベア メタル ノードにあまり重要ではない去勢されたモデルをロードする
root@mlx-engine:~$ python -m mlx_lm.generate \
    --model meta-llama/Meta-Llama-3-70B-Instruct \
    --prompt "Explain quantum entanglement."

> Allocating unified memory buffer...
[OK] 48.2 GB mapped to GPU address space directly.
> Bootstrapping Neural Engine...

> Generation completed.
> Profiling: Token generation speed: 18.5 tokens/sec
> VRAM Overflow: FALSE (100% Native UMA Support)

私たちは、現代のコンピューティング インフラストラクチャの進化の道筋は、システムとハードウェアの間に重くて複雑なソフトウェア抽象化レイヤーを継続的に積み重ねることではないと強く信じています。それどころか、将来のクラウド コンピューティングは極めて透明性が高くなければなりません。さらに、滑らかな API と高度に自動化された抽象エクスペリエンスを提供します。下向きにすると、一番下のシリコンチップに直接送られ、コンピューティングパワーが遠慮なく流れるようになります。

NOVAKVM では、「IaC (Infra Structure as Code)」の概念を物理レベルで実装します。私たちの長期的な目標は、開発者に完全な Terraform Provider ツール チェーンを提供することです。これにより、AWS で EC2 インスタンスをオーケストレーションするのと同じように、数行の宣言コードを使用して、世界中の複数の大陸にある巨大な純粋な物理 Mac コンピューティング マトリックスを数分で呼び出すことができます。

仮想化の配当時代はピークに達しました。開発者は、コンピューティング能力の損失に対する税金を支払う必要がなくなりました。本日、私たち NOVAKVM は仮想化メカニズムに対して正式に宣戦布告し、コンピューティングの境界を再定義します。

遅い、ぎくしゃくする、予測不可能なビルド時間によってエンジニアリング フローが中断されないようにしてください。純粋で残酷、そしてすべてが自分だけのベアメタルの時代へようこそ。