日本ソフトウェア科学会第 36 回大会 (2019 年度) 講演論文集

TensorFlow で大規模ニューラルネットワークを学習する手法の考察今井 晴基

レドゥック トゥン

根岸 康

河内谷 清久二

ニューラルネットワークモデルの大規模化に伴い，学習時の GPU メモリーサイズの制約は大きくなってきている．
それを回避する手法として，中間データを CPU に一旦退避し必要に応じて GPU に書き戻すことで GPU メモリーの効率的な利用を実現するデータ・スワッピング手法がある．しかし，この手法は CPU-GPU 間の通信による学習時間の増加をもたらす場合がある．もう一つの手法として中間データを一旦削除し，必要な時に再計算する再計算手法がある．この手法は追加の計算を必要とするが，CPU-GPU 間の通信は発生させない．本稿ではデータ・スワッ
ピング手法に再計算手法を導入し CPU-GPU 間の通信を削減することで大規模深層学習の高速化を実現した．本手法を ResNet50 と DeepLabV3+に適用し，データ・スワッピング手法に対して，それぞれ最大 37.5% 18.7%の性能向上を実現した．

は，演算能力と比較して向上していない．GPU のメ

1 はじめにモリーは High Bandwidth Memory(HBM) など高速

深層学習は画像認識，音声認識など様々な分野におであるが高価なメモリーが搭載されていることなど

いて既存手法を圧倒する精度を達成し続けている．そから，今後もその飛躍的な増加は困難と考えられていのさらなる精度向上には，より深く大規模なニューラる．そのため，今後の大規模 NN モデルの実行にはルネットワーク (NN) モデルが必要不可欠となってきGPU メモリー容量の制約がより大きな課題となる．

ており，大規模画像認識の競技会の ImageNet Large

その制約回避のために，メモリー圧縮手法などもScale Visual Recognition Challenge (ILSVRC) [15]開発されている [16] が，メモリー圧縮手法だけではにおいても，大規模な NN モデルを利用したチーム

さらなる大規模化に対処することには限界がある．

が優勝してきた．また，実応用においても医療画像処

R
R
NVIDIA⃝社の CUDA⃝
ライブラリが提供する機能

理における 3 次元画像や高解像度の衛星画像の利用

Unified Memory を利用すれば，アプリケーションがなどにより，今後も NN モデルの大規模化は継続す

GPU の実メモリー以上のメモリーを利用可能になる．

るものと考えられる．

Unified Memory によりプログラムをほぼ変更するこNN モデルの大規模化に伴う演算量の増加などかとなく大規模な NN モデルの実行が可能になるはずら，深層学習は GPU を用いて実行されることがほとであるが，GPU メモリーサイズを超えるデータを用んどである．GPU の演算能力は，新しいデバイスがいる場合に実用的な性能を実現するのは容易ではな

出るたびに飛躍的に向上しているが，メモリー容量いことが報告されている [19] [20]．大規模な NN モデ
ルを分割するモデル並列のアプローチも開発されて∗ Consideration of training large-scale neural networkmodels in TensorFlow.
This is an unrefereed paper. Copyrights belong to
the Authors.
Haruki Imai, Tung Le Duc, Yasushi Negishi, Kiyokuni
Kawachiya , 日本アイ・ビー・エム株式会社 東京基礎研究所, IBM Research - Tokyo.

きているが [5] [8]，一般的に NN モデルは密に結合している部分も多いため，分散化した時の通信オーバー
ヘッドはより大きくなる可能性があることなどから広く利用されている段階にはない．
より大幅なメモリー削減を実用的な性能で実現する手法として，「データ・スワッピング手法」がある．

算手法のための編集後の計算グラフ，ハイブリッド手

データ・スワッピング手法は学習過程において生成さ法の計算グラフを示す．計算グラフは説明のため簡れる中間データ (特徴マップ) を一時的に CPU メモ

