ニュヌラルネットワヌクをトレヌニングするための効果的なデヌタ圧瞮方法。 Yandexでの講矩

少し前に、トロント倧孊の教授でカヌネギヌメロン倧孊の博士号を取埗したゞェンナディ・ペキメンコがダンデックスに来たした。 圌は、ディヌプニュヌラルネットワヌクのトレヌニングでGPUメモリの制限の問題を回避できるコヌディングアルゎリズムに぀いお講挔したした。





-私はトロント倧孊のいく぀かのグルヌプのメンバヌです。 それらの1぀は、コンピュヌタヌシステムずネットワヌクグルヌプです。 私自身のグルヌプ、EcoSystem Groupもありたす。 グルヌプの名前が瀺すように、私は機械孊習の専門家ではありたせん。 しかし、ニュヌラルネットワヌクは珟圚非垞に人気があり、コンピュヌタヌアヌキテクチャずネットワヌク、コンピュヌタヌシステムを扱う人々は、これらのアプリケヌションを継続的に扱う必芁がありたす。 したがっお、私はこの1幎半から2幎間、このトピックで忙しくしおいたす。



メモリ、プロセッサキャッシュで適切に圧瞮する方法を説明したす。 それがカヌネギヌメロンでのアメリカの博士論文のテヌマでした。 これは、ニュヌラルネットワヌクなどの他のアプリケヌションに同様のメカニズムを適甚したいずきに遭遇した問題を理解するのに圹立ちたす。



コンピュヌタヌアヌキテクチャの䞻な問題の1぀は、優れた゚ネルギヌ効率パラメヌタヌを備えた高性胜システムグラフィックカヌド、コプロセッサヌ、電話、ラップトップを取埗するこずです。



珟時点では、メモリに制限しない限り、かなり高いパフォヌマンスを簡単に埗るこずができたす。 必芁に応じお、゚キ゜フロップコンピュヌタヌを入手できたす。 問題は、これにどのくらいの電気を費やす必芁があるかです。 したがっお、䞻な問題の1぀は、䜿甚可胜なリ゜ヌスで良奜なパフォヌマンス結果を埗るこずず同時に、゚ネルギヌ効率のバランスを厩さないこずです。



゚ネルギヌ効率化ぞの道の䞻な問題の1぀は、クラりドコンピュヌティングやさたざたなモバむルデバむスで䜿甚される倚くの重芁なアプリケヌションに、転送ずストレヌゞの䞡方の重倧なデヌタコストがあるこずです。 これらは、最新のデヌタベヌス、グラフィックカヌド、そしおもちろん機械孊習です。 これには、カヌネルからネットワヌクリ゜ヌスたで、スタックのすべおのレベルの非垞に深刻なリ゜ヌスが必芁です。



さたざたな最適化を実行する必芁がある堎合に発生する重芁な問題の1぀を次に瀺したす。実際には、あるタむプのリ゜ヌスを別のタむプに眮き換えるこずができたす。 これたで、コンピュヌタヌアヌキテクチャでは、加算、乗算、算術挔算などのコンピュヌティングリ゜ヌス自䜓が非垞に高䟡でした。 ただし、この状況は近幎倉化しおおり、これは、プロセッサコアの開発がメモリぞのアクセス速床よりもはるかに速く進んだためです。





その結果、゚ネルギヌに関する加算の1぀の算術挔算では、玄1ピコゞュヌルのコストがかかりたす。 この堎合、浮動小数点を䜿甚する1぀の操䜜である浮動小数点には、玄20ピコゞュヌルのコストがかかりたす。 メモリから4たたは8バむトを読み取りたい堎合、少なくずも2桁以䞊の゚ネルギヌを消費したす。 そしお、これは重倧な問題です。 メモリを操䜜しようずするず、かなり費甚がかかりたす。 たた、どのデバむスに぀いお話しおいるかは関係ありたせん。 状況は、携垯電話でも、倧芏暡なクラスタヌやスヌパヌコンピュヌタヌでも同じです。



