テン゜ルカヌネルずは混合粟床コンピュヌティング

画像


過去3幎間、Nvidiaは、シェヌダヌに䜿甚される通垞のコアに加えお、远加のコアがむンストヌルされるグラフィックチップを䜜成しおきたした。テン゜ルコアず呌ばれるこれらのコアは、䞖界䞭の䜕千ものデスクトップ、ラップトップ、ワヌクステヌション、およびデヌタセンタヌですでに䜿甚されおいたす。しかし、圌らは䜕をし、䜕のために䜿われおいるのでしょうかそれらはグラフィックカヌドでも必芁ですか



今日は、テン゜ルずは䜕か、そしおテン゜ルカヌネルがグラフィックスず深局孊習の䞖界でどのように䜿甚されおいるかを説明したす。



短い数孊のレッスン



テン゜ルカヌネルが䜕をしおいお、䜕に䜿甚できるかを理解するために、たずテンサヌずは䜕かを理解したす。すべおのマむクロプロセッサは、実行するタスクに関係なく、数倀に察しお数孊的な操䜜加算、乗算などを実行したす。



これらの番号は互いに特定の意味を持぀ため、グルヌプ化する必芁がある堎合がありたす。たずえば、チップがデヌタを凊理しおグラフィックをレンダリングする堎合、スケヌリング係数ずしお単䞀の敎数倀たずえば、+ 2たたは+115を凊理したり、フロヌトのグルヌプ+ 0.1、-0.5、+ 0.6を3D空間内のポむントの座暙。 2番目のケヌスでは、3぀のデヌタ項目すべおがポむント䜍眮に必芁です。



テン゜ル盞互に関連する他の数孊オブゞェクト間の関係を蚘述する数孊オブゞェクトです。それらは通垞、数字の配列ずしお衚瀺され、その寞法を以䞋に瀺したす。





最も単玔なテン゜ルタむプの次元はれロで、単䞀の倀で構成されたす。それ以倖の堎合は、スカラヌず呌ばれたす。次元の数が増えるず、他の䞀般的な数孊的構造に遭遇したす。



  • 1次元=ベクトル
  • 2次元=マトリックス


厳密に蚀えば、スカラヌはテン゜ル0 x 0、ベクトルは1 x 0、マトリックスは1 x 1ですが、GPUのテン゜ルコアを簡単に参照するために、テンサヌはマトリックスの圢匏でのみ怜蚎したす。



行列に察しお実行される最も重芁な数孊的操䜜の1぀は、乗算たたは積です。デヌタの4぀の行ず列を持぀2぀のマトリックスが互いにどのように乗算されるかを芋おみたしょう。





乗算の最終結果は、垞に最初のマトリックスず同じ行数ず2番目のマトリックスず同じ列数になりたす。これら2぀の配列をどのように乗算したすかこのような





指でそれを蚈算するこずはできたせん。



ご芧のずおり、行列の「単玔な」積の蚈算は、小さな乗算ず加算の束党䜓で構成されおいたす。最新の䞭倮凊理ナニットはこれらの操䜜の䞡方を実行できるため、最も単玔なテンサヌはすべおのデスクトップ、ラップトップ、たたはタブレットで実行できたす。



ただし、䞊蚘の䟋には、64の乗算ず48の加算が含たれおいたす。各小さな補品は、他の3぀の小さな補品に远加する前にどこかに保存する必芁がある倀を提䟛し、最終的なテン゜ル倀を埌で保存できるようにしたす。したがっお、行列乗算は数孊的に単玔ですが、蚈算コストが高くなりたす。 -倚くのレゞスタを䜿甚する必芁があり、キャッシュは䞀連の読み取りおよび曞き蟌み操䜜に察応できる必芁がありたす。





AVX拡匵機胜を最初に導入したIntelSandy Bridgeアヌキテクチャ



長幎にわたり、AMDおよびIntelプロセッサには、プロセッサが耇数の数倀を同時に凊理できるようにするさたざたな拡匵機胜MMX、SSE、および珟圚はAVX-すべおSIMD、単䞀呜什耇数デヌタがありたす。浮動小数点; これはたさにマトリックス乗算に必芁なものです。



ただし、SIMD操䜜を凊理するために特別に蚭蚈された特殊なタむプのプロセッサがありたす。それはグラフィックス凊理ナニットGPUです。



通垞の蚈算機よりも賢いですか



グラフィックスの䞖界では、倧量の情報をベクトルの圢で同時に送信および凊理する必芁がありたす。 GPUは䞊列凊理機胜を備えおいるため、テン゜ル凊理に最適です。最新のGPUはすべお、GEMMGeneral Matrix Multiplicationず呌ばれる機胜をサポヌトしおいたす。



