26S24b

QK·2026년 9월 24일

네. 다만 5개 모델 × TP 1/2/4/8 × BF16/FP8/FP4 × context × concurrency를 전부 조합하면 수천 개 테스트가 되므로, B300 8-GPU POC에서는 1차 Full Matrix + 2차 Deep Matrix로 나누는 것이 좋습니다.

또한 MLPerf Inference에서도 Llama 3.1 8B는 Datacenter에서 Offline과 Server를 별도 시나리오로 다루므로, 단순히 tokens/sec 하나만 측정하기보다는 throughput 계열과 latency 계열을 분리하는 것이 좋습니다. (MLCommons)

1. 먼저 전체 benchmark 구조

제가 B300 8-GPU라면 다음처럼 구성하겠습니다.

                         B300 8-GPU
                             │
          ┌──────────────────┼──────────────────┐
          │                  │                  │
       MODEL             PRECISION           WORKLOAD
          │                  │                  │
   ┌──────┼──────┐      BF16 / FP8 / FP4    Context
   │      │      │                           Concurrency
   8B    32B    70B                         Prefill/Decode
               │
         ┌─────┴─────┐
       120B MoE     671B MoE

그리고 TP는 모델별로 무조건 1/2/4/8을 모두 돌리는 게 아니라, 모델 크기에 따라 의미 있는 TP를 선택합니다.


2. 추천 최종 Matrix

모델별 기본 Matrix

ModelTP=1TP=2TP=4TP=8BF16FP8FP4
Llama 3.1 8B★★○○★★★
Qwen3 32B★★★○★★★
Llama 3.1 70B×★★★★★★
gpt-oss-120B×★★★△★★
DeepSeek-R1 671B××△★×/△△★

범례:

  • ★ = 반드시 테스트
  • ○ = 선택 테스트
  • △ = 환경/프레임워크 지원 확인 후
  • × = 기본 benchmark에서는 제외

여기서 중요한 것은 FP4를 모든 모델에 동일하게 적용한다고 생각하면 안 된다는 것입니다.

특히 gpt-oss-120B와 DeepSeek-R1은 모델의 quantization/inference implementation에 따라 실제 가능한 precision 조합이 달라집니다.


3. TP Matrix를 이렇게 잡는 이유

Llama 3.1 8B

TP1 ★★★★★
TP2 ★★★
TP4 ★
TP8 ★

8B는 TP1에서 충분히 들어가므로 TP scaling 자체가 중요한 모델이 아닙니다.

오히려:

GPU 1개를 얼마나 효율적으로 쓰느냐

가 중요합니다.

따라서:

TP1
  ↓
latency
throughput
GPU utilization
power

TP2/4/8
  ↓
communication overhead
scaling efficiency

를 보는 용도입니다.


4. Qwen3-32B

여기가 상당히 중요합니다.

TP1 ★
TP2 ★★
TP4 ★★★
TP8 ★

추천:

PrecisionTP
BF161/2/4
FP81/2/4
FP41/2/4
8-GPU scalingTP8 일부

특히 Qwen3-32B는 TP1 vs TP2 vs TP4를 비교하기 좋습니다.

예를 들어:

TP1
32B → GPU 1

TP2
32B → GPU 2

TP4
32B → GPU 4

TP8
32B → GPU 8

이렇게 했을 때 단순 throughput뿐 아니라 GPU당 utilization과 inter-GPU communication overhead를 같이 보는 것이 중요합니다.


5. Llama 3.1 70B

여기부터 B300 8-GPU의 본격적인 benchmark입니다.

TP2 ★★★
TP4 ★★★★★
TP8 ★★★★★

추천 matrix:

PrecisionTP2TP4TP8
BF16★★★
FP8★★★
FP4★★★

특히:

70B BF16 TP4
70B BF16 TP8

70B FP8 TP4
70B FP8 TP8

70B FP4 TP4
70B FP4 TP8

이 6개가 핵심 baseline입니다.

여기서 B300의 FP8/FP4 acceleration 효과를 상당히 명확하게 볼 수 있습니다.


6. gpt-oss-120B

이 모델은 조금 다르게 봐야 합니다.

MoE이기 때문에 단순히:

120B dense

처럼 해석하면 안 됩니다.

