はじめに
当方は弊社CTO事業部にて、アプリケーション・エンジニアリング業務に携わっています。
本レポートでは、NVIDIA DGX Spark(NVIDIA GB10 Grace Blackwell スーパーチップ搭載システム)を用いて実施したベンチマーク結果を報告します。
主な目的は、AI向けの Brain Float 16(Bfloat16、BF16) から科学技術計算で用いられる 倍精度(FP64) まで、異なる精度フォーマットにおけるGrace Blackwellアーキテクチャの性能を検証することです。Grace Blackwellアーキテクチャは、AIワークロードを主目的として設計されていますが、本検証ではAI用途だけでなく、科学技術計算における性能特性についても確認します。
検証にあたっては、関連技術資料の調査に基づき、AIとの協働によって開発したPythonプログラム「ULTIMATE BENCHMARK SUITE」を使用しました。本プログラムでは、16384×16384の大規模行列乗算を実行し、GPUコアへ高負荷をかけることにより、理論上のピークスループットに近い実効性能を測定しています。
なお、本検証で得られた数値は、AIワークロード(学習・推論)における行列積の演算性能をシミュレートしたものです。理想的な環境下における限定的なテスト結果であり、実際の学習・推論プロセスの全工程における性能を保証するものではありません。あらかじめご留意ください。
テスト環境
- アーキテクチャ:Grace Blackwell
- CPU:20コア Arm CPU(10 × Cortex-X925 + 10 × Cortex-A725)
- GPU:BlackwellアーキテクチャGPU
- GPU接続:NVLink-C2C(CPU–GPU間コヒーレント接続)
- メモリ:128GB LPDDR5X(CPU/GPU共有メモリ、実効約120GB)
- OS:DGX OS 5
- GPUドライバ:580.95.05
- CUDA Toolkit:13.0
- テスト行列サイズ:16384 × 16384
ベンチマーク手順
以下では、NVIDIAのPyTorchコンテナを使用して、本稿のベンチマーク結果を再現するための手順を示します。
ステップ 1:環境セットアップ
まず、Arm64アーキテクチャに最適化された最新のNVIDIA PyTorchコンテナを取得し、コンテナを起動します。
# 1. Dockerイメージを取得
docker pull --platform linux/arm64 nvcr.io/nvidia/pytorch:25.12-py3
# 2. コンテナをインタラクティブモードで起動
docker run --gpus all --rm -it --ipc=host nvcr.io/nvidia/pytorch:25.12-py3
ステップ 2:ベンチマークスクリプトの作成
コンテナ内で、Pythonベンチマークスクリプト「gb10_peak_benchmark.py」を作成します。
以下のスクリプトは、大規模行列乗算(16384 × 16384)を用いてGPUに高負荷を与え、各精度フォーマットにおける演算性能(TFLOPS)を測定するものです。
このベンチマークの特徴
本スクリプトでは、大規模行列乗算を連続実行することでGPUの演算ユニットを最大限に活用し、Grace Blackwellアーキテクチャのピークスループットに近い性能を計測します。主なポイントは次のとおりです。
- 行列サイズ:16384 × 16384
- 測定精度:FP16 / BF16 / FP32 / FP64
- Tensor Coreの利用:FP16およびBF16ではTensor Coreを使用
- CUDA Core主体の演算:FP32およびFP64
- ウォームアップ実行:計測前にGPUをウォームアップして安定した性能を取得
これにより、AIワークロードで利用される低精度演算から、科学技術計算で用いられる倍精度演算まで、各精度における演算性能を比較できます。
##create the python script gb10_peak_benchmark.py.
import torch
import time
import sys
# --- Configuration ---
# 16384 is the "Sweet Spot" for GB10.
MATRIX_SIZE = 16384
device = torch.device('cuda:0')
def print_header():
if not torch.cuda.is_available():
print('Error: No GPU detected.')
sys.exit(1)
props = torch.cuda.get_device_properties(device)
print(f'\n{"="*70}')
print(f' NVIDIA DGX SPARK GB10 - ULTIMATE BENCHMARK SUITE')
print(f'{"="*70}')
print(f'[System] GPU Model: {props.name}')
print(f'[System] VRAM Total: {props.total_memory / 1024**3:.2f} GB')
print(f'[Config] Matrix Size: {MATRIX_SIZE} x {MATRIX_SIZE}')
print(f'[Target] Peak AI Performance (100+ TFLOPS)')
print(f'{"-"*70}')
def run_test(label, dtype, use_tf32=False, iters=10):
try:
torch.backends.cuda.matmul.allow_tf32 = use_tf32
x = torch.randn(MATRIX_SIZE, MATRIX_SIZE, device=device, dtype=dtype)
y = torch.randn(MATRIX_SIZE, MATRIX_SIZE, device=device, dtype=dtype)
print(f'Testing: {label}...')
# Warmup
for _ in range(3):
torch.mm(x, y)
torch.cuda.synchronize()
# Benchmark
start_time = time.time()
for _ in range(iters):
torch.mm(x, y)
torch.cuda.synchronize()
end_time = time.time()
total_seconds = end_time - start_time
total_ops = 2 * (MATRIX_SIZE**3) * iters
tflops = (total_ops / total_seconds) / 1e12
gflops = (total_ops / total_seconds) / 1e9
print(f' > Time: {total_seconds:.4f} sec (for {iters} iterations)')
print(f' > Result: {tflops:.4f} TFLOPS | {gflops:.1f} GFLOPS')
print(f'{"-"*70}')
del x, y
torch.cuda.empty_cache()
except Exception as e:
print(f' > Error: {e}')
print(f'{"-"*70}')
# --- Main Execution Flow ---
print_header()
# 1. FP16
run_test(label='FP16 (Half Precision) [Tensor Cores active]', dtype=torch.float16, use_tf32=False, iters=50)
# 2. BF16
run_test(label='BF16 (BFloat16) [Tensor Cores active]', dtype=torch.bfloat16, use_tf32=False, iters=50)
# 3. FP32
run_test(label='FP32 (IEEE 754 Single) [CUDA Cores]', dtype=torch.float32, use_tf32=False, iters=10)
# 4. FP64
run_test(label='FP64 (Double Precision) [Scientific]', dtype=torch.float64, use_tf32=False, iters=5)
print('Benchmark Complete.')
ステップ 3:実行とモニタリング
作成したベンチマークスクリプトを実行します。あわせて、別のターミナルでGPUの利用状況を監視します。
ベンチマーク実行中は、nvidia-smiを用いてGPU使用率、消費電力、メモリ使用量などをリアルタイムで確認できます。正常に動作している場合、GPU使用率はほぼ100%に張り付き、GPUが継続的に高負荷状態で動作していることを確認できます。
# ベンチマークの実行
python3 gb10_peak_benchmark.py
# GPUの状態を監視(別ターミナルで実行)
watch -n 0.5 nvidia-smi
ベンチマーク結果
演算パフォーマンス(FP16 / BF16)
最初のテストでは、現代のディープラーニング推論およびトレーニングで広く使用される半精度フォーマットに焦点を当てています。これらのテストでは、GB10の専用Tensorコアを使用して行列演算を実行します。
FP16(Half Precision)
Testing: FP16 (Half Precision) [Tensor Cores active]...
> Time: 4.5557 sec (for 50 iterations)
> Result: 96.5391 TFLOPS | 96539.1 GFLOPS
BF16(BFloat16)
Testing: BF16 (BFloat16) [Tensor Cores active]...
> Time: 4.5384 sec (for 50 iterations)
> Result: 96.9065 TFLOPS | 96906.5 GFLOPS
分析
GB10は行列積において非常に高い演算性能を示し、FP16およびBF16の両方で約97 TFLOPS前後のスループットを記録しました。これはTensorコアが効率的に動作していることを示しており、大規模言語モデル(LLM)などのAIワークロードに使われる行列積演算において、高い性能を備えていることが確認できます。
汎用計算(FP32)
単精度(FP32)は、汎用GPUコンピューティングやレガシーなAIモデルで広く使用される演算精度です。このテストでは、主にCUDAコアを使用した行列演算性能を測定します。
Testing: FP32 (IEEE 754 Single) [CUDA Cores]...
> Time: 4.7443 sec (for 10 iterations)
> Result: 18.5403 TFLOPS | 18540.3 GFLOPS
分析
FP32の測定結果は約18.5 TFLOPSでした。これは理論最大性能のおよそ65%に相当します。今回のテストではTensorFloat-32(TF32)アクセラレーションを使用していないため、CUDAコアによる純粋なFP32演算性能を測定した結果となります。
この値は、Tensorコアを使用しないCUDAコア主体の演算における実効持続性能としては、一般的な範囲に収まる結果といえます。
科学技術計算(FP64)
倍精度(FP64)は、高精度の科学シミュレーション(流体力学や気象予測など)で使用される演算精度です。
Testing: FP64 (Double Precision) [Scientific]...
> Time: 104.6475 sec (for 5 iterations)
> Result: 0.4203 TFLOPS | 420.3 GFLOPS
分析
測定されたFP64性能は約0.42 TFLOPSでした。これはFP32性能に対して約1:64の比率となっており、AI用途を主目的としたGPUアーキテクチャに一般的に見られる設計です。
「デスクサイドAI」アーキテクチャとして予想されるとおり、GB10では低精度演算の性能が優先されており、倍精度演算の性能は抑えられています。
一方で、この結果は理論スペックである464 GFLOPSに対して約90%の水準に達しており、倍精度演算においてもハードウェアが想定どおりの性能を発揮していることが確認できます。
ベンチマークのまとめ
NVIDIA DGX Spark(GB10 Grace Blackwellスーパーチップ搭載)は、今回実施したULTIMATE BENCHMARK SUITEに無事合格しました(笑)。
FP16、BF16、FP32、FP64の各精度で包括的なテストを行った結果、本システムの性能特性は以下のように整理できます。
| テスト項目 | 実測性能 | 評価 | 最適な用途 |
|---|---|---|---|
| FP16 | ~96.5 TFLOPS | ⭐⭐⭐⭐⭐ |
実運用レベルのAI推論 |
| BF16 | ~96.9 TFLOPS | ⭐⭐⭐⭐⭐ |
高い安定性が求められるAIファインチューニング |
| FP32 | ~18.5 TFLOPS | ⭐⭐⭐ | 標準的なPyTorch開発やデータ処理 |
| FP64 | 0.42 TFLOPS | ⭐ | CFD(流体力学)やFEM(有限要素法)などの高精度科学計算には適していません。 |
要約
-
行列積演算性能の優位性
BF16で約97 TFLOPSのスループットを記録し、大規模言語モデル(LLM)などのAIワークロードに使われる行列積演算において高い性能を示しました。
-
大容量メモリ
128GBの統合メモリ(実効約120GB)により、コンシューマー向けGPUでは扱いにくい大規模モデルのロードが可能です。
-
将来性
ソフトウェアの成熟に伴い、Blackwellアーキテクチャが対応するFP4精度(最大1 PFLOPS級)によるさらなる推論性能の向上が期待されます。
-
ハードウェアの健全性
すべての測定結果が理論性能に対して妥当な効率範囲に収まっており、システムの熱および電力面でも安定した動作が確認されました。
編集後記
AI推論(Inference)向けデバイスとして、PCIe帯域の制約を受けない128GBの統合メモリを備えたGB10 Grace Blackwellは、大規模LLMを扱ううえで非常に興味深く、強力な選択肢であることが確認できました。
ぜひ、NGCコンテナを活用して、お手元の環境でも試してみてください。
今後は、FP4、FP8精度による推論性能や、ファインチューニング時の性能についても検証してみたいところです。
なお、弊社ではエッジデバイスから NVIDIA DGX Spark まで、幅広いハイパフォーマンスマシンを取り扱っています。ご興味がありましたらお気軽にご相談ください。
参考文献・データソース
-
How NVIDIA DGX Spark’s Performance Enables Intensive AI Tasks
NVIDIA公式開発者ブログ。ファインチューニングおよび推論のパフォーマンス指標を詳しく解説しています。
How NVIDIA DGX Spark’s Performance Enables Intensive AI Tasks | NVIDIA Technical BlogToday’s demanding AI developer workloads often need more memory than desktop systems provide or require access to software that laptops or PCs lack. This forces work to be moved to the cloud or data… -
NVIDIA DGX Spark Datasheet
公式ハードウェア仕様書。128GB統合メモリなどのシステム仕様およびアーキテクチャの詳細が掲載されています。
https://nvdam.widen.net/s/tlzm8smqjx/workstation-datasheet-dgx-spark-gtc25-spring-nvidia-us-3716899-web -
NVIDIA NGC PyTorch Container (25.12-py3)
本ベンチマークで使用した公式コンテナイメージのリリース情報。
PyTorch | NVIDIA NGCPyTorch is a GPU accelerated tensor computational framework. Functionality can be extended with common Python libraries such as NumPy and SciPy. Automatic differentiation is done with a tape-based system at the functional and neural network layer levels.
産業用コンピュータならHPCシステムズ
HPCシステムズでは信頼性の高い産業用コンピュータ/タブレットを幅広く提供しています。
要求仕様に応じたカスタマイズのほか、中小規模での量産にも対応。仕様設計・試作・検証・生産・サポートまで徹底的にお応えいたします。
デスク上のAIスーパーコンピュータ「NVIDIA DGX Spark」

用途にあわせてカスタマイズ可能! お見積りシミュレーション
[cto-cta]


