Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ABCIで回そう爆速深層学習 (基礎編)

ABCIで回そう爆速深層学習 (基礎編)

チーム内で使用したABCI活用Tips集を公開します.

免責|本資料は坂東の個人的経験・実験に基づくTips集であり,ABCI公式とは無関係で不正確な場合があります.
公式情報は https://abci.ai , https://docs.abci.ai をご参照下さい.

Yoshiaki Bando

April 11, 2022
Tweet

More Decks by Yoshiaki Bando

Other Decks in Research

Transcript

  1. A B CI で 回 そ う 爆 速 深

    層 学 習 (基 礎 編 ) 坂 東 宜 昭 産 業 技 術 総 合 研 究 所 人 工 知 能 研 究 セ ン タ ー 社 会 知 能 研 究 チ ー ム
  2. な ぜ 深 層 学 習 を 速 く し

    な け れ ば い け な い の か ? 1 日 以 上 経 つ と , 何 が し た か っ た か 忘 れ て し ま う か ら ! • 深 層 学 習 は 帰 納 的 ・ 実 験 的 な 側 面 が 強 い  ル ー プ を 沢 山 回 す こ と が 重 要 有 限 の 資 源 ( =人 間 ) を 効 率 的 に 稼 働 さ せ な い と 研 究 は 進 ま な い ! A B CI が な い と き D a y 1 D a y 2 D a y 3 D a y 4 ⋯ 実 装 学 習 (祈 り の 時 間 ) 修 正 学 習 A B CI が あ る と き D a y 1 D a y 2 D a y 3 D a y 4 ⋯ 実 装 学 習 修 正 修 正 学 習 学 習 修 正 学 習 修 正 学 習 修 正 学 習 修 正 A B CI ( ) で 回 そ う 爆 速 深 層 学 習 基 礎 編 / 1 9 2
  3. 今 日 お 伝 え し た い こ と

    ( P y T or c hを 用 い た ) 深 層 学 習 で は 主 に 以 下 の 3 点 に 気 を 付 け る と 吉 ※ 免 責 | 本 資 料 は 坂 東 の 個 人 的 経 験 ・ 実 験 に 基 づ く Ti p s 集 で あ り , A B CI 公 式 と は 無 関 係 で 不 正 確 な 場 合 が あ り ま す 公 式 情 報 は htt p s:// a b ci. ai , htt p s:// d o c s. a b ci. ai へ 1 . 計 算 機 ア ー キ テ ク チ ャ を 気 に し よ う 2 . 速 い ラ イ ブ ラ リ を 使 お う 3 . プ ロ フ ァ イ ラ を 活 用 し よ う A B CI ( ) で 回 そ う 爆 速 深 層 学 習 基 礎 編 / 1 9 3
  4. 今 日 お 伝 え し た い こ と

    ( P y T or c hを 用 い た ) 深 層 学 習 で は 主 に 以 下 の 3 点 に 気 を 付 け る と 吉 ※ 免 責 | 本 資 料 は 坂 東 の 個 人 的 経 験 ・ 実 験 に 基 づ く Ti p s 集 で あ り , A B CI 公 式 と は 無 関 係 で 不 正 確 な 場 合 が あ り ま す 公 式 情 報 は htt p s:// a b ci. ai , htt p s:// d o c s. a b ci. ai へ 1 . 計 算 機 ア ー キ テ ク チ ャ を 気 に し よ う 2 . 速 い ラ イ ブ ラ リ を 使 お う 3 . プ ロ フ ァ イ ラ を 活 用 し よ う A B CI ( ) で 回 そ う 爆 速 深 層 学 習 基 礎 編 / 1 9 4
  5. A B CI の ア ー キ テ ク チ

    ャ ス パ コ ン 型 な の で , 個 人 用 の 計 算 機 と は 大 き く 異 な り コ ツ が 必 要 • ノ ー ド 内 の C P U ・ メ モ リ は 普 通 だ が , G P U は 8 (4 )枚 が 互 い に N V Li n k で 高 速 接 続 • ノ ー ド 間 は 8 0 0 ( 2 0 0) G b p s の 高 速 な I nfi ni B a n dで 接 続  一 般 に は 1 ~ 1 0 G b p s 分 散 学 習 を 強 く 意 識 し た ア ー キ テ ク チ ャ  上 手 く 活 用 し な い と 損 ! ! V ノ ー ド ノ ー ド ノ ー ド ス ト レ ー ジ / gr o u p s (推 測 ) H D D H D D H D D H D D H D D H D D H D D H D D ス ト レ ー ジ / s cr at c h (推 測 ) H D D H D D H D D H D D H D D H D D S S D S S D ス ト レ ー ジ / h o m e S S D S S D S S D S S D S S D S S D S S D S S D I nfi ni B a n d ( E D R/ H D R) ネ ッ ト ワ ー ク 計 算 ノ ー ド ( A/ V) C P U C P U メ モ リ メ モ リ G P U G P U G P U G P U N V Li n k ⋯ A B CI ( ) で 回 そ う 爆 速 深 層 学 習 基 礎 編 / 1 9 5
  6. ポ イ ン ト | 階 層 構 造 を

    意 識 し よ う 「 速 い が 小 容 量 」 v s 「 遅 い が 大 容 量 」 の ト レ ー ド オ フ を 把 握 す る • 機 械 学 習 ・ 信 号 処 理 で は , 純 粋 な 計 算 能 力 よ り デ ー タ ア ク セ ス で 律 速 し が ち ス ト レ ー ジ 系 と メ モ リ 系 で は 速 度 に 最 低 で も 1 0 倍 以 上 の 差 ! 名 称 永 続 性 ノ ー ド 間 共 有 容 量 速 度 G P U メ モ リ × × 1 6 or 4 0 G B/ G P U 1, 5 5 5 G B/ s C P U メ モ リ × × 3 6 0 or 4 8 0 G B/ ノ ー ド 2 0 4 G B/ s ロ ー カ ル ス ク ラ ッ チ △ (予 約 中 は 永 続 ) × 1. 6 ~ 2 ( ?) T B/ ノ ー ド 3. 2 G B/ s B e e O N D × 〇 1. 6 ~ 2 ( ?) T B/ ノ ー ド ノ ー ド 数 x 3. 2 G B/ s ホ ー ム 領 域 (/ h o m e) 〇 〇 2 0 0 G B * 4. 7 G B/ s グ ロ ー バ ル ス ク ラ ッ チ (/ s cr at c h) 〇 〇 1 0 T B * 4. 8 G B/ s グ ル ー プ 領 域 (/ gr o u p s) 〇 〇 ~ 1 0 0 ( ?) T B * 2. 5 G B/ s ※ 容 量 ・ 速 度 は 参 考 値 , 全 容 量 使 え な い 場 合 あ り , * は 0 埋 め 1 0 G B の 読 出 の 実 測 で キ ャ ッ シ ュ は 未 考 慮 (並 列 化 で 改 善 ? ) @ 2 0 2 2/ 0 4/ 0 7 ti m e d d if = 1 0 G. d u m m y of =/ d e v/ n ull b s = 1 2 8 K A B CI ( ) で 回 そ う 爆 速 深 層 学 習 基 礎 編 / 1 9 6
  7. Ti p s 1 | デ ィ ス ク ア

    ク セ ス を 極 力 減 ら そ う と に か く あ ら ゆ る デ ー タ を C P U メ モ リ に 載 せ て し ま お う • t or c h vi si o nの D at a s et 群 は 毎 回 ス ト レ ー ジ か ら 読 み 出 す の で 遅 い ! • I m a g e N etも 3 0 0 G B 程 度 な の で メ モ リ ( 4 8 0 G B) に 載 る  ロ ー ド が 1 0 倍 高 速 に ! # s e t u p d a t a l o a d e r s t r a i n _ d a t a = C a c h e d D a t a s e t ( F o o B a r D a t a s e t ( c o n f i g . t r a i n _ d a t a s e t ) ) v a l i d _ d a t a = C a c h e d D a t a s e t ( F o o B a r D a t a s e t ( c o n f i g . v a l i d _ d a t a s e t ) ) l o g g e r . i n f o ( f " D a t a s e t s i z e s : { l e n ( t r a i n _ d a t a . d a t a s e t ) } / { l e n ( v a l i d _ d a t a . d a t a s e t ) } " ) k w a r g s = d i c t ( b a t c h _ s i z e = c o n f i g . b a t c h _ s i z e , n u m _ w o r k e r s = 1 0 , c o l l a t e _ f n = c o l l a t e , p i n _ m e m o r y = T r u e , d r o p _ l a s t = T r u e , p e r s i s t e n t _ w o r k e r s = T r u e , s h u f f l e = T r u e ) t r a i n _ l o a d e r = D a t a L o a d e r ( t r a i n _ d a t a , * * k w a r g s ) v a l i d _ l o a d e r = D a t a L o a d e r ( v a l i d _ d a t a , * * k w a r g s ) 良 く 書 く D at a L o a d er 周 り の ス ク リ プ ト 1 e p o c h 目 は 遅 い が 2 e p o c h 目 以 降 は 高 速 F al s e だ と エ ポ ッ ク 終 了 時 に キ ャ ッ シ ュ が 破 棄 投 機 読 み 出 し 有 効 に . 値 は 物 理 コ ア 数 (/ G P U) が お 勧 め プ チ Ti p s • / gr o u p s 等 の L u str e は 大 量 の 小 フ ァ イ ル の 読 み 出 し は 得 意 で な い の で , H D F 5 等 で 1 つ に 纏 め る と 良 い ( htt p s:// d o c s. h 5 p y. or g) • 大 き な フ ァ イ ル は ス ト ラ イ ピ ン グ の 設 定 を 忘 れ ず に ( htt p s:// d o c s. a b ci. ai/j a/ st or a g e/ # a d v a n c e d-o pti o n -fil e-stri pi n g) • 前 処 理 済 み デ ー タ セ ッ ト は グ ロ ー バ ル ス ク ラ ッ チ に 置 く と ロ ー ド が 少 し 速 い A B CI ( ) で 回 そ う 爆 速 深 層 学 習 基 礎 編 / 1 9 7
  8. Ti p s 2 | メ モ リ が 足

    り な い な ら 分 散 学 習 し よ う ( 1/ 2) 消 費 ポ イ ン ト は 資 源 に 対 し て 非 線 形 で , G P U 1 枚 よ り 4 枚 の 方 が 少 し 得 • 複 数 G P U で ポ イ ン ト 消 費 量 よ り 速 度 向 上 が 上 回 る な ら 積 極 的 に 分 散 学 習 し よ う !  G P U 間 は N V Li n k で 相 互 接 続 さ れ て い る の で , ノ ー ド 内 な ら 概 ね 資 源 倍 (主 観 )  複 数 ノ ー ド で も I nfi ni B a n dに よ り , 工 夫 せ ず と も 1 0 ノ ー ド 程 度 な ら 比 較 的 高 速 資 源 名 消 費 ポ イ ン ト G P U 枚 数 メ モ リ 容 量 C P U コ ア 数 rt _ F 1. 0 pt/ 時 間 4 x V 1 0 0 3 6 0 G B 4 0 コ ア rt _ G.l ar g e 0. 9 pt/ 時 間 4 x V 1 0 0 2 4 0 G B 2 0 コ ア rt _ G. s m all 0. 3 pt/ 時 間 1 x V 1 0 0 6 0 G B 5 コ ア rt _ A F 3. 0 pt/ 時 間 8 x A 1 0 0 4 8 0 G B 7 2 コ ア rt _ A G. s m all 0. 5 pt/ 時 間 1 x A 1 0 0 6 0 G B 9 コ ア x 1. 1 x 3. 3 x 6 x 1 x 4 x 3/ 2 x 6 x 2 x 8 x 8 x 8 x 8 A B CI ( ) で 回 そ う 爆 速 深 層 学 習 基 礎 編 / 1 9 8
  9. Ti p s 2 | メ モ リ が 足

    り な い な ら 分 散 学 習 し よ う ( 2/ 2) デ ー タ 並 列 型 の 分 散 学 習 は 数 行 の 追 加 で 簡 単 ! 悩 む 時 間 が 勿 体 な い ! • 複 数 G P U で ポ イ ン ト 消 費 量 よ り 速 度 向 上 が 上 回 る な ら 積 極 的 に 分 散 学 習 し よ う ! # i n i t i a l i z e p r o c e s s g r o u p w o r l d _ s i z e = i n t ( o s . e n v i r o n [ " O M P I _ C O M M _ W O R L D _ S I Z E " ] ) r a n k = i n t ( o s . e n v i r o n [ " O M P I _ C O M M _ W O R L D _ R A N K " ] ) l o c a l _ r a n k = i n t ( o s . e n v i r o n [ ' O M P I _ C O M M _ W O R L D _ L O C A L _ R A N K ’ ] ) i n i t _ m e t h o d = f " t c p : / / { a r g s . m a s t e r _ a d d r } : { a r g s . m a s t e r _ p o r t } " d i s t . i n i t _ p r o c e s s _ g r o u p ( b a c k e n d = " n c c l " , i n i t _ m e t h o d = i n i t _ m e t h o d , w o r l d _ s i z e = w o r l d _ s i z e , r a n k = r a n k ) t o r c h . c u d a . s e t _ d e v i c e ( l o c a l _ r a n k ) # i n i t i a l i z e m o d e l o r i g _ m o d e l = X X X L o s s ( . . . ) m o d e l = D i s t r i b u t e d D a t a P a r a l l e l ( t o r c h . n n . S y n c B a t c h N o r m . c o n v e r t _ s y n c _ b a t c h n o r m ( o r i g _ m o d e l ) , d e v i c e _ i d s = [ l o c a l _ r a n k ] ) 良 く 書 く 分 散 学 習 用 の ス ク リ プ ト (抜 粋 ) 参 考 | htt p s:// p yt or c h. or g/t ut ori al s/i nt er m e di at e/ d d p _t ut ori al. ht ml プ チ Ti p s • 損 失 関 数 等 の ロ ギ ン グ に は G P U 間 で の 手 動 同 期 が 必 要 な の で , I g nit e (お 勧 め ) や Li g ht ni n g 等 の ラ ッ パ ー を 使 用 す る の が 吉 N VI DI A の 分 散 学 習 用 ラ イ ブ ラ リ . 通 信 の ト ポ ロ ジ 最 適 化 し て く れ る B at c h N or m は 分 散 学 習 時 に G P U 間 で 同 期 が 必 要 A B CI ( ) で 回 そ う 爆 速 深 層 学 習 基 礎 編 / 1 9 9
  10. 今 日 お 伝 え し た い こ と

    ( P y T or c hを 用 い た ) 深 層 学 習 で は 主 に 以 下 の 3 点 に 気 を 付 け る と 吉 ※ 免 責 | 本 資 料 は 坂 東 の 個 人 的 経 験 ・ 実 験 に 基 づ く Ti p s 集 で あ り , A B CI 公 式 と は 無 関 係 で 不 正 確 な 場 合 が あ り ま す 公 式 情 報 は htt p s:// a b ci. ai , htt p s:// d o c s. a b ci. ai へ 1 . 計 算 機 ア ー キ テ ク チ ャ を 気 に し よ う 2 . 速 い ラ イ ブ ラ リ を 使 お う 3 . プ ロ フ ァ イ ラ を 活 用 し よ う A B CI ( ) で 回 そ う 爆 速 深 層 学 習 基 礎 編 / 1 9 1 0
  11. 普 段 使 っ て い る 多 く の

    P yt h o n ラ イ ブ ラ リ は 高 速 ラ イ ブ ラ リ の ラ ッ パ ー • C/ C + +/ F ortr a n で 書 か れ た 背 後 の ラ イ ブ ラ リ を 最 大 限 に 活 用 す る こ と が 不 可 欠 P yt h o n ラ イ ブ ラ リ の 構 造 N VI DI A G P U c u D N N M A G M A c u B L A S At e n/ c 1 0 ( C/ C + +) P y T or c h ( P yt h o n) m ai n. p y I nt el C P U L A P A C K B L A S N u m P y ( P yt h o n / C / C + + / F ortr a n) m ai n. p y ハ ー ド ウ ェ ア C/ C + +/ F ortr a n 高 速 ラ イ ブ ラ リ P yt h o n ラ ッ パ ー ユ ー ザ プ ロ グ ラ ム 主 に C P U で 動 く プ ロ グ ラ ム 主 に G P U で 動 く プ ロ グ ラ ム O S ・ ド ラ イ バ ・ ラ ン タ イ ム A B CI ( ) で 回 そ う 爆 速 深 層 学 習 基 礎 編 / 1 9 1 1
  12. ポ イ ン ト | な る べ く P

    yt h o n べ た 書 き を 避 け よ う 公 式 ド キ ュ メ ン ト の 虫 に な っ て 高 速 ル ー チ ン を 使 い こ な そ う • P yt h o n は 仮 想 マ シ ン ( P V M) 上 で 実 行 さ れ る  本 質 的 に 遅 い 処 理 系 • よ く 使 わ れ る 共 通 ル ー チ ン は n u m p y/t or c h 以 下 に 速 い 実 装 が 提 供 2 重 f or文 を 書 き そ う に な っ た ら , ま ず は ド キ ュ メ ン ト を 漁 ろ う ! 日 本 語 文 献 は 古 い ・ 間 違 い も あ る の で 原 典 を 読 む A = n p . r a n d o m . r a n d o m ( [ 1 0 0 , 1 0 0 ] ) B = n p . r a n d o m . r a n d o m ( [ 1 0 0 , 1 0 0 ] ) s t a r t _ t i m e = t i m e . t i m e ( ) Y = n p . z e r o s ( [ 1 0 0 , 1 0 0 ] ) f o r i , j i n i t e r t o o l s . p r o d u c t ( r a n g e ( 1 0 0 ) , r a n g e ( 1 0 0 ) ) : f o r k i n r a n g e ( 1 0 0 ) : Y [ i , j ] + = A [ i , k ] * B [ k , j ] d u r a t i o n = t i m e . t i m e ( ) - s t a r t _ t i m e p r i n t ( d u r a t i o n ) A = n p . r a n d o m . r a n d o m ( [ 1 0 0 , 1 0 0 ] ) B = n p . r a n d o m . r a n d o m ( [ 1 0 0 , 1 0 0 ] ) s t a r t _ t i m e = t i m e . t i m e ( ) Y = A @ B d u r a t i o n = t i m e . t i m e ( ) - s t a r t _ t i m e p r i n t ( d u r a t i o n ) 実 行 時 間  4 0 0 m s 実 行 時 間  3 m s !! ※ D ell X P S 1 3 9 3 1 0 (i 7 -1 1 8 5 G 7) で 計 測 @ 2 0 2 2/ 0 4/ 0 6 A B CI ( ) で 回 そ う 爆 速 深 層 学 習 基 礎 編 / 1 9 1 2
  13. Ti p s 3 | 積 極 的 に G

    P G P U を 活 用 し よ う A B CI に は C P U は 2 4 0 0 個 あ る が , G P U は 5 3 0 0 枚 あ る ! ! • 条 件 に よ る が , 上 手 く 書 け ば G P U 化 だ け で も 1 0 倍 以 上 高 速 化 で き る こ と も • P y T or c h で も 書 け る が , C u P y な ら コ ー ド の 変 更 は ほ と ん ど 不 要 f r o m o p t _ e i n s u m i m p o r t c o n t r a c t x = n p . r a n d o m . r a n d o m ( [ 1 0 0 0 0 , 5 0 ] ) # [ N , D ] z = n p . r a n d o m . r a n d o m ( [ 1 0 0 0 0 , 1 0 ] ) # [ N , K ] z / = z . s u m ( a x i s = - 1 , k e e p d i m s = T r u e ) e I = 1 e - 8 * n p . e y e ( x . s h a p e [ 1 ] ) f o r i i i n r a n g e ( 1 0 ) : z s u m = z . s u m ( a x i s = 0 ) . c l i p ( 1 e - 8 ) p i = z s u m / z . s h a p e [ 0 ] # [ K ] m u = c o n t r a c t ( " n k , n d - > k d " , z , x ) / z s u m [ : , N o n e ] # [ K , D ] x m u = x [ : , N o n e ] - m u # [ N , K , D ] V = c o n t r a c t ( " n k , n k d , n k e - > k d e " , z , x m u , x m u ) / z s u m [ : , N o n e , N o n e ] + e I V i , ( _ , l d V ) = n p . l i n a l g . i n v ( V ) , n p . l i n a l g . s l o g d e t ( V ) l o g z = n p . l o g ( p i ) - 0 . 5 * ( l d V + c o n t r a c t ( " n k d , k d e , n k e - > n k " , x m u , V i , x m u ) ) z = n p . e x p ( l o g z - l o g s u m e x p ( l o g z , a x i s = - 1 , k e e p d i m s = T r u e ) ) f r o m o p t _ e i n s u m i m p o r t c o n t r a c t x = c p . r a n d o m . r a n d o m ( [ 1 0 0 0 0 , 5 0 ] ) # [ N , D ] z = c p . r a n d o m . r a n d o m ( [ 1 0 0 0 0 , 1 0 ] ) # [ N , K ] z / = z . s u m ( a x i s = - 1 , k e e p d i m s = T r u e ) e I = 1 e - 8 * c p . e y e ( x . s h a p e [ 1 ] ) f o r i i i n r a n g e ( 1 0 ) : z s u m = z . s u m ( a x i s = 0 ) . c l i p ( 1 e - 8 ) p i = z s u m / z . s h a p e [ 0 ] # [ K ] m u = c o n t r a c t ( " n k , n d - > k d " , z , x ) / z s u m [ : , N o n e ] # [ K , D ] x m u = x [ : , N o n e ] - m u # [ N , K , D ] V = c o n t r a c t ( " n k , n k d , n k e - > k d e " , z , x m u , x m u ) / z s u m [ : , N o n e , N o n e ] + e I V i , ( _ , l d V ) = c p . l i n a l g . i n v ( V ) , c p . l i n a l g . s l o g d e t ( V ) l o g z = c p . l o g ( p i ) - 0 . 5 * ( l d V + c o n t r a c t ( " n k d , k d e , n k e - > n k " , x m u , V i , x m u ) ) z = c p . e x p ( l o g z - l o g s u m e x p ( l o g z , a x i s = - 1 , k e e p d i m s = T r u e ) )  N u m P y で 書 い た E M -G M M → 9 9 5 0 m s  C u P y で 書 い た E M -G M M → 5 0 4 m s !! デ ー タ の 次 元 数 が 大 き い と 差 が 顕 著 な 傾 向 ※ V 1 0 0 ノ ー ド (rt _ F = 1) で 計 測 @ 2 0 2 2/ 0 4/ 0 6 A B CI ( ) で 回 そ う 爆 速 深 層 学 習 基 礎 編 / 1 9 1 3
  14. C P U な ら I nt el M K

    L, G P U な ら c u X X X 系 を 使 っ て い る か 確 認 し よ う • 多 く の 場 合 , 演 算 器 メ ー カ 謹 製 の ラ イ ブ ラ リ が 最 速 (た だ し コ ー ド は 非 公 開 ) • N u m P y/ S ci P y は A n a c o n d a な ら 自 動 で M K L 有 効 に (営 利 プ ロ ジ ェ ク ト で は 注 意 ) Ti p s 4 | 速 い バ ッ ク エ ン ド を 使 っ て い る か 確 認 し よ う M K L が 設 定 さ れ て い る こ と を 確 認 プ チ Ti p s • C U D A は 出 来 る だ け 最 新 版 を 使 う . ド ラ イ バ と C U D A は 概 ね 独 立 な の で コ ン テ ナ に 好 き な バ ー ジ ョ ン を 入 れ る の が 吉 . • A 1 0 0 で は 仮 数 1 0 bit の T F 3 2 が 有 効 化 さ れ る の で 切 っ た 方 が 吉 . そ の ま ま だ と V 1 0 0 の 学 習 結 果 と は 直 接 比 較 で き な い . • P y T or c h の 一 部 演 算 は M K L ( C P U !!) や M A G M A で 処 理 さ れ て お り 遅 い こ と も . C u P y と う ま く 併 用 す る と よ い . • C u P y と P y T or c h は Dl P a c k 対 応 な の で ゼ ロ コ ピ ー で デ ー タ や り 取 り 可 . t o r c h . b a c k e n d s . c u d n n . a l l o w _ t f 3 2 = F a l s e t o r c h . b a c k e n d s . c u d a . m a t m u l . a l l o w _ t f 3 2 = F a l s e A B CI ( ) で 回 そ う 爆 速 深 層 学 習 基 礎 編 / 1 9 1 4
  15. 今 日 お 伝 え し た い こ と

    ( P y T or c hを 用 い た ) 深 層 学 習 で は 主 に 以 下 の 3 点 に 気 を 付 け る と 吉 ※ 免 責 | 本 資 料 は 坂 東 の 個 人 的 経 験 ・ 実 験 に 基 づ く Ti p s 集 で あ り , A B CI 公 式 と は 無 関 係 で 不 正 確 な 場 合 が あ り ま す 公 式 情 報 は htt p s:// a b ci. ai , htt p s:// d o c s. a b ci. ai へ 1 . 計 算 機 ア ー キ テ ク チ ャ を 気 に し よ う 2 . 速 い ラ イ ブ ラ リ を 使 お う 3 . プ ロ フ ァ イ ラ を 活 用 し よ う A B CI ( ) で 回 そ う 爆 速 深 層 学 習 基 礎 編 / 1 9 1 5
  16. プ ロ フ ァ イ ラ と は プ ロ

    グ ラ ム の 各 箇 所 の 実 行 時 間 を 計 測 す る ツ ー ル • 高 速 化 は 重 い 処 理 か ら 実 施 す る の が 鉄 則  全 体 の 2 % を 1 0 倍 速 く し て も 無 意 味 • 予 想 と 実 際 は 大 き く ず れ て い る こ と も 多 い  定 量 的 な 計 測 が 不 可 欠 注 意 | ま ず は 動 く も の を 作 ろ う ! 高 速 化 は 研 究 が 進 ん で か ら (手 段 ) 逆 行 列 ル ー チ ン を 1 0 0 倍 速 く し た ぜ ! ぼ く A B CI 8 割 の 時 間 は I/ Oな ん だ が … A B CI ( ) で 回 そ う 爆 速 深 層 学 習 基 礎 編 / 1 9 1 6
  17. @ pr ofil e デ コ レ ー タ で

    関 数 内 の 各 行 の 実 行 時 間 を 計 測 で き る • pi p i n st all li n e _ pr ofil er で イ ン ス ト ー ル (詳 細 は htt p s:// git h u b. c o m/ p y util s/li n e _ pr ofil er ) Ti p s 5 | li n e _ pr ofil er を 使 お う x = n p . r a n d o m . r a n d o m ( [ 1 0 0 0 0 , 5 0 ] ) # [ N , D ] @ p r o f i l e d e f t a r g e t ( ) : z = n p . r a n d o m . r a n d o m ( [ 1 0 0 0 0 , 1 0 ] ) # [ N , K ] z / = z . s u m ( a x i s = - 1 , k e e p d i m s = T r u e ) e I = 1 e - 8 * n p . e y e ( x . s h a p e [ 1 ] ) f o r i i i n r a n g e ( 1 0 ) : z s u m = z . s u m ( a x i s = 0 ) . c l i p ( 1 e - 8 ) p i = z s u m / z . s h a p e [ 0 ] # [ K ] m u = c o n t r a c t ( " n k , n d - > k d " , z , x ) / z s u m [ : , N o n e ] # [ K , D ] x m u = x [ : , N o n e ] - m u # [ N , K , D ] V = c o n t r a c t ( " n k , n k d , n k e - > k d e " , z , x m u , x m u ) / z s u m [ : , N o n e , N o n e ] + e I V i , ( _ , l d V ) = n p . l i n a l g . i n v ( V ) , n p . l i n a l g . s l o g d e t ( V ) l o g z = n p . l o g ( p i ) - 0 . 5 * ( l d V + c o n t r a c t ( " n k d , k d e , n k e - > n k " , x m u , V i , x m u ) ) z = n p . e x p ( l o g z - l o g s u m e x p ( l o g z , a x i s = - 1 , k e e p d i m s = T r u e ) ) t a r g e t ( ) 7 割 が こ の 行 . メ モ リ の 連 続 化 で 解 消 ? ※ D ell X P S 1 3 9 3 1 0 (i 7 -1 1 8 5 G 7) で 計 測 @ 2 0 2 2/ 0 4/ 0 7 A B CI ( ) で 回 そ う 爆 速 深 層 学 習 基 礎 編 / 1 9 1 7
  18. Ti p s 6 | t or c h. pr

    ofil er を 活 用 し よ う G P U 側 の 実 行 時 間 は C P U 側 か ら は 素 朴 に 測 れ な い の で 注 意 し よ う • C U D A カ ー ネ ル (≒ G P U コ ー ド ) と C P U 側 の 実 行 は 原 則 非 同 期  ti m e/ pri nt 不 可 • 最 短 2 行 で プ ロ フ ァ イ ル で き , C hr o m e や T e n s or B o ar d で 可 視 化 で き る C P U 側 の 処 理 時 間 G P U 側 の 処 理 時 間 呼 び 出 さ れ て い る 関 数 名 ク リ ッ ク で 詳 細 情 報 詳 細 | htt p s:// p yt or c h. or g/t ut ori al s/r e ci p e s/r e ci p e s/ pr ofil er _r e ci p e. ht ml A B CI ( ) で 回 そ う 爆 速 深 層 学 習 基 礎 編 / 1 9 1 8
  19. 今 日 お 伝 え し た い こ と

    ( P y T or c hを 用 い た ) 深 層 学 習 で は 主 に 以 下 の 3 点 に 気 を 付 け る と 吉 ※ 免 責 | 本 資 料 は 坂 東 の 個 人 的 経 験 ・ 実 験 に 基 づ く Ti p s 集 で あ り , A B CI 公 式 と は 無 関 係 で 不 正 確 な 場 合 が あ り ま す 公 式 情 報 は htt p s:// a b ci. ai , htt p s:// d o c s. a b ci. ai へ 1 . 計 算 機 ア ー キ テ ク チ ャ を 気 に し よ う C P U メ モ リ や 分 散 学 習 を う ま く 活 用 し よ う 2 . 速 い ラ イ ブ ラ リ を 使 お う C u P y ( G P G P U) を 活 用 し よ う & M K L / c u X X X を 使 お う 3 . プ ロ フ ァ イ ラ を 活 用 し よ う li n e _ pr ofil er や t or c h. pr ofil er を 使 っ て ボ ト ル ネ ッ ク を 探 そ う A B CI ( ) で 回 そ う 爆 速 深 層 学 習 基 礎 編 / 1 9 1 9