따라서:

PrecisionTP2TP4TP8
BF16△△△
FP8★★★
FP4★★★

FP4를 핵심 configuration으로 잡는 것을 권장합니다.

그리고 이 모델은 특히:

reasoning OFF
reasoning ON

을 분리해서 보는 게 좋습니다.

왜냐하면 같은 model이라도 output token 수와 decode workload가 크게 달라질 수 있기 때문입니다.


7. DeepSeek-R1

여기는 별도의 stress test입니다.

원본 DeepSeek-R1은 671B total / 약 37B active의 MoE이기 때문에 앞의 8B/32B/70B와 동일한 benchmark로 취급하면 안 됩니다.

B300 8-GPU에서는:

TP8
  │
  ├── FP4 ★★★★★
  ├── FP8 △
  └── BF16 ×/△

를 기본으로 하고,

TP4는 가능한 quantized implementation이 있을 경우만 추가하는 방식이 좋습니다.

즉:

DeepSeek-R1의 목적은 "TP scaling 전체 곡선"보다 8-GPU에서 대형 reasoning model을 얼마나 처리할 수 있는가를 보는 것

으로 잡는 것이 좋습니다.


8. Context Length Matrix

이 부분은 모든 모델에 동일하게 하지 않는 것이 중요합니다.

제가 권장하는 값은:

512
2K
8K
16K
32K
64K
128K

입니다.

다만 전체 모델 × 전체 context를 돌리면 너무 많습니다.

그래서 3단계로 나눕니다.

A. Standard

512
2K
8K

5개 모델 모두.

B. Long Context

16K
32K
64K

32B / 70B / 120B / R1 중심.

C. Extreme Context

128K

Qwen / Llama / 지원되는 모델 중심.


9. 제가 실제로 사용할 Context Matrix

Model5122K8K16K32K64K128K
Llama 8B★★★○○△△
Qwen 32B★★★★★★★
Llama 70B★★★★★★★
gpt-oss 120B★★★★★★○
DeepSeek-R1★★★★★★○

이렇게 하면 long-context에서 KV cache가 HBM을 얼마나 먹는지도 자연스럽게 드러납니다.

그리고 이것은 나중에 사용자가 관심 있는 MemKV/KV offload benchmark와 직접 연결됩니다.


10. Output token은 고정해야 함

Context만 바꾸면 안 됩니다.

제가 추천하는 기본 workload는:

Short output

input = 512 / 2K / 8K
output = 128

Normal generation

input = 2K / 8K / 32K
output = 512

Reasoning

input = 2K / 8K
output = 2K / 4K

Long-context generation

input = 32K / 64K / 128K
output = 512

이렇게 분리합니다.


11. Concurrency Matrix

여기서도 모델마다 다르게 해야 합니다.

8B

1
2
4
8
16
32
64
128
256

32B

1
2
4
8
16
32
64
128

70B

1
2
4
8
16
32
64

120B

1
2
4
8
16
32
64

R1

1
2
4
8
16
32

이렇게 해야 합니다.

특히 128/256 concurrency를 70B/R1에 억지로 넣을 필요가 없습니다.

메모리와 KV cache 때문에 saturation point가 훨씬 빨리 올 가능성이 높기 때문입니다.


12. 최종적으로는 이런 4개 benchmark suite를 만드세요

Suite A — Single Request Latency

목적:

"B300 한 요청의 순수 inference latency가 얼마나 빠른가?"

Concurrency = 1

Input:
512 / 2K / 8K / 32K

Output:
128 / 512

측정:

  • TTFT
  • Prefill latency
  • TPOT
  • ITL
  • E2E latency
  • GPU utilization

13. Suite B — Throughput

목적:

"B300 8-GPU가 동시에 얼마나 많은 token을 처리하는가?"

Concurrency:
1
2
4
8
16
32
64
128

측정:

Input tokens/sec
Output tokens/sec
Total tokens/sec
Request/sec
P50/P95/P99 latency
GPU utilization
HBM utilization
Power

이게 가장 중요한 benchmark입니다.

MLPerf의 Server/Offline 구분도 이런 throughput/latency trade-off를 분리해서 평가하기 때문에 이 구조가 좋습니다. (MLCommons)


14. Suite C — Long Context