略化したものを用いている．各図の実線はデータフリーに退避し，利用するときに GPU へ書き戻すこロー (data dependency)，破線は制御フロー (controlとにより GPU メモリーの効率的な利用を実現する．

dependency) を示す．また，各手法の左側に順伝播

演算能力は GPU の方が圧倒的であるため，深層学習(FW)，右側は逆伝播 (BW) を示している．以下の節では CPU はあまり利用されておらず，CPU のメモ

では，これを用いて各手法における計算グラフ編集にリーも十分に活用されていないことが多い．このアプついて記述する．

ローチの課題は CPU-GPU 間の通信がボトルネックになってしまう可能性があることである．

2. 1 データ・スワッピング手法

一方，CPU-GPU 間の通信を必要としない手法と通常の誤差逆伝播手法においては順伝播で演算さして，「再計算手法」が存在する．この手法はデータ・れる中間データである特徴マップは，逆伝播におけ

スワッピング手法で CPU メモリーに退避する特徴る勾配の演算で用いられるため，その演算が完了す

マップを保存せずに一度削除してしまい，必要な時にるまで GPU メモリー上に保持される．特に畳み込み再度計算する手法である．この手法の課題は追加の演

ニューラルネットワークの場合，最初の層の特徴マッ

算による性能低下と演算時の GPU メモリー使用量のプが大きい傾向があり，それらは逆伝播の後半まで増加である．

保持されるため，多くの GPU メモリーを消費する．

我々はデータ・スワッピング手法を TensorFlow で実

データ・スワッピング手法においては，その特徴マッ現するソフトウェア「TensorFlow Large Model Sup-

プを各層の計算後一時的に CPU メモリーに退避し，

port (TFLMS)」を開発した [6] [10] [12]．このソフト

GPU で再度利用される際に GPU メモリーに書き戻

ウェアは，TensorFlow の計算グラフを編集することすことで演算を行う．演算の際には必要な特徴マップ

でデータ・スワッピング手法を実現する．TFLMS に

のみ GPU に保持されるため，特に深い NN モデルのは転送するメモリー量やタイミングを調整する性能

場合大幅な GPU メモリーの削減を実現可能である．

最適化パラメータがあり，その自動チューニング機能

CPU メモリーを大量に消費することになるが，GPUを用いることで通信オーバーヘッドを削減することがメモリーと比較すると安価であり容量も大きいためできる．

通常問題とならない．

今回，我々は TFLMS を拡張し再計算手法を実現

計算グラフの編集においては，(1) 退避する特徴

するグラフ編集を導入することで，データ・スワッピ

マップに対応するエッジを特定し，(2) そのエッジにング手法と再計算手法をハイブリッドに利用する手法

退避 (スワップアウト) 用と書き戻し (スワップイン)を実現した．本稿ではそれによる性能向上を報告す

用のノードとして CPU で動作するノードを挿入する．以下，第 2 節では，計算グラフ編集による大規

る．(3) スワップインの開始のトリガーとなる制御フ

模 NN モデルの学習手法を記述し，第 3 節では，そローを挿入する．演算は GPU で実行されるため，スの TensorFlow における実装，第 4 節では実験と性能

ワップアウトとスワップイン用のノードが実行され評価を行い，第 5 章で関連研究について記述し，第 6る際に CPU-GPU 間の通信が発生する．スワップア

節でまとめとする．

ウトは直前のノードの演算の完了後直ちに実施され，GPU に存在する特徴マップは GPU で不要となった

2 計算グラフ編集による大規模ニューラル
ネットワークモデルの学習手法

時点で GPU メモリーからは解放される．スワップイ
ンは制御フローの依存関係にあるノードの実行後に実

図 1 に通常の誤差逆伝播法の計算グラフ，データ・行される．その制御フローをより早く実行されるノースワッピング手法のための編集後の計算グラフ，再計

ドに挿入することよって通信と演算をオーバーラップ

FW

BW

FW

FW

BW

BW

FW

BW

複製された
サブグラフ

CPUで実行