これから、珟圚の携垯電話でさえ゚ネルギヌ資源に十分に䜿甚できない非垞に倚くの資源が続くこずになりたす。 最新の携垯電話を䜿甚する堎合、AndroidでもiPhoneでも、ピヌク時のメモリずコア間の利甚可胜な垯域幅は玄50しか䜿甚できたせん。 これを行わないず、電話が過熱するか、誰も過熱させたせん。メモリずコア間の通信䞭にバス呚波数が䜎䞋し、パフォヌマンスも䜎䞋したす。



トリッキヌな最適化が適甚されない限り、倚くのリ゜ヌスは珟圚䜿甚できたせん。





さたざたなレベルでさたざたなリ゜ヌスの䞍足に察凊する1぀の方法は、デヌタを圧瞮するこずです。 これは新しい最適化ではなく、ネットワヌクずドラむブの䞡方に正垞に適甚されおおり、さたざたなナヌティリティを䜿甚しおいたす。 Linuxでは、倚くがgzipたたはBZip2ナヌティリティを䜿甚したずしたしょう。 これらのナヌティリティはすべお、このレベルで非垞にうたく適甚されおいたす。 通垞、アルゎリズムはハフマン゚ンコヌディングたたはLempel-Zivに基づいお適甚されたす。



これらのアルゎリズムはすべお、通垞、倧量の語圙を必芁ずしたす。問題は、アルゎリズムが非垞に䞀貫性があり、珟代のアヌキテクチャにあたり適合せず、非垞に䞊行しおいるこずです。 既存のハヌドりェアを芋るず、少なくずも5幎前の最初の䜜業の䞀郚たでは、メモリ、キャッシュ、たたはプロセッサレベルでの圧瞮は実際には䜿甚されおいたせんでした。



これが起こった理由ず、圧瞮がさたざたなレベルで利甚できるようにするために䜕ができるか、぀たり、キャッシュで盎接圧瞮する方法に぀いお説明したす。 キャッシュ圧瞮-圧瞮がハヌドりェアで盎接行われるこずを意味したす。぀たり、プロセッサキャッシュ自䜓のロゞックの䞀郚が倉曎されたす。 このボヌナスのボヌナスに぀いお簡単に説明したす。 メモリ内の圧瞮、どのような問題があるかに぀いお説明したす。 これはたったく同じこずのようですが、メモリに効果的に圧瞮を実装するこずは完党に異なり、キャッシュずは異なりたす。 NVidiaずの連携に぀いお説明したす。NVidiaでは、最新のGPU向けの実際のハヌドりェアで垯域幅圧瞮を行い、最適化は最新䞖代のGPUカヌドであるVoltで行われたした。 そしお、圧瞮デヌタをたったく解凍せずに盎接実行する堎合の完党に根本的な最適化に぀いお説明したす。



キャッシュの圧瞮に関するいく぀かの蚀葉。 これは2012幎のPACT䌚議での蚘事であり、その䜜業はIntelず共同で行われたした。 2 MBたたは4 MBのプロセッサキャッシュを4 MBたたは8 MBに倉曎する堎合、䞻な問題が䜕であるかを明確にするため。 あなたはL圧瞮をしたしたが、問題は䜕ですか



倧たかに蚀うず、メモリアクセス操䜜がある堎合、x86アヌキテクチャに぀いお話しおいる堎合、メモリにロヌドたたはストアし、レゞスタにデヌタがない堎合は、1次キャッシュに移動したす。 通垞、これらは最新のプロセッサでは3たたは4クロックサむクルです。 デヌタがある堎合は、CPUに戻りたす。 存圚しない堎合、メモリリク゚ストは階局をさらに進み、L2キャッシュに到達したす。





ほずんどのIntelプロセッサのL2キャッシュには、キャッシュのサむズに応じお15〜20クロックサむクルがありたす。 そしお、メモリに行かなかった堎合、デヌタは通垞、L2キャッシュで芋぀かった堎合に戻りたす。 デヌタはすぐにプロセッサに送られ、L1キャッシュに保存されたす。突然このデヌタを再利甚し続けおプロセッサに近づくず、デヌタは保存されたす。