이것은 B300에서 특히 중요합니다.

Context
8K
16K
32K
64K
128K

Concurrency
1
4
8
16

여기서:

TTFT
KV cache size
GPU HBM used
GPU HBM utilization
Prefill throughput
Decode throughput

을 봅니다.

결과가 예를 들어:

Context      TTFT       HBM
--------------------------------
8K           180ms      35GB
32K          720ms      58GB
64K          1.5s       75GB
128K         OOM        -

처럼 나오면 B300의 long-context capacity cliff를 정확히 볼 수 있습니다.


15. Suite D — Precision Scaling

이게 B300 benchmark에서 상당히 중요합니다.

각 모델의 대표 configuration을 잡아서:

BF16
   ↓
FP8
   ↓
FP4

를 비교합니다.

예:

Llama 70B

TP4 BF16
TP4 FP8
TP4 FP4

TP8 BF16
TP8 FP8
TP8 FP4

그리고 각각:

TTFT
TPOT
tokens/sec
GPU utilization
HBM
power

를 비교합니다.

결과적으로:

FP8 speedup = FP8 throughput / BF16 throughput

FP4 speedup = FP4 throughput / BF16 throughput

을 계산할 수 있습니다.


16. 그런데 TP × Precision을 모두 돌리면 너무 많습니다

예를 들어 70B만 해도:

3 precision
×
3 TP
×
7 context
×
7 concurrency

=

441개

입니다.

5개 모델이면 바로 수천 개가 됩니다.

그래서 저는 2-pass 방식을 강하게 추천합니다.


17. Pass 1 — B300 기본 성능 Matrix

먼저 아래만 합니다.

Llama 8B

TP1
BF16 / FP8 / FP4

Context:
2K / 8K

Concurrency:
1 / 8 / 32 / 128

= 36 tests


Qwen 32B

TP1 / TP2 / TP4
BF16 / FP8 / FP4

Context:
2K / 8K / 32K

Concurrency:
1 / 8 / 32 / 64

= 108 tests


Llama 70B

TP2 / TP4 / TP8
BF16 / FP8 / FP4

Context:
2K / 8K / 32K

Concurrency:
1 / 4 / 16 / 32

= 108 tests


gpt-oss-120B

TP2 / TP4 / TP8
FP8 / FP4

Context:
2K / 8K / 32K

Concurrency:
1 / 4 / 16 / 32

= 72 tests


DeepSeek-R1

TP8
FP4

Context:
2K / 8K / 32K

Concurrency:
1 / 4 / 8 / 16

= 12 tests


Pass 1 total

대략:

336개 configuration

이 정도면 상당히 현실적입니다.


18. Pass 2 — 핵심 configuration만 Deep Dive

Pass 1 결과를 보고 각 모델에서 대표 configuration 2~3개를 선택합니다.

예:

Llama 8B
  TP1 FP8

Qwen 32B
  TP2 FP8
  TP4 FP8

Llama 70B
  TP4 FP8
  TP8 FP8

gpt-oss-120B
  TP4 FP4
  TP8 FP4

DeepSeek-R1
  TP8 FP4

그 다음:

512
2K
8K
16K
32K
64K
128K

와

1
2
4
8
16
32
64
128
256

을 이용해서 saturation curve를 그립니다.


19. 특히 TP scaling은 이렇게 봐야 합니다

예를 들어 Llama 70B:

              Throughput
                   │
TP1 ───────────────┤
TP2 ───────────────┤ █████████
TP4 ───────────────┤ █████████████████
TP8 ───────────────┤ █████████████████████
                   │

그리고 단순 throughput만 보면 안 되고:

Scaling Efficiency

TP2 = TP2 throughput / (TP1 throughput × 2)

TP4 = TP4 throughput / (TP1 throughput × 4)

TP8 = TP8 throughput / (TP1 throughput × 8)

를 계산합니다.

예를 들어:

TP1 = 100 tok/s
TP2 = 185 tok/s
TP4 = 330 tok/s
TP8 = 540 tok/s

라면:

TP2 efficiency = 92.5%
TP4 efficiency = 82.5%
TP8 efficiency = 67.5%

이런 식으로 B300 NVLink/NVSwitch + vLLM communication efficiency를 평가할 수 있습니다.