Operation
Swap out
Swap inCheckpoint
Controldependency
Datadependency

通常の誤差逆伝播法

データ・スワッピング手法

図1

再計算手法

ハイブリッド手法

各手法のグラフ編集

させ，通信オーバーヘッドを削減することができる．

サブグラフを再計算対象とするかが最適化のポイン
トである．checkpoint としてそれを生成する計算量2. 2 再計算手法が多い特徴マップを選択し，その checkpoint の再計

ここでは本稿で用いる再計算手法である Chen らの算を行わないことでオーバーヘッドを削減できる．そ手法 [3] について述べる．再計算手法においては，順のため，畳み込み処理により生成された特徴マップを伝播で演算された特徴マップは順伝播のノードでの利

checkpoint とする手法がある [17]．本稿でもこの手法用が終了した段階で解放される．全てのノードの特徴を利用する．

マップを解放しても順伝播の最初から再計算することによって再生成することはできるが，その場合，演算

2. 3 ハイブリッド手法

量の増加によるオーバーヘッドが大きくなる．そのた

データ・スワッピング手法は CPU-GPU 間の新ため，特徴マップを一部解放せずに保存し，逆伝播ではな通信による性能悪化を招く可能性があるが，追加のその保存した特徴マップから再計算を実施することで演算は必要としない．一方，再計算手法では追加の演演算の増加を削減する．その保存しておく特徴マップ

算が必要となるが，新たな通信は発生しない．そのたを checkpoint と呼ぶ．

め，データ・スワッピング手法において通信が性能悪計算グラフの編集においては，(1) 保存する check-

化を招いていた場合，再計算手法を導入することで通point を決定し，(2) その checkpoint を生成するノー信を削減し，性能向上を実現できる可能性がある．

ド間のノードが構成するサブグラフを複製し，複製前

計算グラフの編集においては，再計算させるサブのノードから逆伝播へのエッジを複製したサブブラフ

グラフの決定とスワップアウト・インを挿入するエッに付け替える．(3) 再計算開始のトリガーとして逆伝ジの決定を行い，それぞれにおいてグラフの編集を播において制御フローを挿入する．このようなグラ行う．

フ編集を行うことで，順伝播では checkpoint 以外の特徴マップは順伝播での利用完了時に解放され，逆伝3 TensorFlow における実装

播では，再計算開始のトリガーにより checkpoint か

3. 1 TensorFlow Large Model Support

ら必要な特徴マップが再計算されそれを利用し逆伝

我々は デ ー タ・ス ワッピ ン グ 手 法 を 実 現 す る ソ播の処理を継続する．どの checkpoint を残し，どの

フ ト ウェア の「TensorFlow Large Model Support

(TFLMS)] を開発した [6] [10] [12]．TensorFlow はユー

TFLMS に新たなパラメータ checkpoint list を作成

ザーが記述した NN モデルから計算グラフを作成し，し，これに再計算対象とする checkpoint の ID を指セッションにおいてその計算グラフの学習を行う．

定することでそこから構成されるサブグラフを再計算

セッション開始後は計算グラフは編集できないため，対象とする．checkpoint は，もう一つのパラメータ

TFLMS はセッション開始前に，2. 1 節に記述したグ

recomp checkpoint ops by types に checkpoint にす

ラフ編集を実施する．TFLMS には CPU にスワッるノードのタイプを指定する．本稿では Conv2D をプする特徴マップの量やスワップインするタイミン

checkpoint とした．ID はトポロジカルオーダー順にグを調整する性能最適化パラメータが導入されてい割り振られ，グラフを解析し ID と特徴マップ名を表る．スワップアウトする特徴マップの量は，性能最示するようにしている．ユーザーはその ID を確認し

適化パラメータの swapout threshold によって調整可

指定するようにしている．ユーザーは通信プロファイ能である．TFLMS は各ノードのトポロジカルオー

ルの調査や何度か試行することでより良い性能を示