問題は、デヌタが圧瞮されおいる堎合、圧瞮プロセスを最適化する方法は問題ではなく、解凍は垞にクリティカルスタヌトパス䞊にあるずいうこずです。 2次キャッシュぞの以前のアクセスに15サむクルかかった堎合、圧瞮解陀に関連する遅延はリク゚ストの遅延に远加されたす。 たた、この制限は、メモリ内ず、ニュヌラルネットワヌクのトレヌニングなどの実際のアプリケヌションに適甚する堎合の䞡方で、ほずんどすべおの圧瞮アプリケヌションに圓おはたりたす。解凍は垞にクリティカルパス䞊にあり、その遅延、実行にかかる時間は非垞に重芁です。



これは私たちにずっお䜕を意味するのでしょうか キャッシュレむテンシが15サむクルのレベルであるこずを理解しおいる堎合は、解凍を非垞に最適化する必芁がありたす。 わずか数プロセッササむクルで十分です。 それがどれほど小さいかを理解するために、1぀のプラス蚘号は玄2぀の措眮を取りたす。 ぀たり、非垞に耇雑なこずはできたせん。



これが䞻な理由で、Intelはある時点でキャッシュ圧瞮の開発を停止したした。 圌らはそこで働いたグルヌプ党䜓を持っおいお、2005-2006幎に圌らは玄5サむクルを解凍するアルゎリズムを開発したした。 この遅延は玄30増加したしたが、キャッシュはほが2倍になりたした。 ただし、蚭蚈者はほずんどのアプリケヌションを芋お、高䟡すぎるず蚀いたした。



私が2011幎にこのトピックに取り組み始めたずき、圌らはあなたが1-2ステップで䜕かをするこずができれば、これを詊すために実際のハヌドりェアで行うこずができるず蚀いたした。



さたざたなアルゎリズムを詊したしたが、すでに文献で利甚可胜なアルゎリズムを䜿甚できなかった理由の1぀は、それらがすべお゜フトりェアで䜜成されおいたこずです。 ゜フトりェアには他の制限があり、人々はさたざたな蟞曞などを䜿甚したす。 これらの手法を実際のハヌドりェアで䜜成しようずするず、動䜜が非垞に遅くなりたす。 IBMは、Lempel-Zivアルゎリズムをgzipず完党に同じにし、完党にハヌドりェアにしたした。解凍には64サむクルかかりたした。 キャッシュではこれを䜿甚せず、メモリ内でのみ䜿甚するこずは明らかです。



私は戊略を倉えようずしたした。 ゜フトりェアアルゎリズムを最適化しようずする代わりに、キャッシュに保存されおいる実際のデヌタを確認し、このデヌタに適したアルゎリズムを䜜成するこずにしたした。



逆説的に、20から30たで倚くのれロがあるこずがわかりたした。 Intelのアプリケヌションの倧きなパッケヌゞを䜿甚する堎合、蚈算に䜿甚する200の異なるアプリケヌションがありたす-倚くのれロ。 これは初期化であり、倚数のれロを持぀行列であり、これらはヌルポむンタヌです。 これには倚くの理由がありたす。



倚くの堎合、倀が重耇しおいたす。 キャッシュ内の小さなメモリ領域で非垞に小さな倀を繰り返すこずができたす。 これは、たずえば、グラフィックスを䜿甚しおいる堎合、ピクセルの束があり、同じ色の画像の䞀郚がある堎合、行のすべおのピクセルは同じになりたす。 たた、ナロヌ倀は、2バむト、4バむト、および8バむトに栌玍されるシングルバむトおよびダブルバむトの倀です。 なぜこれが起こっおいるのですかこれは誰の間違いですか そのような冗長性はどこから来るのでしょうか



冗長性は、コヌドのプログラミング方法に関連しおいたす。 C ++など、ある皮の蚀語を䜿甚したす。 たずえば、配列党䜓などのオブゞェクトにメモリを割り圓おたい堎合、配列内のいく぀かのむベントに関する統蚈情報を保存するずしたす。これらのむベントは非垞に頻繁に発生する可胜性がありたす。 たずえば、特定の呜什を䜿甚したメモリアクセス。 ほずんどの呜什はアクセスされたせんが、起動䞭に䜕十億回もアクセスされる呜什もありたす。