20. 그리고 B300에서는 GPU당 실행도 반드시 넣겠습니다

특히 8B/32B는:

1 GPU

에서 먼저 측정하고,

그 다음:

2 GPU
4 GPU
8 GPU

로 확장합니다.

반대로 70B 이상은:

TP2
TP4
TP8

중심으로 갑니다.

즉 전체 matrix를 그림으로 표현하면:

                         TP
              1       2       4       8
             ───────────────────────────
8B           █       △       △       △
32B          █       █       █       △
70B          -       █       █       █
120B         -       █       █       █
R1           -       -       △       █

이것이 B300 8-GPU에서 가장 현실적인 matrix입니다.


21. 최종 Benchmark 결과표는 이렇게 만들면 좋습니다

최종적으로 CSV/Excel에는 최소한 다음 column을 넣으세요.

model
model_revision
precision
quantization
tensor_parallel
pipeline_parallel
input_tokens
output_tokens
context_length
concurrency

TTFT_avg
TTFT_p50
TTFT_p95
TTFT_p99

ITL_avg
ITL_p50
ITL_p95
ITL_p99

E2E_p50
E2E_p95
E2E_p99

input_tok_per_sec
output_tok_per_sec
total_tok_per_sec
request_per_sec

GPU_util_avg
GPU_util_p95
HBM_used_GB
HBM_util
power_W

prefill_tok_per_sec
decode_tok_per_sec

KV_cache_GB
KV_cache_hit
OOM
error_rate

TP_scaling_efficiency

그리고 vLLM version, CUDA, driver, NGC container, GPU firmware도 반드시 같이 기록해야 합니다.


22. 제일 중요한 것은 "표준 baseline"을 별도로 고정하는 것

5개 모델의 모든 조합을 돌리는 것과 별개로, 보고서의 대표 숫자를 만들 때는 아래 configuration을 고정 baseline으로 만드는 것을 권합니다.

ModelBaseline
Llama 3.1 8BTP1 / FP8
Qwen3 32BTP2 / FP8
Llama 3.1 70BTP4 / FP8
gpt-oss-120BTP8 / FP4
DeepSeek-R1TP8 / FP4

그리고 모든 모델에 대해:

Input = 2K
Output = 512

Concurrency =
1
8
32

를 공통으로 돌립니다.

이렇게 하면 "B300 8-GPU에서 대표적인 5개 LLM을 동일 조건에서 돌렸을 때"라는 매우 깔끔한 baseline 표가 생깁니다.

그 다음에 별도로:

Long Context
Precision Scaling
TP Scaling
Max Throughput
Max Concurrency

를 파고들면 됩니다.

그리고 이 구조가 지금 진행하려는 MemKV 테스트에도 상당히 좋습니다. 먼저 이 baseline에서 TTFT / prefill / KV cache / HBM을 확보한 뒤, 동일 workload에서 GPU HBM KV → CPU RAM KV → MemKV로 바꾸면 MemKV의 실제 효과를 일반 inference 성능과 분리해서 증명할 수 있습니다.

==

네. 현재 목적이 “B300 8-GPU의 일반적인 LLM inference 성능을 폭넓게 측정”하는 것이라면 Qwen을 하나 추가하는 것을 권장합니다.

다만 Qwen을 여러 개 넣을 필요는 없고, Qwen3-32B 하나를 추가하는 것이 가장 실용적이라고 봅니다.

1. 제가 추천하는 최종 5종

모델규모대략적인 BF16 weight 용량테스트에서의 역할
Llama 3.1 8B Instruct8B~16 GB소형/고처리량 baseline
Qwen3-32B32.8B~65–70 GB중형 모델 + thinking/non-thinking 비교
Llama 3.1 70B Instruct71B~140–145 GB대형 dense 모델 대표
gpt-oss-120b117B total / 5.1B active실제 배포는 MXFP4 중심MoE + reasoning/agentic
DeepSeek-R1671B total / 37B activeFP/BF16 원본은 매우 큼초대형 MoE reasoning