ダーを用いてノード間の距離を計算し，その距離がす ID を選択する必要がある．これらも自動設定が望swapout threshold 以上のエッジにスワップアウト，

ましいが，これは今後の課題である．

スワップインのノードを挿入する．その距離が長いと

図 2 にハイブリッド手法におけるグラフ編集の流れいうことは GPU メモリーに長い間その特徴マップがを示す．TensorFlow が生成した計算グラフは，ユー

保存されていることになるため，その特徴マップをス

ザーパラメータ checkpoint list で指定された check-

ワップアウトすることでより効率的に GPU メモリーpoint のサブグラフに対して再計算モジュールで再計を削減可能である．スワップインするタイミングは，算手法のためのグラフ編集を行う．そのグラフに対し

swapin ahead により調整可能である．swapin aheadて自動パラメータ調整モジュールがデータ・スワッピンに大きな値を設定することでより早いノードにおいてグ手法のパラメータを探索する．そのパラメータを元スワップインが実行される．また，swapin groupbyにデータ・スワッピングモジュールでデータ・スワッピ

は同じ特徴マップがスワップインされる場合にそれらング手法のためのグラフ編集を行う．checkpoint listを結合することでスワップインする特徴マップの量をが指定されない場合，再計算モジュールでの編集は行削減するためのパラメータである．これらを適切に設われず，データ・スワッピング手法のみ適用される．

定することで CPU-GPU 間の通信のオーバヘッドに

また，再計算手法のみで十分 GPU メモリー使用量がよる実行性能の低下を削減することができる．これら削減できることが自動最適化モジュールで判断されたを調整するために自動チューニング機能が導入されて場合，データ・スワッピングは不要と判断され，再計

おり，ユーザープログラムに数行の編集を施すのみで算手法のみが適用される．

グラフ編集は自動的に行われる．

4 実験と性能評価
3. 2 ハイブリッド手法の導入

4. 1 実験環境

グラフ編集による再計算手法の実装として OpenAI

R
Power SystemTM AC922
計測マシンには IBM⃝が文献 [3] を元に開発した gradient-checkpointing が（ 以 下 ，AC922）を 用 い た ．AC922 は ，CPU にある [1]．これは TensorFlow における勾配の演算ルー

POWER9 プ ロ セッサ ー (10 コ ア，4GHz) を 2 基

チン tf.gradients() を置き換えることで 2. 2 節のグラ

搭載し，CPU メモリー 512GB であり，2 ソケット

フ編集を実現している．この実装では，全てのサブグ

RR
Tesla⃝の NUMA 構 成 と なって い る ．NVIDIA⃝

ラフを再計算するようになっているため，ハイブリッ

V100(GPU メモリー 32GB) を 4 基搭載したモデルをド手法を行う際に必要な再計算させるサブグラフの選利用した．計測にはそのうちの GPU1 基のみを用い択を行うことはできない．そこで我々は TFLMS にた．CPU-GPU 間は NVLink2.0 で接続されており，独自に再計算手法を実現するグラフ編集を実装した．

4 基搭載モデルのため片方向 75GB/sec のバンド幅でユーザー入力パラメータ
Checkpoint ID（checkpoint_list）

ユーザーモデルの計算グラフ

ピクセル数である．各図には手法を適用しない場合のTensorFlow(Vanilla TF)，データ・スワッピング手
法 (Data swapping)，再計算手法 (Re-computation)，
ハイブリッド手法 (Hybrid) が含まれている．Keras

再計算
グラフ編集モジュール

TFLMS

ResNet50 においては Vanilla TF の最大イメージサ
イズは 3000 であった．Re-computation はデータ・自動チューニングモジュール

データ・スワッピング
グラフ編集モジュール

スワッピングは用いず全ての checkpoint を再計算している．この場合，最大画像サイズは 4500 まで増

グラフ編集パラメータ
swapout_threshold,swapin_ahead,swapin_groupby

加することを確認した．Data swapping では最大画像サイズは 7000 であった．再計算手法においてはcheckpoint の特徴マップは GPU メモリーに保存さハイブリッド手法の計算グラフ
è TensorFlow セッションで実行

