3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OCIの新Intel Shape「VM.Standard4.Ax.Flex」はどれだけ速い?VM.Standard3.Flexと性能比較してみた

3
Posted at

はじめに

OCIで新しいIntel CPUベース(Granite Rapids世代)のシェイプVM.Standard4.Ax.Flexが利用できるようになりました(AshburnとPhoenixで確認済み)。

公式ブログ、ドキュメントについては以下をご確認ください。

ブログ内では前世代と比較した強化ポイントとして、IPCとメモリ帯域の向上やIntel AMXによるAI推論性能の向上などが挙げられています。

本記事では、上記ブログで言及されていた以下の3点について、実際にベンチマークを実行して前世代と比較してみます。

  • IPC / CPU性能
  • メモリ帯域
  • AMX命令セットによる LLM 推論性能

比較対象は以下の2つです。

Shape 位置づけ
VM.Standard3.Flex 1世代前の Intel Shape
VM.Standard4.Ax.Flex 新しい Intel Shape

検証内容

今回使用したベンチマークは以下です。

観点 使用ツール 確認したいこと
IPC / CPU性能 UnixBench 汎用的なCPU性能の差
メモリ帯域 STREAM メモリ帯域の差
AMX llama.cpp AMX有効時のLLM推論性能

IPC/メモリ帯域 性能

UnixBench

まずはUnixBenchを使って、CPU性能を比較します。
なお、UnixBenchはIPCそのものを直接測定するベンチマークではありません。ただし、同じ条件で Shape 間の比較を行うことで、CPU世代差による汎用的な処理性能の傾向を見ることができます。
そのため、本記事ではIPCを含めたCPU性能の参考値としてUnixBenchを使用しています。

スペック

UnixBench は、以下の条件で実行しました。

Shape Core Memory (GB)
VM.Standard3.Flex 1 16
VM.Standard4.Ax.Flex 1 16

OS Image: Oracle-Linux-9.7-2026.03.31-0

実行方法

sudo yum -y install perl perl-Time-HiRes make gcc

wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/byte-unixbench/UnixBench5.1.3.tgz

tar xf UnixBench5.1.3.tgz
cd UnixBench/

./Run

結果

1 core / 2 threads の結果です。

トータルスコア, Index Score

image.png

新しいので当然ではありますが、、トータルスコアではVM.Standard4.Ax.FlexのほうがVM.Standard3.Flexより高い結果となりました。

UnixBench の Index Score は、整数演算、浮動小数点演算、プロセス生成、ファイルコピー、シェルスクリプト実行など、複数のサブテストを総合したスコアです。

そのため、この結果は「IPCだけの差」として見るのではなく、Linux 環境における汎用的な処理性能の差 として見るのがよいですね。

個別スコア

image.png

個別スコアを見ると、どの処理で差が出ているかを確認できます。
ここでも概ねそれぞれの値が1.3倍前後となっているので、想定される性能差ではないでしょうか。

メモリ帯域

Oracle の公式ブログでは、前世代と比較してメモリチャネルや DDR5 の速度向上により、メモリ帯域の向上が説明されています。

STREAM

STREAM は、メモリ帯域を測定するためによく使われるベンチマークです。
Copy, Scale, Add, Triad の4種類の処理を実行し、それぞれのメモリ帯域を MB/s で確認できます。

スペック

両インスタンスのスペックは以下のようにしました。

VM.Standard4.Ax.FlexのベアメタルシェイプBM.Standard4.Ax.120は120coreでNPS6であるため、NPSあたり20coreであることを考慮してそれ以下でキリの良い16coreとしました。

Shape Core Memory, GB
VM.Standard3.Flex 16 64
VM.Standard4.Ax.Flex 16 64

OS Image: Oracle-Linux-9.7-2026.03.31-0

コンパイル

wget http://www.cs.virginia.edu/stream/FTP/Code/stream.c

gcc -O \
  -mcmodel=large \
  -DSTREAM_ARRAY_SIZE=800000000 \
  -fopenmp \
  -march=native \
  stream.c \
  -o stream

実行

export OMP_NUM_THREADS=32
export OMP_PROC_BIND=TRUE

./stream

結果

image.png

今回の条件では、VM.Standard4.Ax.Flex のほうが全項目で高いメモリ帯域 となりました。

STREAMの結果でもVM.Standard4.Ax.Flexでのメモリ帯域の改善を確認できました。

AMX

最後に、Intel AMX の効果を確認します。

AMX(Advanced Matrix Extensions)は、行列演算を高速化するための拡張命令セットです。
LLM 推論、画像認識、レコメンド、自然言語処理など、AI 系ワークロードで使われる行列演算の高速化に利用できます。