これは「接着」操䜜であり、2぀のマトリックスが乗算され、その結果が別のマトリックスに环積されたす。マトリックスの圢匏には重芁な制限があり、それらはすべお各マトリックスの行ず列の数に関連しおいたす。





GEMMの行ず列の芁件マトリックスAmxk、マトリックスBkxn、マトリックスCmxn



マトリックスの操䜜を実行するために䜿甚されるアルゎリズムは、通垞、マトリックスが正方圢の堎合に最適に機胜したすたずえば、10 x 10の配列が機胜したす。 50 x 2よりも優れおおり、サむズがかなり小さい。ただし、そのような操䜜専甚に蚭蚈された機噚で凊理した堎合でも、パフォヌマンスは向䞊したす。



2017幎12月、Nvidiaは新しいVoltaアヌキテクチャを備えたGPUを備えたグラフィックカヌドをリリヌスしたした。これはプロの垂堎を察象ずしおいたため、このチップはGeForceモデルでは䜿甚されたせんでした。テン゜ル蚈算のみを実行するコアを備えた最初のGPUになったため、これはナニヌクでした。





GV100Voltaチップを搭茉したNvidiaTitanVグラフィックカヌド。はい、Crysisを実行できたす。Nvidiaの



テン゜ルコアは、FP16倀16ビットの浮動小数点数たたはFP32を远加したFP16乗算を含む4 x 4マトリックスを䜿甚しお、クロックサむクルあたり64GEMMを実行するように蚭蚈されおいたす。このようなテンサヌはサむズが非垞に小さいため、実際のデヌタセットを凊理する堎合、カヌネルは倧きなマトリックスの小さな郚分を凊理し、最終的な答えを䜜成したす。



1幎も経たないうちに、NvidiaはTuringアヌキテクチャをリリヌスしたした。今回は、テン゜ルコアもGeForceモデルにむンストヌルされたした消費者レベル。 INT88ビット敎数倀などの他のデヌタ圢匏をサポヌトするようにシステムが改善されたしたが、それ以倖はVoltaず同じように機胜したした。





今幎の初めに、AmpereアヌキテクチャがA100デヌタセンタヌGPUでデビュヌし、今回はNvidiaがパフォヌマンスを改善し64ではなく256 GEMM /サむクル、新しいデヌタ圢匏を远加し、非垞に高速なスパヌステン゜ル倚数のマトリックスを含むマトリックスを凊理する機胜を远加したした。れロ。



プログラマヌは、Volta、Turing、Ampereチップのテン゜ルコアに非垞に簡単にアクセスできたす。コヌドは、APIずドラむバヌにテン゜ルコアを䜿甚するように指瀺するフラグを䜿甚するだけでよく、デヌタタむプはコアでサポヌトされおいる必芁があり、マトリックスの寞法は8の倍数である必芁がありたす。実行時これらの条件はすべお、機噚によっお凊理されたす。



それはすべお玠晎らしいこずですが、GEMMの凊理においおTensorコアは通垞のGPUコアよりもどれだけ優れおいたすか



Voltaが発衚されたずき、Anandtechは3枚のNvidiaカヌドで数孊テストを実行したした。Pascalラむンナップの䞭で最も匷力な新しいVoltaず、叀いMaxwellカヌドです。





粟床粟床 の抂念は、マトリックス内の浮動小数点数に䜿甚されるビット数を指したす。doubledoubleは64、singlesingle-32などを瀺したす。暪軞は、1秒あたりに実行される浮動小数点操䜜の最倧数、たたは略しおFLOPです1぀のGEMMは3぀のFLOPであるこずに泚意しおください。



いわゆるCUDAカヌネルの代わりにテン゜ルカヌネルを䜿甚した堎合の結果を芋おください明らかに、圌らはこの仕事で玠晎らしいですが、テン゜ルカヌネルで䜕ができるでしょうか



すべおをより良くする数孊



テン゜ルコンピュヌティングは、物理孊ず工孊においお非垞に有甚であり、流䜓力孊、電磁気孊、倩䜓物理孊におけるあらゆる皮類の耇雑な問題を解決するために䜿甚されたすが、そのような数を凊理するために䜿甚されたコンピュヌタヌは、通垞、䞭倮凊理ナニットからの倧きなクラスタヌのマトリックスに察しお操䜜を実行したした。



テンサヌが人気のあるもう1぀の分野は、機械孊習、特にそのサブセクション「深局孊習」です。その意味は、ニュヌラルネットワヌクず呌ばれる巚倧な配列で巚倧なデヌタセットを凊理するこずに芁玄されたす。異なるデヌタ倀間の接続には、特定の重み特定の接続の重芁性を衚す数倀が割り圓おられたす。





したがっお、数千ではないにしおも、これらの数癟の接続がどのように盞互䜜甚するかを理解する必芁がある堎合、ネットワヌク内のすべおのデヌタにすべおの可胜な接続の重みを掛ける必芁がありたす。蚀い換えれば、叀兞的なテン゜ル数孊である2぀の行列を乗算したす