図2

ハイブリッド手法におけるグラフ編集の流れれるが，データ・スワッピング手法では，全ての特徴
マップをスワップすることができるため，再計算手法
より大きな画像を学習可能である．Hybrid においても最大画像サイズは同じであったが，一般にハイブ接続されている．OS は Ubuntu 18.04.2 LTS, CUDA

リッド手法では再計算手法を適用した部分のメモリー

10.1, cuDNN-7.5.1，TensorFlow 1.14.0rc0 を利用しは増加するため，データ・スワッピングの方が最大画た．グラフ編集のため TFLMS version 2 [12] を用い、像サイズは大きくなる．データ・スワッピング手法のそれに再計算手法を適用するための修正を行っている．

パラメータを手動でチューニングを行うと，データ・スワッピングの方がより大きな画像を学習できる可能

4. 2 大規模ニューラルネットワークモデル

性があると考えている．

大 規 模 NN モ デ ル と し て Keras ResNet50

図 4 の DeepLabV3+においても傾向は同様であり，と DeepLabV3+ [2] を 利 用 し 評 価 を 行 う．Keras

Vanilla TF の最大画像サイズは 400 であった．Re-

ResNet50 は [12]，DeepLabV3+は [11] において公開

computation の最大画像サイズは 800，Data swap-

されている．通常，NN モデルを大規模化する際にping，Hybrid は 1300 であった．

バッチサイズを増加させることも多いが，大きなバッ
チサイズのモデルは複数の GPU を用いたデータ並

4. 4 ハイブリッド手法による性能向上

列学習でも実現可能であるため，現在の GPU メモ

次に実行性能について考察する．図 3 の Data swap-

リーサイズで学習不可能なモデルとは言えない．そping は，Vanilla TF の最大イメージサイズ 3000 以下のため，本稿ではバッチサイズを固定とし画像サイズ

では Vanilla TF と同じ性能を示している．この範囲を拡大させたモデルを用いることで性能評価を行う．

では TFLMS の自動チューニング機能によりデータ・

Keras ResNet50 はバッチサイズ 1，DeepLabV3+はスワッピングは不要と判断されて，Vanilla TF と同じ

バッチサイズ 16 を用いた．

実行となっているためである．Re-computation では
自動チューニング機能はなく，常に再計算によるオー

4. 3 学習可能な最大画像サイズ

バーヘッドは発生するため，Vanilla TF と比較して性図 3 に Keras ResNet50, 図 4 に DeepLabV3+の能は悪い．再計算による性能低下は Keras ResNet50

結果を示す．それぞれの図は横軸が画像サイズ，縦軸の画像サイズ 3000 において 15.8%であった．手動では実行性能として画像処理のスループットを示す．縦再計算する checkpoint を選択することでこの性能低軸の単位はメガピクセル/秒である．横軸は画像の 1

下は小さくなると考えられる．縦軸のスループット

辺のピクセス数であり，この値の 2 乗が画像 1 枚の総は画像サイズが大きくなるに従い GPU の演算効率の像サイズの増加に伴い swapout threshold の値を小さくすることでより多くの特徴マップをスワップするよ14

MEGA PIXELS/SEC

12

うなパラメータが選択されている．swapin ahead に

10

関しては，小さい画像サイズでは GPU メモリーに余8Data swapping6

裕があるため値を大きくし早めのスワップインが可能

Hybrid4であるが，画像サイズの増加に伴い，それが不可能に

Re-computation

2

Vanilla TF

なり小さな値を選択している．

0
500 1000 1500 2000 2500 3000 3500 4000 4500 5000 5500 6000 6500 7000
IMAGE SIZE

ハイブリッド手法 (Hybrid) においては，図 3 図 4 に示すように Data swapping と比べて Keras ResNet50

MEGA PIXELS / SEC

図3

Keras ResNet50 の性能