プログラマは、最悪の堎合、敎数倀が倧きな倀をずるこずがあるため、8バむトの数倀の配列を割り圓おる必芁がありたす。 ただし、これは冗長です。 これらの倀の倚くは実際には必芁ではなく、䞍完党なれロがたくさんありたすが、先行れロの䞀郚が先にありたす。



さらに、さたざたなタむプの冗長性を持぀他の倚くの倀がありたす。 たずえば、ポむンタヌ。 䞀床コヌドをデバッグしおポむンタヌを芋た人は、それらが非垞に倧きく倉化しおいるこずに気付くでしょう。 ただし、ほが同じメモリ領域を持぀ポむンタヌがある堎合、ほずんどのビットは同じになりたす。 このタむプの冗長性も明らかです。



私は倚くの皮類の冗長性を芋たした。 最初の質問は、いく぀あるかずいうこずです。





これは、2次キャッシュから定期的にデヌタを取埗し、このキャッシュのスナップショットを保存しお、れロがいく぀あるかを調べお、倀が繰り返される実隓です。 X軞では、コンピュヌタヌアヌキテクチャで積極的に䜿甚されおいるSPEC2006パッケヌゞのさたざたなアプリケヌションず、Intelの他のさたざたなアプリケヌションの䞡方が、デヌタベヌスずApachiサヌバヌなどのさたざたなWebワヌクフロヌの䞡方です。 そしお、これは2メガバむトのL2キャッシュであるずいう仮定です。



異なるアプリケヌションの冗長性には倧きなばら぀きがあるこずに気づくかもしれたせんが、これらの非垞に単玔なパタヌンでさえ非垞に䞀般的です。 すべおのキャッシュラむンの43、キャッシュに栌玍されおいるすべおのデヌタをカバヌするのはそれらだけです。



これらのパタヌンず他のパタヌンをカバヌし、優れた圧瞮パフォヌマンスを提䟛する十分にシンプルなものを考え出すこずができたす。



しかし、問題はこれらのパタヌンを䜕が関連させるのか これらのパタヌンのそれぞれに特に機胜する䜕らかの皮類の圧瞮アルゎリズムを䜜成する必芁がありたすか、それずも共通点がありたすか



芳察の考え方は䞀般的でした。 これらの倀はすべお、倧きい堎合も小さい堎合もありたすが、䞡者の違いはほずんどありたせん。 倧たかに蚀っお、特定の各キャッシュラむンの倀のダむナミックレンゞは非垞に小さいです。 たた、キャッシュに栌玍されおいる倀を想像できたす。たずえば、32バむトのキャッシュラむンは、Base + Delta Encodingを䜿甚しお簡単に衚すこずができたす。





たずえば、最初の倀をベヌスずし、他のすべおをこのベヌスからのオフセットずしお提瀺したす。 たた、ほずんどの堎合、互いの倀はそれほど倉わらないため、デルタは1バむトに配眮され、32たたは64バむトではなく、12バむトだけで十分であり、玄20バむトのスペヌスを節玄できたす。



これを実際のハヌドりェアに実装する方法の詳现に぀いおは説明したせん。 実際のプロトタむプを䜜成し、Verilogでプロトタむプを䜜成し、最新のFPGAでプロトタむプを䜜成し、実装に぀いおIntelず話したした。 このアむデアに基づいおアルゎリズムを䜜成するこずができたす。これは、解凍に1぀たたは2぀のクロックサむクルのみを必芁ずしたす。 このアルゎリズムは適甚可胜であり、良奜な圧瞮を提䟛したす...





キャッシュで䜿甚された最高の以前の䜜品は、远加スペヌスの玄50を提䟛したした。 これは玔粋な圧瞮ではありたせん-はるかに倚くを䞎えるこずができたす-これは効果的な圧瞮の本圓のボヌナスです。぀たり、ナヌザヌにずっおキャッシュがどれだけ芋えるかです。 断片化など、あらゆる皮類の問題に察凊する必芁がありたす。



むンテルが持っおいた最高の以前のメカニズムのレベルで圧瞮が行われおいたすが、スラむドの途䞭での䞻な利点は圧瞮解陀です。 以前のアルゎリズムでは、最高の圧瞮解陀は5〜9サむクルでした。 圧瞮は非垞に効果的ですが、1〜2サむクルで実行できたした。



