GPU
上級

TMA (Tensor Memory Accelerator・Hopper)(ティーエムエー)

NVIDIA Hopper (H100・2022) で導入のメモリ転送専用アクセラレータ。GPU SM ↔ Shared Memory 間の大規模Tensor 転送を非同期・低消費電力で実行。

0 回閲覧
0 いいね
2026/5/15 更新
関連タグ
GPU
NVIDIA
Hopper
AI

概要

TMA (Tensor Memory Accelerator) はNVIDIA Hopper アーキテクチャ (H100・GTC2022 March・2022年3月発表) で導入されたメモリ転送専用ハードウェアアクセラレータ。従来Warp (32 threads) 単位で実行していたShared Memory ↔ Global Memory 転送を、TMA が SM (Streaming Multiprocessor) 全体で1命令発火・SM 計算リソース解放しながら非同期実行する設計。AI 学習 / 推論のメモリ帯域ボトルネックを大幅軽減する。

TMA の役割

従来 (Ampere まで)TMA (Hopper以降)
Warp 32 threads 同期コピーTMA 1命令発火
SM ALU 占有SM 解放可 (非同期)
1サイクル 128 bytes数MB 1命令
プログラム複雑API 単純化

TMA 機能

  • Global Memory → Shared Memory 非同期コピー
  • Shared Memory → Global Memory 非同期コピー
  • Tensor Stride (多次元) 対応
  • 最大次元: 5D テンソル
  • データタイプ: 1-128 bytes/element
  • 容量: 数MB / 命令まで
  • メモリポリシ: Cache hint 指定可

CUDA API (Hopper)

// cuda::barrier 同期
__shared__ alignas(16) char buffer[128 * 1024];
__shared__ cuda::barrier<cuda::thread_scope_block> bar;

if (threadIdx.x == 0) {
    init(&bar, blockDim.x);
}
__syncthreads();

cuda::memcpy_async(global_ptr, shared_buffer, bar);
bar.arrive_and_wait();

cuda::memcpy_async API がTMA を内部使用、開発者は同期barrier のみ気にすれば良い。

AI 学習 / 推論への効果

ワークロードAmpereHopper (TMA有)改善
GPT-3 175B 学習1.0×2.0×2倍
Llama 70B 推論1.0×1.8×1.8倍
BERT-Large1.0×1.5×1.5倍

TMA + Tensor Core Gen4 + Transformer Engine の組み合わせでAmpere比2倍超の学習速度。

TMA 2.0 (Blackwell・2024)

NVIDIA Blackwell (RTX 50 / B100 / B200・2024年) ではTMA 2.0 として強化:

  • Multi-Cast 機能: 1 メモリ転送を複数SM へ並列送信
  • Cluster-wide TMA: GPC (Graphics Processing Cluster) 単位の協調
  • Tensor Core Gen5 と統合・FP4 / FP8 直接フィード
  • 帯域効率 30-50% 改善

主要対応GPU

GPUTMA
H100 (SXM5 / PCIe)TMA 1.0
H200TMA 1.0 (HBM3E)
B100 / B200TMA 2.0
RTX 50 (Blackwell コンシューマ)TMA 2.0 (限定機能)
GH200 (Grace Hopper)TMA 1.0
GB200 NVL72TMA 2.0

関連用語との違い

  • vs DMA Engine: TMA はGPU内SM配下 / DMA はGPU↔CPU
  • vs Copy Engine: Copy Engine はホスト↔GPU・TMA はGPU内
  • vs cuMemcpyAsync: cuMemcpyAsync は CPU↔GPU・TMA は GPU内

FAQ

Q1: 開発者は意識する? A: 直接TMA 命令使用は通常不要。CUDA 12+ の cuda::memcpy_async / cuTensorMapEncodeTiled 等が内部利用、cuBLAS / cuDNN も透過的TMA 活用。

Q2: TMA がない世代でも動く? A: Volta / Ampere は対応API でフォールバック (Warp 単位コピー) 実行。性能はTMA なしの方が遅いがコード互換性維持。

Q3: AI 以外の用途? A: 科学技術計算 (CFD / FEM / FFT) でも大規模Tensor の頻繁な転送が発生・恩恵あり。一般CUDA カーネル開発でも次第に重要視。

この記事について
カテゴリーGPU
難易度上級
作成日2026/5/15