NVCF:GPUアクセラレーションAIワークロードを大規模にデプロイ・ルーティング
NVIDIA Cloud Functions (NVCF) は、GPUアクセラレーションワークロードを大規模にデプロイ、管理、実行するためのオープンソースプラットフォームです。長時間実行される関数と非同期タスクをサポートし、Kubernetesによるオーケストレーションを活用、統合コントロールプレーン、負荷分散ルーティング、マルチクラスターオートスケーリングなどを提供します。この記事では、NVCFのアーキテクチャ、ワークロードタイプ、コア機能、Bazelを使ったビルド方法について説明します。
NVIDIA Cloud Functions (NVCF) は、NVIDIAが公開したオープンソースプラットフォームで、GPUアクセラレーションワークロードのデプロイ、管理、スケーリングを容易にするものです。このプラットフォームは、NVIDIA GTCで初めて発表され、現在GitHub上でコードが公開されており、開発者はセルフホストで利用できます。NVCFの中心的な目標は、AI推論、ストリーミング処理、バッチ処理などのGPU集約型タスクを、クラウド関数のようにシンプルに呼び出しながら、インフラストラクチャを柔軟に制御できるようにすることです。
NVCFのアーキテクチャはKubernetesをベースとしており、3つの主要プレーンで構成されます:コントロールプレーンは関数のライフサイクル管理、API公開、状態調整を担当します。呼び出しプレーンはHTTP、ストリーム、gRPCリクエストを処理し、ルーティングとレート制限を行います。コンピュートプレーンはNVIDIAクラスターエージェント(NVCA)を介してGPUノードと統合し、実際のワークロードを実行します。この設計により、複数リージョンや複数のGPUクラスターにまたがるデプロイが可能になり、ワークロードを最寄りの場所にルーティングしてレイテンシを低減できます。
プラットフォームは2種類のワークロードを定義しています:関数(Function)とタスク(Task)です。関数は長期実行されるサービスで、継続的なエンドポイントが必要な推論やストリーミングのシナリオに適しています。タスクは非同期で実行完了まで動作するワークロードで、バッチ推論、モデル評価、ファインチューニング、データ前処理などに適しています。どちらも単一のコンテナイメージとして、または複数のコンテナや追加のKubernetesリソースを必要とする複雑なワークロードの場合はHelmチャートとしてパッケージ化できます。
NVCFは豊富なコア機能を提供します:統合コントロールパネルで複数リージョンのクラスターにわたるリクエストルーティングを管理。ワーカーの可用性に基づく負荷分散。複数のプロトコル(HTTP、gRPC、ストリーム)をサポート。ゼロインスタンスから最大容量までスケールするマルチクラスターオートスケーリング。異なるGPUタイプの混合サポート。ワーカーのステータスとリクエストレイテンシを監視するヘルスチェックとテレメトリー。これらの機能により、NVCFは弾力的なスケーリングと高可用性が求められるAIアプリケーションに特に適しています。
典型的なNVCFのワークフローは、nvcf-cliを使用して初期化、APIキーの生成、関数の作成とデプロイ、そして関数の呼び出しを行います。詳細な手順はプロジェクトのドキュメントにあるCLIガイドとクイックスタートを参照してください。また、プロジェクトには開発者がすぐに始められるよう豊富なサンプルとツールが用意されています。
ビルドに関しては、NVCFはBazelを統一的なビルド・テストツールとして採用しています。モノレポ全体がBazelで管理されており、ネイティブバイナリ、マルチプラットフォーム配布、OCIイメージのビルドをサポートします。開発者は簡単なコマンドでプロジェクト全体や特定のサービスをビルドでき、リモートキャッシュを利用してビルドを高速化できます。
NVCFは活発に開発されているオープンソースプロジェクトで、コミュニティからの貢献を歓迎しています。プロジェクトはApache-2.0ライセンスの下で公開されており、詳細なコントリビューションガイドと行動規範が提供されています。公開ロードマップはGitHub Issueで追跡でき、サポートはDiscussionsを通じて得られます。今後の機能拡充により、NVCFはGPUネイティブなクラウドワークロード管理の重要な基盤となることが期待されます。