Llama 3.1의 공식 모델 카드는 8B/70B/405B 모델을 제공하고 128K context를 지원한다고 명시합니다. (Hugging Face)
DeepSeek-R1은 671B total / 37B activated 구조입니다. (Hugging Face)
gpt-oss-120b는 117B parameters, 5.1B active parameters의 MoE이며 MXFP4로 80GB GPU 한 장에서도 실행하도록 설계되어 있습니다. (Hugging Face)
Qwen3-32B는 약 32.8B dense 모델이고 기본 32K context, YaRN으로 131K까지 확장할 수 있으며 thinking/non-thinking을 전환할 수 있습니다. (Hugging Face)


2. 왜 Qwen3-32B를 넣는 게 좋은가?

현재 4개 모델만 보면 약간의 중간 구간이 비어 있습니다.

8B
 │
 │  ← 큰 gap
 │
70B
 │
 │
120B MoE
 │
671B MoE

여기에 Qwen3-32B를 넣으면:

8B
 │
32B       ← 중간 규모 / 매우 중요한 실사용 영역
 │
70B
 │
120B MoE
 │
671B MoE

특히 B300 성능 테스트에서는 32B가 상당히 유용한 구간입니다.

왜냐하면 8B는 너무 가벼워서 B300의 절대적인 성능을 충분히 압박하지 못할 수 있고, 70B 이상은 TP=4/8 등의 multi-GPU 구성이 중요해집니다.

반면 32B는:

  • 단일 GPU 또는 소수 GPU에서 테스트하기 좋고
  • 높은 concurrency를 만들기 쉽고
  • TTFT / TPOT / throughput을 보기 좋고
  • long-context도 테스트하기 좋고
  • Qwen3의 thinking / non-thinking 차이도 측정할 수 있습니다. (Hugging Face)

따라서 B300 8-GPU의 general inference benchmark에는 상당히 좋은 중간 모델입니다.


4. DeepSeek-R1은 사실 다른 선택지도 있음

여기서 한 가지 중요한 부분이 있습니다.

사용자가 말한 DeepSeek-R1을 그대로 671B 원본으로 테스트할 수도 있지만, B300 8-GPU POC라면 다음과 같이 나누는 것도 좋습니다.

DeepSeek-R1
   │
   ├── Full R1 671B
   │      → large-scale MoE / reasoning stress test
   │
   └── R1-Distill
          ├── Qwen-32B
          ├── Llama-70B
          └── ...

DeepSeek 공식 repository에는 R1-Distill-Qwen-32B와 R1-Distill-Llama-70B 같은 모델도 같이 제공됩니다. (Hugging Face)

다만 benchmark의 모델 수를 늘리려는 목적이라면 저는 이것들을 추가하지 않겠습니다.

이미

Qwen3-32B
DeepSeek-R1

이 있기 때문에 Distill 모델까지 넣으면 테스트 matrix가 너무 커집니다.


5. 제가 B300 8-GPU POC라면 이렇게 구성하겠습니다

Core benchmark

TierModel목적
SLlama 3.1 8Bhigh-throughput / low latency
MQwen3-32B중간 규모 / thinking vs non-thinking
LLlama 3.1 70Blarge dense
XLgpt-oss-120bMoE / agentic / reasoning
XXLDeepSeek-R1 671Bextreme MoE / reasoning

이렇게 하면 상당히 좋은 B300 inference capability spectrum이 됩니다.

특히 다음과 같이 보는 게 좋습니다.

                     B300 8-GPU
                         │
          ┌──────────────┼───────────────┐
          │              │               │
       Dense           MoE           Reasoning
          │              │               │
   8B → 32B → 70B   120B → 671B    Qwen / R1 / gpt-oss

그리고 중요한 것은 모델별 "순위"가 아닙니다.

예를 들어

Qwen3-32B가 Llama 70B보다 tokens/sec가 빠르다

는 사실 자체는 당연할 수 있습니다. 모델 크기가 다르기 때문입니다.

오히려 B300 benchmark에서는:

  • TTFT
  • inter-token latency
  • output tokens/sec
  • aggregate tokens/sec
  • request/sec
  • P50/P95/P99
  • GPU utilization
  • HBM utilization
  • power
  • scaling efficiency
  • concurrency saturation point

를 모델별로 동일한 workload 조건에서 기록하는 것이 중요합니다.