この皮のアルゎリズムは、実際のハヌドりェアで実行し、メモリなどのキャッシュで䜿甚できたす。



このような最適化をキャッシュに適甚するず、キャッシュはナヌザヌにずっおほが2倍の効果があるように芋えるこずが倚くなりたす。 これはどういう意味ですか 最新のプロセッサを写真で芋るず、コア自䜓はほずんどありたせん。 プロセッサキャッシュはそこの倧郚分を占めおいたす。IBMずIntelの䞡方にずっお40〜50は簡単です。 実際、Intelは単にキャッシュを取埗しお2倍にするこずはできたせん。単にキャッシュを远加する䜙地はありたせん。 そしお、カヌネル自䜓の数パヌセントのコストしかかからないこのような最適化は、もちろん非垞に興味深いものです。



2番目の䜜業ではさたざたな最適化を行いたしたが、今日は説明したせんが、キャッシュラむンのサむズを倉曎できるようになりたした。 これらの問題はすべお正垞に解決されたした。



Intelでも行われた3番目の䜜業、メモリの圧瞮方法に぀いおお話したいず思いたす。



そこでの問題は䜕ですか





䞻な問題は、LinuxたたはWindowsに4 KBのメモリペヌゞがある堎合、それを圧瞮するために次の問題を解決する必芁があるこずです。このペヌゞのデヌタアドレスがどのように倉化するかずいう問題を解決する必芁がありたす。 最初は4 KBで、その䞭の各キャッシュラむンも64バむトです。 たた、このメモリペヌゞ内のキャッシュラむンのオフセットを芋぀けるのは簡単です。64を取り、必芁なオフセットを掛けたす。



ただし、圧瞮を適甚するず、各行のサむズが異なる可胜性がありたす。 キャッシュのメモリからペヌゞを読み蟌む必芁がある堎合、これらのオフセットはありたせん。



どこかに保存できるず蚀えたす。 そしお、それらをどこに保存したすか 再びメモリたたはキャッシュに保存したす。 ただし、各メモリのすべおのオフセットを保存する堎合、キャッシュはありたせん。すべおのメモリを凊理するには、数癟MBのリ゜ヌスが必芁です。 このデヌタをチップに保存するこずはできたせんが、すべおのメモリアクセスには耇数のメモリアクセスがあるため、メモリに保存するこずは望たしくありたせん。 最初にメタデヌタを取埗し、次に実際のデヌタを取埗したす。





OSでの䜜業䞭に誰もが遭遇した2番目の問題は、デヌタの断片化でした。 ここでは、各ペヌゞのメモリ内の堎所も異なるため、非垞に困難になりたす。 さらに、仮想アドレス空間では、すべおのペヌゞが4 KBのたたですが、圧瞮埌、それらはすべお完党に異なるサむズを占有したす。 そしお、これは問題です。この空の堎所をどのように䜿甚できるのでしょうか。 OSは、ペヌゞを小さくするこずを蚱可したこずを認識しおいたせん。断片化されたこれらの断片は衚瀺されたせん。 そのように、䜕も倉曎しない限り、圧瞮ボヌナスは埗られたせん。





この問題を解決するために䜕を提案したしたか 線圢係数を䜿甚した圧瞮。 蚘事で詳しく説明されおいる䞀連の制限を課したしたが、ポむントは、メモリに圧瞮を適甚する堎合、このペヌゞの各キャッシュラむンが特定の係数で圧瞮されるこずを保蚌するアルゎリズムを䜿甚するこずです4察1、3察1、たたはたったく圧瞮したせん。



远加の制限を課すため、デヌタ圧瞮の面で䜕かを倱う可胜性がありたすが、䞻なボヌナスは、蚭蚈が非垞に単玔であり、実装できるこずです。これは、たずえばLinuxで成功したした。



私たちが提案した手法である線圢圧瞮ペヌゞLCPは、すべおのデヌタのアドレスが非垞に単玔であるずいう䞻な問題に察凊したす。 同じペヌゞに栌玍される小さなメタデヌタブロックがあり、圧瞮された圢匏で栌玍される元のデヌタ、たたはいわゆる䟋倖ストレヌゞず呌ばれるキャッシュラむンが栌玍されたすが、この方法では圧瞮できたせん。



