出典 しゅってん : フリー百科 ひゃっか 事典 じてん 『ウィキペディア(Wikipedia)』
この記事 きじ はカテゴライズ されていないか、不十分 ふじゅうぶん です。 適切 てきせつ なカテゴリを追加 ついか して、記事 きじ 内容 ないよう を向上 こうじょう させてください。(2023年 ねん 5月 がつ )
この記事 きじ は更新 こうしん が必要 ひつよう とされています。 この
記事 きじ には
古 ふる い
情報 じょうほう が
掲載 けいさい されています。
編集 へんしゅう の
際 さい に
新 あたら しい
情報 じょうほう を
記事 きじ に
反映 はんえい させてください。
反映 はんえい 後 ご 、このタグは
除去 じょきょ してください。
(2023年 ねん 12月 )
Tensorコア (英 えい : Tensor Cores )はNVIDIA が開発 かいはつ する混合 こんごう 精度 せいど 行列 ぎょうれつ 積 せき 和 わ アクセラレータ である[1] 。2017年 ねん 、データセンター 用 よう GPU 「Tesla V100」(Volta世代 せだい )に初 はじ めて搭載 とうさい された。Geforce とQuadro にはRTXシリーズ(Turing世代 せだい )で初 はじ めて搭載 とうさい された。
高 たか い並列 へいれつ 計算 けいさん 能力 のうりょく をもったグラフィックス専用 せんよう の処理 しょり ユニットであるGPU は、その並列 へいれつ 計算 けいさん 特性 とくせい が着目 ちゃくもく され現在 げんざい ではHPC など様々 さまざま な分野 ぶんや で並列 へいれつ 計算 けいさん 機 き として利用 りよう されている(GPGPU )。用途 ようと が広 ひろ がるにつれ、深層 しんそう 学習 がくしゅう をはじめとする一部 いちぶ の計算 けいさん では高 たか い数値 すうち 計算 けいさん 精度 せいど よりも高 たか い演算 えんざん 速度 そくど が求 もと められることがわかってきた。NVIDIA GeForce シリーズをはじめとした様々 さまざま なGPU を手掛 てが けるNVIDIA がこれに応 こた えるために開発 かいはつ した、行列 ぎょうれつ 積 せき 和 わ アクセラレータがTensorコア である[1] [2] 。
Tensorコアは行列 ぎょうれつ の混合 こんごう 精度 せいど 融合 ゆうごう 積 せき 和 わ 演算 えんざん (FMA)に特 とく 化 か した機能 きのう を有 ゆう する。すなわち1命令 めいれい で低 てい 精度 せいど 行列 ぎょうれつ 積 せき + 高 こう 精度 せいど アキュムレータ加算 かさん を実行 じっこう する。例 たと えばFP32の行列 ぎょうれつ
A
,
B
,
C
{\displaystyle A,B,C}
を積 せき 和 わ 演算 えんざん する際 さい 、行列 ぎょうれつ 積 せき
B
C
{\displaystyle BC}
をFP16でおこないこれをFP32の
A
{\displaystyle A}
へとアキュムレートする。
専用 せんよう 回路 かいろ (Tensorコア)でこれを実行 じっこう するため、1命令 めいれい で大量 たいりょう の演算 えんざん を処理 しょり できる。行列 ぎょうれつ 積 せき は低 てい 精度 せいど であるため計算 けいさん 負荷 ふか が小 ちい さく、和 わ は高 こう 精度 せいど かつFMAであるため追加 ついか の誤差 ごさ を生 しょう じさせない。例 たと えば NVIDIA A100 GPU では単純 たんじゅん なFP32が 19.5 TLOPSであるのに対 たい し、FP16の低 てい 精度 せいど 積 せき でTensorCoreを使 つか った場合 ばあい は 312 TFLOPS すなわち16倍 ばい の演算 えんざん を実行 じっこう できる。このようにTensorコアは混合 こんごう 精度 せいど 行列 ぎょうれつ FMAのアクセラレータとして機能 きのう する。
Tensorコアには世代 せだい があり、世代 せだい ごとに速度 そくど およびサポートする精度 せいど が異 こと なる。
表 ひょう . Tensorコア世代 せだい とサポート精度 せいど
世代 せだい (対応 たいおう arch)
multiply 精度 せいど
accum 精度 せいど
FP64
TF32
FP16
BF16
FP8
INT8
INT4
INT1
FP64
FP32
FP16
INT32
1 (Volta) [3]
-
-
✔
-
-
-
-
-
-
✔
✔
-
2 (Turing) [4]
-
-
✔
-
-
✔
✔
✔
-
✔
✔
3 (Ampere) [5]
✔
✔
✔
✔
-
✔
✔
✔
✔
✔
✔
✔
4 (Hopper) [6] [7]
✔
✔
✔
✔
✔
✔
-
-
✔
✔
✔
✔
TensorFloat-32 [ 編集 へんしゅう ]
TensorFloat-32 (TF32 )はTensorコアにおける混合 こんごう 精度 せいど FMAモードの1つである[8] [9] 。
Tensorコアは低 てい 精度 せいど 行列 ぎょうれつ 積 せき を高速 こうそく 実行 じっこう するアクセラレータであり、FP32 FMAをそのまま高速 こうそく 計算 けいさん はできない。TF32モードではFP32入力 にゅうりょく を内部 ないぶ 的 てき に19bitへキャスト、その行列 ぎょうれつ 積 せき をTensorコアで高速 こうそく 計算 けいさん し、最終 さいしゅう 的 てき にFP32のアキュムレータへ加算 かさん する。すなわち、TensorFloat-32はFP32 FMAの内部 ないぶ 低 てい 精度 せいど 高速 こうそく FMAモードである[10] 。
低 てい 精度 せいど 行列 ぎょうれつ 積 せき はある程度 ていど の計算 けいさん 誤差 ごさ が不可避 ふかひ である。従来 じゅうらい 用 もち いられていた16bit演算 えんざん (FP16・BF16)は混合 こんごう 精度 せいど 計算 けいさん によりその悪影響 あくえいきょう を最低限 さいていげん に抑 おさ えており、またフレームワークの自動 じどう 混同 こんどう 精度 せいど (AMP)機能 きのう により最低限 さいていげん のコード変更 へんこう で実行 じっこう を可能 かのう にしていた。しかし計算 けいさん 誤差 ごさ が推論 すいろん 精度 せいど へ大 おお きく影響 えいきょう するケースが一部 いちぶ にはあり、また最低限 さいていげん であれコードの変更 へんこう が必須 ひっす であった。
TF32は 1bit の符号 ふごう 、8bit の指数 しすう (= BF16の指数 しすう )、10bit の仮数 かすう (=FP16の仮数 かすう )からなる19bitの表現 ひょうげん を利用 りよう しており、16bitに比 くら べて精度 せいど 低下 ていか を更 さら に軽減 けいげん している。またTensorコア内部 ないぶ でキャストしFP32にアキュムレートしているため外部 がいぶ 的 てき にはFP32 FMAをそのまま実行 じっこう しているように見 み え、コードの変更 へんこう が一切 いっさい 必要 ひつよう ない。ゆえにTF32は最低限 さいていげん の精度 せいど 低下 ていか かつコード変更 へんこう なしで数 すう 倍 ばい の演算 えんざん 効率 こうりつ を得 え られるモードになっている。あくまでコア内部 ないぶ 精度 せいど の変更 へんこう であるため、データ量 りょう (例 れい : 使用 しよう GPUメモリ量 りょう )の減少 げんしょう 等 とう はできない。またTensorコアが19bit表現 ひょうげん を高速 こうそく 処理 しょり できるからこそ高速 こうそく 化 か されるのであり、TF32はあくまでTensorコアがもつ特 とく 化 か 機能 きのう /モードの一種 いっしゅ である[9] 。
^ a b "Tensor Cores enable mixed-precision computing, dynamically adapting calculations to accelerate throughput while preserving accuracy." NVIDIA. NVIDIA Tensor Cores . 2023-05-16閲覧 えつらん .
^ "Tensor Cores are specialized high-performance compute cores for matrix math operations that provide groundbreaking performance for AI and HPC applications. " NVIDIA. NVIDIA A100 Tensor Core GPU Architecture . 2023-05-16閲覧 えつらん .
^ "FP16 precision introduced on the Volta Tensor Core ... Volta GPU ... Results are accumulated into FP32 for mixed precision training or FP16 for inference." NVIDIA. NVIDIA A100 Tensor Core GPU Architecture . 2023-05-16閲覧 えつらん .
^ "the INT8, INT4 and binary 1-bit precisions added in the Turing Tensor Core" NVIDIA. NVIDIA A100 Tensor Core GPU Architecture . 2023-05-16閲覧 えつらん .
^ "In addition to FP16 precision ... INT8, INT4 and binary 1-bit precisions ... the A100 Tensor Core adds support for TF32, BF16 and FP64 formats" NVIDIA. NVIDIA A100 Tensor Core GPU Architecture . 2023-05-16閲覧 えつらん .
^ "NVIDIA H100 GPU ... New fourth-generation Tensor Cores" NVIDIA. NVIDIA H100 Tensor Core GPU Architecture . 2023-05-16閲覧 えつらん .
^ "FP8, FP16, BF16, TF32, FP64, and INT8 MMA data types are supported." NVIDIA. NVIDIA H100 Tensor Core GPU Architecture . 2023-05-16閲覧 えつらん .
^ "TF32 is a new compute mode added to Tensor Cores in the Ampere generation of GPU architecture." NVIDIA Developer. Accelerating AI Training with NVIDIA TF32 Tensor Cores . 2023-06-18閲覧 えつらん .
^ a b "TF32 is only exposed as a Tensor Core operation mode, not a type." NVIDIA Developer. Accelerating AI Training with NVIDIA TF32 Tensor Cores . 2023-06-18閲覧 えつらん .
^ "All storage in memory and other operations remain completely in FP32, only convolutions and matrix-multiplications convert their inputs to TF32 right before multiplication." NVIDIA Developer. Accelerating AI Training with NVIDIA TF32 Tensor Cores . 2023-06-18閲覧 えつらん .