で 最 大 37.5%(画 像 サ イ ズ 6500), DeepLabV3+で3.5

18.7%(画像サイズ 1000) と性能向上している．再3計算のために選択した checkpoint は表 1 と表 2 に示

2.5

している．これは checkpoint の組み合わせをいくつ2か試行し良い性能を示した設定である．図 2 に示した

1.5

ように，再計算のための編集後のグラフに対して自動Data swapping
Hybrid1

チューニングが実施されているため，TFLMS のパラ

Re-computation
Vanilla TF

0.5

メータは Data swapping と異なる．Data swapping

0
100

200

300

400

500

600 700 800
IMAGE SIZE

900

1000 1100 1200 1300と比較して swapout threshold に変化はほぼ見られな
かったが，swapin ahead は大きくすることができて

図4

DeepLabV3+の性能いる．このパラメータを利用したグラフ編集において実際に挿入されたスワップアウトのノード数を図 5向上により上昇するが，それ以降はある一定値を示と図 6 に示す．Hybrid においてスワップアウトされす (Keras ResNet50 の場合は 12 メガピクセル/秒程る特徴マップ数は，Data swapping と比べ減少して度)．一定値を示している場合は，各手法のオーバーいることがわかる．これにより通信が削減され性能がヘッドはないことを示す．Data swapping では画像サ向上したと考えられる．今回は再計算手法のパラメー

イズ 4000 までは一定であり性能悪化を示さなかった．

タは手動で選択したため，より良い組み合わせがある

これは TFLMS が適切なパラメータを選択し通信を可能性がある．データ・スワッピング手法のパラメー

計算とオーバーラップさせることができたためと考タ同様の自動チューニング手法も開発中である．

えられる．Data swapping では画像サイズ 4500 以上については徐々に性能は悪化している．これはスワッ

5 関連研究プを必要とする特徴マップ数の増加により，完全にはデータ・スワッピング手法としては，様々な手法が計算とオーバラップをすることができなくなったた

提案されている [4] [10] [13] [14] [18]．その中で計算グラめと考えられる．図 4 の DeepLabV3+でも傾向は同フを用いているものは，本稿で用いた TFLMS [10] と様であり，画像サイズ 400 以下では Data swapping

Meng ら [13] による TensorFlow の計算グラフを編集と Vanilla TF は同じ性能を示している．画像サイズする手法である．また，再計算手法としては Chen ら

400 における再計算による性能低下は 16.7%であった．

の [3] や Kusumoto らの [9] がある．本稿では Chen

Data swapping は画像サイズ 500 までは性能悪化をらのグラフ編集を用いている．

示していない．表 1 表 2 に TFLMS の自動チューニ

ハイブリッド手法としては，Wang ら [17] や Ito ら

ングモジュールで選択されたパラメータを示す．デー[7] の報告がある．Wang らは畳み込み層をスワップ

タスワピング手法 (Data swapping) においては，画

アウトの対象とし，それ以外を再計算対象としてい表1

TFLMS の自動チューニングモジュールで選択されたパラメータと再計算手法のパラメータ (Keras ResNet50)

Data swapping

Image size

3500

4000

4500

5000

5500

6000

6500

7000

swapout threshold

743

639

593

529

501

463

429

399

swapin ahead

217

74

49

30

28

23

17

9

swapin groupby

802

802

802

802

802

802

802

802

swapout threshold

743

639

593

529

477

463

429

399

swapin ahead

217

74

68

34

25

30

25

9

swapin groupby

802

802

817

808

808

821

821

808

2,4,6

2

2

2,4,6,7

2,4,5,62

checkpoint list

Hybridcheckpoint list

表2

TFLMS の自動チューニングモジュールで選択されたパラメータと再計算手法のパラメータ (DeepLabV3+)

Data swapping

Image size

500

600

700

800

900

1000

1100

1200

1300

swapout threshold

1427

1236

650

456

217

174

161

121

111

swapin ahead

906

381

77

30

11

12

6

3

3