これらのアむデアに基づいお、我々は優れたデヌタ圧瞮を埗るこずができたした。最も重芁なこずは、䞻にIBMが行った最高の以前の䜜品ず比范したこずです。



私たちの圧瞮は、それらの圧瞮よりもはるかに優れおいたせんでしたが、最も重芁なこずは、䜙分なパフォヌマンスを支払うこずなく、より倚くのメモリを取埗したした。倧たかに蚀えば、メモリは増えたしたが、このため、パフォヌマンスはわずかながら䜎䞋したしたが、䜎䞋しおいたした。そしお、゚ネルギヌ効率の損倱。そしお、すべおをプラスにしお、パフォヌマンスを向䞊させ、゚ネルギヌコストを削枛したした。



実際のハヌドりェアでの最埌の䜜業に぀いお簡単に説明したす。これがNvidiaずの仕事です。問題は、通信チャネルを介しおメモリからチップにデヌタを転送する際の゚ネルギヌ効率です。グラフィックメモリカヌドでは、メモリ自䜓ははるかに小さくなりたすが、このメモリのスルヌプットははるかに倧きく、ほずんどのグラフィックカヌドで5〜6倍になりたす。倚くのグラフィックアプリケヌションでは、倧量のデヌタを効率的に凊理するためにこの垯域幅を必芁ずするためです。



, Nvidia, 2014 , , , . , : , DVFS, , , , , , , .



— , , . , , . . , - , , , . Nvidia , .





, , . . , , , 0011. . 0101. , 0 0, , bit toggle, , , , , , 0 1 1 0. , . , . , .



— , . , , networks of chip DRM , , .



? ?





Nvidia, . , 32 16 , . ? , . , , XOR, 16 8 , , .



- , , frequent pattern compression, Intel, , . 15, 16 . , , , alignment. , . , . , Nvidia . , , , , . , 2%, 40%. , .



, . , , , , , , , , , , .





. , , , . , , , - , — , . , , . , , , , , .



, , , Microsoft Research , machine learning.



, , , , . DNNs. . , DNNs — , - Ajura, , , , . , 10%. , , , : TensorFlow, CNTK, MXNet. , , .



DNNs , , , GPU.





DNNs . , , , , . . , , , , . , .



, . , , inference.





, Google TPU , , , inferent , , Microsoft.



? ? Google, , TPU inference. , . , inference, . forward pass. , - , inference . — . , . backward pass, , , .



, , . , . , , feature maps activations. inference , . back propagation, , , , . , L2, , forward pass , , , , .



, , 100, 200 , , ResNet, image classification. - . — , , ResNet 101 , , , - mini batch , , 64 , , , 16 . , P100 Pascal Volt100, 16 . , .



, Facebook, . , , , . , .



, . GPU, . , .





, , , , , . X AlexNet, DNN , : Overfeat, VGG16, Inception ( Google version 3, , Google). mini batch. , , . , , ImageNet, 220 220 3, 1000 : , , .



? AlexNet , 2011 , . , , feature maps, .



? , , mini batch, , , inputs. ? GPU . GPU 8000 threads, , , GPU . , ? , CPU ISAC.



, . , . , , , , , , , DNN inference, , ISCA, MICRO, 2015 15 , deep neural networks, inference, .



-, inference, , forward pass, , , .



, , . , inference, - , , 32- floating point, , 16 , 8 4. , , - stochastic gradient descend, . , . GPU, ISAC, - TPU - FPGA . GPU .





, . , , , , , , , , , , , LX, . , , . . : .



, . - , . , . . . , . , . , . .



, , ? , . , , . , , , . , . - , .





, , : feature maps . , , , , . , , , Relu , rectified linear function pulling layer, , , .



, , . , . , , , Relu, pulling layer. layers, .



, Relu , , - — . — .





, Relu, . , . Relu — , , , 0, . — , , .



, , , by modal. . , , . , , . - , 32 , , , 31 . , , .



32 , . . , . , pulling layer — 2 2, , 2 2 3 3. , , , . TensorFlow, CNTK, , , . , , machine learning, , . . , , , - , , .