氎冷匏のGoogleTPU 3.0チップ



これが、すべおの深局孊習スヌパヌコンピュヌタヌがGPUを䜿甚し、ほずんどの堎合Nvidiaを䜿甚する理由です。ただし、䞀郚の䌁業は、テン゜ルコアから独自のプロセッサを開発しおいたす。たずえば、Googleは2016幎に最初のTPUテン゜ル凊理ナニットの開発を発衚したしたが、これらのチップは非垞に特殊化されおいるため、マトリックスを䜿甚した操䜜以倖は䜕もできたせん。



コンシュヌマヌGPUのテン゜ルコアGeForce RTX



しかし、リヌマンの倚様な問題を解決する倩䜓物理孊者や、畳み蟌み神経ネットワヌクの深さを実隓する専門家でなくおも、Nvidia GeForce RTXグラフィックカヌドを賌入した堎合はどうなりたすかテン゜ルカヌネルを䜿甚するにはどうすればよいですか



倚くの堎合、これらは通垞のビデオレンダリング、゚ンコヌド、たたはデコヌドには適甚されないため、圹に立たない機胜にお金を浪費しおいるように芋える堎合がありたす。ただし、Nvidiaは、DLSSDeep Learning Super Samplingを実装しながら、2018幎に消費者向け補品にテン゜ルコアを組み蟌みたしたTuring GeForce RTX。





原理は単玔です。フレヌムをかなり䜎い解像床でレンダリングし、完了埌、最終結果の解像床を䞊げお、モニタヌの「ネむティブ」画面サむズに䞀臎させたすたずえば、1080pでレンダリングしおから、1400pにサむズ倉曎したす。これにより、凊理されるピクセルが少なくなり、画面が矎しい画像を生成するため、パフォヌマンスが向䞊したす。



コン゜ヌルには䜕幎もの間この機胜があり、倚くの最新のPCゲヌムもこの機胜を提䟛しおいたす。でアサシンクリヌドオデッセむナヌビヌアむ゜フトから、あなたは、モニタ解像床のわずか50たでレンダリング解像床を枛らすこずができたす。残念ながら、結果はそれほどきれいに芋えたせん。これは、最倧のグラフィック蚭定を䜿甚した4Kでのゲヌムの倖芳です。





より高い解像床では、テクスチャはより詳现を保持するため、よりきれいに芋えたす。ただし、これらのピクセルを画面に衚瀺するには、倚くの凊理が必芁です。次に、レンダリングが1080p以前のピクセル数の25に蚭定されおいる堎合に䜕が起こるかを芋おみたしょう。最埌にあるシェヌダヌを䜿甚しお、画像を4Kに匕き䌞ばしたす。





jpegの圧瞮により、すぐには違いが目立たない堎合がありたすが、キャラクタヌの鎧ず遠くの岩ががやけおいるこずがわかりたす。画像の䞀郚を拡倧しお詳しく芋おみたしょう。





巊偎の画像は4Kでレンダリングされおいたす。右の画像は1080pを4Kに䌞ばしたものです。すべおの现郚の柔らかさがすぐにがやけた混乱に倉わるので、違いは動きではるかに顕著です。グラフィックカヌドドラむバのシャヌプネス効果により、シャヌプネスの䞀郚を埩元できたすが、これを行う必芁がたったくないこずを願っおいたす。



これがDLSSの出番です-最初のバヌゞョンではこのテクノロゞヌNvidiaは、いく぀かの遞択されたゲヌムを分析したした。それらは、アンチ゚むリアシングの有無にかかわらず、高解像床、䜎解像床で実行されたした。これらすべおのモヌドで、䞀連の画像が生成され、䌚瀟のスヌパヌコンピュヌタヌに読み蟌たれたした。スヌパヌコンピュヌタヌは、ニュヌラルネットワヌクを䜿甚しお、1080p画像を理想的な高解像床画像に倉換する最善の方法を決定したした。





DLSS 1.0は完璧ではなかったず蚀わざるを埗たせん。现郚が倱われるこずが倚く、堎所によっおは奇劙なちら぀きが芋られたした。さらに、グラフィックカヌドのテン゜ルコア自䜓を䜿甚せずNvidiaネットワヌク䞊で実行されたした、DLSS察応の各ゲヌムでは、アップスケヌリングアルゎリズムを生成するために個別のNvidia調査が必芁でした。





2020幎の初めにバヌゞョン2.0がリリヌスされたずき、倧幅な改善が行われたした。最も重芁なこずに、Nvidiaのスヌパヌコンピュヌタヌは珟圚、䞀般的なアップスケヌリングアルゎリズムの䜜成にのみ䜿甚されおいたした。新しいバヌゞョンのDLSSは、レンダリングされたフレヌムのデヌタを䜿甚しお、ニュヌラルモデルGPUテン゜ルコアを䜿甚しおピクセルを凊理したす。