swapin groupby

1501

1501

1501

1501

0

22

1501

1501

22

swapout threshold

1427

1236

650

456

217

174

164

121

111

swapin ahead

906

575

77

30

30

31

6

3

33

swapin groupby

1501

1508

1501

1501

1508

1525

1539

1501

23

2,3,4

1,2,3,4,5,6

8,9,11.12,13,14,15,16,17,18

8,9

8,9,11,12,13,14,15,16,17,18

checkpoint list

Hybridcheckpoint list

1,2,3,4ている点が異なる．Ito らは事前の実行プロファイルに基づきデータ・スワッピング部分と再計算部分を決# Inserted swap-out nodes

140
Data swapping120

Hybrid100

定することで Wang らより良い性能を報告している．

80

これらの手法においては計算グラフを用いておらず，

60
40

本稿とは異なる．計算グラフを用いることで NN モ

20
0
3500

4000

4500

5000 5500 6000
IMAGE SIZE

6500

7000

デルの全体を考慮した最適化が可能になることで，今後より良い性能を実現できると考えている．

図5

Keras ResNet50 におけるグラフ編集によって挿# Inserted swap-out nodes

入されたスワップアウトノード数

本稿では，GPU メモリーサイズを超えるような大

450
400
350
300
250
200
150
100
50
0

Data swapping

Hybrid

規模な NN モデルを実行する手法であるデータ・ス
ワッピング手法に，再計算手法を導入することでデー
タ・スワッピング手法の課題である CPU-GPU 間の通信を削減する手法を提案した．TensorFlow の計算

500

図6

6 まとめと今後の課題

600

700

800 900 1000 1100 1200 1300
IMAGE SIZE

DeepLabV3+におけるグラフ編集によって挿入されたスワップアウトノード数グラフを編集しデータ・スワッピング手法を実現する

TFLMS に再計算手法のグラフ編集機能を導入することで，2 つのハイブリッド手法を実現した．本手法をResNet50 と DeepLabV3+に適用することで，デーる点では我々の手法と同等である．スワップインのタ

タ・スワッピング手法に対して，それぞれ最大 37.5%

イミングを直前の畳み込み層にするなどスワップア

18.7%の性能向上を実現した．データ・スワッピング

ウト・インのパラメータは固定にしているが，我々はのグラフ編集の性能最適化パラメータは自動チューニ

TFLMS の自動チューニングを用いてより柔軟に決めングが実施されるが，再計算手法のパラメータは手動

でのチューニングが必要である．その自動チューニン
グが今後の課題である．

参 考 文 献[ 1 ] Bulatov, Y.: Fitting larger networks into memory, https://medium.com/tensorflow/fitting-largernetworks-into-memory-583e3c758ﬀ9.
Accessed:
2019-08-03.
[ 2 ] Chen, L.-C., Zhu, Y., Papandreou, G., Schroﬀ,
F., and Adam, H.: Encoder-Decoder with Atrous
Separable Convolution for Semantic Image Segmentation, ECCV, 2018.
[ 3 ] Chen, T., Xu, B., Zhang, C., and Guestrin,
C.: Training deep nets with sublinear memory cost,arXiv preprint arXiv:1604.06174, (2016).
[ 4 ] Cho, M., Le, T., Finkler, U., Imai, H.,
Negishi, Y., Sekiyama, T., Vinod, S., Zolotov, V.,
Kawachiya, K., Kung, D. S., et al.: Large model
support for deep learning in caﬀe and chainer,
SysML, (2018).
[ 5 ] Dean, J., Corrado, G., Monga, R., Chen, K.,
Devin, M., Mao, M., Senior, A., Tucker, P., Yang,
K., Le, Q. V., et al.: Large scale distributed deep
networks, Advances in neural information processing systems, 2012, pp. 1223–1231.
[ 6 ] Imai, H., Matzek, S., Le, T. D., Negishi, Y.,
and Kawachiya, K.: Fast and Accurate 3D Medical
Image Segmentation with Data-swapping Method,
arXiv preprint arXiv:1812.07816, (2018).
[ 7 ] Ito, Y., Imai, H., Duc, T. L., Negishi, Y.,
Kawachiya, K., Matsumiya, R., and Endo, T.: Profiling based out-of-core hybrid method for large neural networks: poster, Proceedings of the 24th Symposium on Principles and Practice of Parallel Programming, ACM, 2019, pp. 399–400.
[ 8 ] Krizhevsky, A.: One weird trick for parallelizing convolutional neural networks, arXiv preprint
arXiv:1404.5997, (2014).
[ 9 ] Kusumoto, M., Inoue, T., Watanabe, G., Akiba, T., and Koyama, M.: A Graph Theoretic Framework of Recomputation Algorithms for
Memory-Eﬃcient Backpropagation, arXiv preprint
arXiv:1905.11722, (2019).
[10] Le, T. D., Imai, H., Negishi, Y., and Kawachiya,
K.: Automatic GPU memory management for large
neural models in TensorFlow, Proceedings of the2019 ACM SIGPLAN International Symposium on