여기서 실제 디스크 다운로드 용량 ≠ GPU HBM 요구량 ≠ inference 중 KV cache 용량입니다. 특히 B300에서 long-context 테스트를 하려면 KV cache가 상당히 중요합니다.

따라서 지금 단계에서는 Qwen3-32B를 추가하고 5개 모델로 확정하는 것을 추천합니다.
그리고 다음 단계에서는 이 5개를 대상으로 B300 8-GPU에서 TP=1/2/4/8 × BF16/FP8/FP4 × context length × concurrency를 어떻게 구성할지 benchmark matrix를 만드는 것이 좋습니다.

==

현재 MLPerf Inference의 datacenter 모델 목록에도 Llama 3.1 8B, DeepSeek-R1, GPT-OSS-120B가 포함되어 있습니다. 특히 2026년 8월 발표된 MLPerf의 E2E RAG benchmark도 GPT-OSS-120B + GPT-OSS-20B + Llama 3.1 8B 조합을 사용합니다. (MLCommons)

제가 3a에서 잡을 모델

모델일반 추론 성능역할추천
Llama 3.1 8B Instruct매우 높음Small model / high concurrency★★★★★
Llama 3.1 70B Instruct핵심Large dense model★★★★★
DeepSeek-R1핵심Reasoning★★★★★
GPT-OSS-120B핵심최신 MoE / reasoning★★★★★

즉 4개 모두 하는 게 좋습니다.


다만 "국룰"에 가까운 benchmark와는 조금 구분해야 합니다

여기서 중요한 게 있습니다.

1. Llama 3.1 8B

이건 사실상 표준 baseline 중 하나라고 봐도 됩니다.

MLPerf Inference에서도 Llama 3.1-8B를 datacenter Offline / Server 시나리오로 명시하고 있고, vLLM reference implementation도 제공합니다. (MLCommons)

따라서 B300의 기본 성능 검증에서는 반드시 넣는 게 좋습니다.


2. Llama 3.1 70B

이건 대형 dense model 성능의 대표값으로 좋습니다.

8B만 돌리면 B300의 엄청난 compute capability를 충분히 활용하지 못할 수 있기 때문에,

8B  → high throughput
70B → large-model inference

두 개를 같이 놓는 게 좋습니다.

특히 사용자 환경에서 실제 서비스 후보가 70B급이라면 70B를 메인 KPI 모델로 삼는 것이 좋습니다.


3. DeepSeek-R1

이건 일반 LLM throughput benchmark와 성격이 다릅니다.

R1에서는 단순히

input tokens/sec
output tokens/sec

만 보는 것보다

TTFT
ITL / TPOT
output tokens/sec
reasoning tokens
E2E latency

를 같이 봐야 합니다.

MLPerf의 현재 inference suite에도 DeepSeek-R1이 datacenter 모델로 들어가 있고, AIME, MATH500, GPQA, MMLU-Pro, LiveCodeBench 등의 reasoning/accuracy workload를 사용합니다. (MLCommons)

그래서 B300의 "Reasoning inference" 대표 모델로 넣는 게 좋습니다.


4. GPT-OSS-120B

이건 저는 반드시 넣겠습니다.

특히 지금 시점의 benchmark라는 점에서 상당히 의미가 있습니다.

MLPerf의 최신 모델 목록에도 GPT-OSS-120B가 datacenter inference benchmark 모델로 포함되어 있습니다. (MLCommons)

더 재미있는 점은 최신 MLPerf E2E RAG benchmark가 실제로:

GPT-OSS-120B
       ↓
reasoning / query rewrite / final answer

GPT-OSS-20B
       ↓
document grading

Llama 3.1 8B
       ↓
judge

구성을 사용한다는 점입니다. (MLCommons)

따라서 3a가 앞으로 RAG/Agent 플랫폼으로 확장될 것을 고려하면 GPT-OSS-120B는 상당히 좋은 선택입니다.


제가 3a 테스트를 이렇게 나누겠습니다

Tier 1 — Standard inference

Llama 3.1 8B

목적:

B300의 raw/high-throughput inference capability

Input: 128 / 512 / 2K
Output: 128 / 512

Concurrency:
1
2
4
8
16
32
64
128
256

주요 결과:

Requests/sec
Output tokens/sec
TTFT
TPOT
P50/P95/P99
GPU utilization

Tier 2 — Large model