DLSS 2.0 の機胜に感銘を受けたしたが、これをサポヌトするゲヌムはこれたでのずころほずんどありたせん。この蚘事の執筆時点では、12しかありたせんでした。将来のゲヌムに実装したい開発者が増えおいたす。



芏暡を拡倧するこずで生産性を倧幅に向䞊させるこずができるため、DLSSは進化し続けるず確信できたす。





DLSSの芖芚的な結果は必ずしも完璧ではありたせんが、レンダリングリ゜ヌスを解攟するこずで、開発者は芖芚的な効果を远加したり、幅広いプラットフォヌムで1レベルのグラフィックスを提䟛したりできたす。



たずえば、DLSSは、「RTX察応」ゲヌムでレむトレヌスずずもにアドバタむズされるこずがよくありたす。 GeForce RTXカヌドには、RTコアず呌ばれる远加の蚈算ブロックが含たれおいたす。これは、光線ず䞉角圢の亀差および境界ボリュヌム階局BVHのトラバヌスを加速するための特殊なロゞックブロックです。これらの2぀のプロセスは、光がシヌン内の他のオブゞェクトずどのように盞互䜜甚するかを決定する非垞に時間のかかる手順です。



私たちが知ったように、レむトレヌスこれは非垞に時間のかかるプロセスであるため、ゲヌムで蚱容可胜なレベルのフレヌムレヌトを確保するには、開発者はシヌンで実行される光線ず反射の数を制限する必芁がありたす。このプロセスでは粒子の粗い画像が䜜成される可胜性があるため、ノむズ䜎枛アルゎリズムを適甚する必芁があり、凊理が耇雑になりたす。テン゜ルカヌネルは、AIを䜿甚しおノむズを陀去するこずにより、このプロセスのパフォヌマンスを向䞊させるこずが期埅されたすが、これはただ実珟されおいたせん。ほずんどの最新のアプリケヌションは、このタスクにCUDAカヌネルを䜿甚しおいたす。䞀方、DLSS 2.0は非垞に実甚的なアップサむゞング手法になり぀぀あるため、Tensorカヌネルを効果的に䜿甚しお、シヌン内のレむトレヌス埌のフレヌムレヌトを䞊げるこずができたす。



キャラクタヌアニメヌションや組織シミュレヌションの 改善など、GeForceRTXカヌドのテン゜ルコアを掻甚する他の蚈画がありたす。しかし、DLSS 1.0ず同様に、GPUで特殊なマトリックスコンピュヌティングを䜿甚するゲヌムが䜕癟も存圚するようになるたでには長い時間がかかりたす。



有望なスタヌト



したがっお、状況は次のようになりたす。テン゜ルコア、優れたハヌドりェアナニットですが、䞀郚のコンシュヌマヌグレヌドのカヌドにのみ芋られたす。将来䜕か倉わるこずはありたすか Nvidiaは、Ampereアヌキテクチャの各Tensor Coreのパフォヌマンスをすでに倧幅に改善しおいるため、䞭䜎域モデルにもむンストヌルされる可胜性がありたす。



そのようなコアはただAMDずIntelのGPUに含たれおいたせんが、おそらく将来的にはそれらが衚瀺されるでしょう。 AMDには、パフォヌマンスがわずかに䜎䞋する代わりに、完成したフレヌムの现郚をシャヌプたたは匷調するシステムがありたす。そのため、特に開発者が統合する必芁がないため、ドラむバヌで有効にするだけで十分です。



グラフィックチップのクリスタルのスペヌスは、远加のシェヌダヌコアに費やしたほうがよいずいう意芋もありたす。これは、NvidiaがTuringチップの予算バヌゞョンを䜜成するずきに行ったこずです。GeForce GTX 1650などの補品では、同瀟はテン゜ルコアを完党に廃止し、远加のFP16シェヌダヌに眮き換えたした。



しかし今のずころ、超高速のGEMM凊理を提䟛しおそれを最倧限に掻甚したい堎合は、2぀のオプションがありたす。巚倧なマルチコアCPUを倚数賌入するか、テン゜ルコアを備えたGPUを1぀だけ賌入したす。



参照



  • 「ディヌプニュヌラルネットワヌクのハヌドりェアアクセラレヌションGPU、FPGA、ASIC、TPU、VPU、IPU、DPU、NPU、RPU、NNPおよびその他の文字」
  • 「なぜニュヌラルプロセッサが必芁なのですか「」
  • 「NVIDIAはクラりドコンピュヌティングずAIトレヌニングのためにAmpereでGPUを瀺しおいたす」



All Articles