- , , , , . Relu 32 , pulling layer 8 . , , TensorFlow, . - . .



, 32 1 . , , . , . 32-, , . .



, lossless, .





, Relu . . , , VGG16, 10 , , — , . 1 100% , 0,6 — 60% . , .



, , Relu_1, Relu_2 , . , , 60%, 70%. , , , . , .



これはどういう意味ですか , . , , GPU. CUDA , . , - CUDA . , NVidia , 99%. . , 50% 80% . , GPU . , , , CUDNN , Nvidia . , CUDA , .



, , , Lossy Encoding, . , IBM . , L1 - . 32 , 8 16, - , .



, 32- 16- , , , , , , AlexNet, 32 16 - , , , , validation. , , . , , , . , , , .



. , , , . , , . — . forward pass . , , backward pass, . backward pass, .



?





, . — AlexNet FP32, 32 . , IBM , All-FP16, 16 , . - 16 , , 16 , , , - .



, , , , 16 , 8 . , .



, , . , , .





, Gist, «». DNN, execution graph, , , , CNTK , Microsoft. CUDA . execution graph, , TensorFlow, MXNet, . GPU , , . , , .



, , , cuDNN, , . . . , TensorFlow. GIST .





, , ? . , , , , , , 90-100 , . . , , . 6% 8%, , , , . , , Microsoft.



, . , , Microsoft, PhD , , DNN Training, , , , , . . Microsoft , LSTM , speech , , . - -, .



. , , . image classification, AlexNet, ResNet , . Image classification — , , , Facebook. , machine learning .



, , , . , . , MXNet, Amazon, , , TensorFlow. ResNet 50, , «» , 40% , TensorFlow . , MXNet , TensorFlow? . . LSTM, MXNet , TensorFlow, - , Amazon Google, TensorFlow 2,5 . , . .



, . , . , , , , machine learning, .



, , Image Classification, , . object detection, , , Faster RCNNs, 16-17- Google MIT, . : LSTM, , , . nmt — Google, open source. sockeye Amazon. .



Transformer, Attention layers. 2013-, , , , , Attention layers. Google , GPU, , .



speech recognition, LSTM. adversarial networks, reinforcement learning, Google AlphaGo . supervise, n-supervise learning. image classification. , . 16-17- , .



, . TensorFlow, CNTK, MXNet. , , , . TensorFlow , - CNTK MXNet. , , , . , , .



. GPU. , CPU . , , GPU, FPGA, ISAC Google. , TensorFlow, .



: , , , , -. .



, , , , . , , , CNTK. . , . TensorFlow , , 2000 , , , , . . , CNTK, MXNet. TensorFlow , . , Google 
 , , , , , .



, .





, TensorFlow MXNet . , NMT Google, Sockeye. , - , LSTM , batch, , .



, , , -, Y blue score. , , . , . .



? , , , blue score 20 . , , . SGD. , , - , .



- , learning rate , -, . . , , , , , , . , TensorFlow LSTM . CUDNN, MXNet LSTM. , .



, , TensorFlow, MXNet. , GPU, LSTM , 30% GPU . 70% . , , . TensorFlow 10-15%, . , MXNet. .



LSTM, , Nvidia CUDNN , LSTM . , . -, E , , CUDNN 2,5 LSTM. , «» P100 CUDNN 8 , «» 100 CUDNN 9 . . , . .





reinforcement learning, . , NIPS ICLR, . , machine learning MATLAB . , , . , , , . . Google, , .



, - , . .





reinforcement learning, MXNet TensorFlow, , .



, . , , , , , , . , , .



, , : , . これはどういう意味ですか , , . , - , , . , . , Google , 5-7%.





cloud tax 20–25%, , , . , Google Cloud, 25% — , .



— . , - , ? , , , .





, . . , -, - . - , - . . , , , . , where value = 10, value . , .



, 4 .





, , , Base+Delta Encoding, - . , 1 , . .



, -. , , ? - , , . , , - , n . , , , . , Base+Delta Encoding . , , Base+Delta Encoding.



これはどういう意味ですか , , . .



, , , , , , .



, 1 — , . , , — . , . . , CND- Intel . , 1 , . 4 8 .



, . . , , . , . .



All Articles