今回は VM.Standard4.Ax.Flex 上で llama.cpp をビルドし、以下の3パターンを比較しました。

  • AVX無効
  • AVX有効
  • AMX有効

スペック

Shape Core Memory (GB)
VM.Standard4.Ax.Flex 8 64

OS Image: Oracle-Linux-10.1-2026.04.30-1

llama.cpp のビルド

AVX無効

まず、AVX 系の命令セットを無効化したビルドです。

cmake -B build-noavx \
  -DCMAKE_BUILD_TYPE=Release \
  -DGGML_NATIVE=OFF \
  -DGGML_SSE42=OFF \
  -DGGML_AVX=OFF \
  -DGGML_AVX2=OFF \
  -DGGML_AVX_VNNI=OFF \
  -DGGML_AVX512=OFF \
  -DGGML_AVX512_VBMI=OFF \
  -DGGML_AVX512_VNNI=OFF \
  -DGGML_AVX512_BF16=OFF \
  -DGGML_FMA=OFF \
  -DGGML_F16C=OFF \
  -DGGML_BMI2=OFF \
  -DGGML_AMX_TILE=OFF \
  -DGGML_AMX_INT8=OFF \
  -DGGML_AMX_BF16=OFF

cmake --build build-noavx -j

AVX有効

次に、AVX-512 と VNNI を有効化し、AMX は無効化したビルドです。

cmake -B build-noamx \
  -DGGML_NATIVE=OFF \
  -DGGML_AVX512=ON \
  -DGGML_AVX512_VNNI=ON \
  -DGGML_AMX_TILE=OFF \
  -DGGML_AMX_INT8=OFF \
  -DGGML_AMX_BF16=OFF

cmake --build build-noamx -j

AMX有効

最後に、AMX TILE, AMX INT8, AMX BF16 を有効化したビルドです。

cmake -B build-amx \
  -DGGML_NATIVE=OFF \
  -DGGML_AVX512=ON \
  -DGGML_AVX512_VNNI=ON \
  -DGGML_AMX_TILE=ON \
  -DGGML_AMX_INT8=ON \
  -DGGML_AMX_BF16=ON

cmake --build build-amx -j

実行

以下のように llama-cli を実行しました。

./build-noavx/bin/llama-cli \
  -hf unsloth/Qwen3.6-27B-GGUF:Q4_K_M \
  -cnv \
  -t 8

プロンプトは以下を使用しました。

AMX命令がLLM推論を高速化する理由を日本語で説明してください。

同じ条件で、AVX無効、AVX有効、AMX有効の3パターンを実行し、Prompt processing と Generation の tokens/sec を比較します。

結果比較

ビルドパターン Prompt, t/s Generation, t/s
AVXなし 9.4 3.7
AVXあり 11.7 3.6
AMX有効 16.9 3.9

Prompt processing では、AMX 有効時に大きな性能向上が見られました。

AVXなしと比較すると、以下のようになります。

16.9 / 9.4 = 約1.80倍

AVXありと比較すると、以下のようになります。

16.9 / 11.7 = 約1.44倍

一方で、Generation の tokens/sec は大きく変わりませんでした。

これは、LLM 推論における Prompt processing と Generation の処理特性の違いによるものと考えられます。

Prompt processing では、入力されたトークン列をまとめて処理するため、行列演算の並列性を活かしやすく、AMX の効果が出やすいと考えられます。
一方、Generation は基本的に 1 token ずつ逐次的に生成していく処理になるため、Prompt processing ほど AMX の効果が出にくいと考えられます。

今回の結果では、AMX は特に プロンプト処理の高速化 に効果があることが確認できました。

まとめ

今回は、OCI の Intel CPU ベースの Shape である VM.Standard3.FlexVM.Standard4.Ax.Flex を比較しました。

確認した内容は以下です。

観点 結果
UnixBench VM.Standard4.Ax.Flex のほうが高いスコア
STREAM VM.Standard4.Ax.Flex が全項目で向上
AMX Prompt processing が大きく高速化

UnixBench/STREAMにおいて、VM.Standard4.Ax.Flex のほうが高いスコアとなり、汎用的な CPU 性能の向上が確認できました。

またAMXの効果はかなり分かりやすく出ました。
llama.cpp を使ったLLM推論では、AMX有効時にPrompt processingがAVXなし比で約1.8倍、AVXあり比で約1.4倍となりました。

おわりに

VM.Standard4.Ax.Flex は、単純なCPU性能やメモリ帯域だけでなく、Intel AMXによるAI系ワークロードの高速化が期待できるShapeであることが確認できました。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?