Memory Management, ACM, 2019, pp. 1–13.
[11] Liang-Chieh Chen, YuKun Zhu, G. P. H. H.
M. D. C. T. L.: DeepLab: Deep Labelling for Semantic Image Segmentation, https://github.com/
tensorflow/models/tree/master/research/deeplab. Accessed: 2019-08-03.
[12] Matzek, S.: TensorFlow Large Model Support
Resources, https://developer.ibm.com/linuxonpower2019/06/11/tensorflow-large-model-support-resources/. Accessed: 2019-08-03.
[13] Meng, C., Sun, M., Yang, J., Qiu, M., and Gu,
Y.: Training deeper models by GPU memory optimization on TensorFlow, Proc. of ML Systems
Workshop in NIPS, 2017.
[14] Rhu, M., Gimelshein, N., Clemons, J., Zulfiqar, A., and Keckler, S. W.: vDNN: Virtualized deep neural networks for scalable, memoryeﬃcient neural network design, The 49th Annual
IEEE/ACM International Symposium on Microarchitecture, IEEE Press, 2016, pp. 18.
[15] Russakovsky, O., Deng, J., Su, H., Krause, J.,
Satheesh, S., Ma, S., Huang, Z., Karpathy, A.,
Khosla, A., Bernstein, M., et al.: Imagenet large
scale visual recognition challenge, International
journal of computer vision, Vol. 115, No. 3(2015),
pp. 211–252.
[16] Shirahata, K., Tomita, Y., and Ike, A.: Memory
reduction method for deep neural network training, 2016 IEEE 26th International Workshop on
Machine Learning for Signal Processing (MLSP),
IEEE, 2016, pp. 1–6.
[17] Wang, L., Ye, J., Zhao, Y., Wu, W., Li, A., Song,S. L., Xu, Z., and Kraska, T.: Superneurons: dynamic GPU memory management for training deepneural networks, ACM SIGPLAN Notices, Vol. 53,
No. 1, ACM, 2018, pp. 41–53.
[18] 今井晴基, 根岸康, 関山太朗, 河内谷清久仁, ほか: 大規模ニューラルネットワークモデルの Out-of-Core 学
習の性能評価, 研究報告ハイパフォーマンスコンピュー
ティング (HPC), Vol. 2017, No. 25(2017), pp. 1–7.
[19] 根岸康, 今井晴基, 土井淳, 河内谷清久仁: Unified
Memory を用いた大規模ディープラーニングモデルの性能に関する考察, 日本ソフトウェア科学会大会論文集,
Vol. 34(2017), pp. 11–21.
[20] 根岸康, 今井晴基, 土井淳, 河内谷清久仁: CUDA
Unified Memory のディープラーニングへの適用についての考察, 研究報告ハイパフォーマンスコンピューティ
ング (HPC), Vol. 2018, No. 7(2018), pp. 1–8.