Llama 3.1 70B

이걸 3a의 메인 benchmark로 두겠습니다.

Input:
128
512
2K
8K
32K
64K

Output:
128
512
1K

그리고:

Concurrency:
1
2
4
8
16
32

여기서 B300 8GPU의 Tensor Parallel 성능을 보는 겁니다.


Tier 3 — Reasoning

DeepSeek-R1

여기서는:

Input
Output
Reasoning tokens
TTFT
TPOT
E2E latency

를 모두 기록합니다.

그리고 reasoning workload와 일반 chat workload를 분리해야 합니다.


Tier 4 — MoE / Agentic

GPT-OSS-120B

이것은:

standard generation
+
reasoning
+
long context

세 가지로 나누는 게 좋습니다.

특히 MoE이기 때문에 Llama 70B와 단순 parameter count로 성능을 비교하면 안 됩니다.

즉 결과표에서:

120B가 70B보다 빠르다/느리다

식으로 단순 비교하기보다는 모델별 workload에서 B300이 어떤 throughput/latency를 내는지를 기록하는 게 맞습니다.


그리고 "일반 추론 성능"이라면 가장 중요한 게 하나 더 있습니다

Input/Output token 조합을 고정해야 합니다.

예를 들어:

Case A
Input  = 512
Output = 128

Case B
Input  = 2K
Output = 512

Case C
Input  = 8K
Output = 512

Case D
Input  = 32K
Output = 512

Case E
Input  = 64K
Output = 512

이렇게 해야 모델 간 비교가 의미가 있습니다.

특히 B300에서는 prefill-heavy와 decode-heavy를 분리해서 보는 것이 중요합니다.


저는 최종적으로 3가지 benchmark suite로 만들겠습니다

Suite 1 — Standard

Llama 3.1 8B
Llama 3.1 70B
512 → 128
2K  → 512
8K  → 512

Suite 2 — Long Context

Llama 3.1 70B
GPT-OSS-120B
DeepSeek-R1
8K
16K
32K
64K
128K

가능한 context까지.


Suite 3 — High Concurrency

Llama 3.1 8B
Llama 3.1 70B
GPT-OSS-120B
C = 1
2
4
8
16
32
64
128

그리고 여기서 throughput saturation point를 찾습니다.


MemKV는 그 다음에 붙이면 됩니다

이게 가장 깔끔합니다.

                 B300 Baseline
                       │
       ┌───────────────┼───────────────┐
       │               │               │
     8B              70B             R1
       │               │               │
       └───────────────┼───────────────┘
                       │
                 GPT-OSS-120B
                       │
                       ▼
              ┌────────────────┐
              │  MemKV test    │
              │                │
              │ 70B / R1 /     │
              │ GPT-OSS-120B   │
              └────────────────┘

즉 일반 추론 benchmark가 본체이고 MemKV는 별도의 optimization benchmark가 됩니다.

이렇게 하면 나중에 보고서에서:

B300 8-GPU inference baseline

과

B300 + external MemKV optimization

을 완전히 분리해서 설명할 수 있습니다.


제 추천을 한 줄로 정리하면

지금 제시하신 Llama 3.1 8B + Llama 3.1 70B + DeepSeek-R1 + GPT-OSS-120B 4종을 그대로 사용하는 것이 좋습니다.

특히 현재 MLPerf Inference의 datacenter 모델 구성과도 상당히 잘 맞습니다. (MLCommons)

다만 "4개 모델 × 모든 조건"을 무작정 돌리지 말고, 8B는 high-throughput, 70B는 large dense, R1은 reasoning, GPT-OSS-120B는 MoE/agentic이라는 역할을 명확히 나눠서 benchmark matrix를 만드는 것이 중요합니다.

그리고 B300 8-GPU 한 대의 실제 성능 검증이 목적이라면, 저는 여기서 한 단계 더 나아가서 NVIDIA/MLPerf에서 사용하는 benchmark 방식에 최대한 맞춘 3a B300 표준 추론 성능 테스트 항목을 만들어보는 것을 추천합니다. 그러면 나중에 NVIDIA 공개 수치나 MLPerf 결과와도 어느 정도 비교 가능한 형태로 만들 수 있습니다.

profile
engineer

0개의 댓글