|
Tweet
|
| NVIDIA® GPU Deep Learning (深層学習) 開発環境 構築情報 |
|
GPU ハードウェア要件 Turing Architecture GPUs |
プロセッサ | ドライバー | CUDA Toolkit | DIGITS | cuDNN |
|---|---|---|---|---|---|
| Frameworks | |||||
| Caffe | theano | torch | BIDMach | Keras |
Another Frameworks |
|
株式会社アークブレインでは、Deep Learning(深層学習)を研究するための カスタム・オーダーメイドの ワークステーション(GPU × 1~4)や、サーバー(GPU × 1~4)を販売しております。
Intel® Xeon® Scalable Processor 搭載 Arcbrain オリジナル サーバー、ワークステーション製品 最新ラインナップ GPUを使用せず、Intel® Xeon® / Core™ Processor、インテル® Parallel Studio、インテル® MKL(Math Kernel Library) の DNN(Deep Neural Network) プリミティブ、インテル® Distribution for Python® による Deep Learning(深層学習)の開発環境を構築することも可能です。 お気軽に弊社までお見積り依頼をお願いいたします。 ご希望の仕様に合った構成のカスタマイズに、ご対応させていただきます。 |
| NVIDIA® Accelerated Computing Developer Program | |||
|---|---|---|---|
|
NVIDIA® Deep Learning の開発環境(NVIDIA® CUDA、NVIDIA® DIGITS™、cuDNN等)を入手するためには、まず、Accelerated Computing Developer Program に登録する必要があります。 https://developer.nvidia.com/accelerated-computing-developer
|
|||
| GPU バードウェア要件 - Hardware Requirements | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
NVIDIA® GPU Compute Capability |
NVIDIA® GPU(Graphics Processing Unit) のハードウェア要件としまして、Deep Learningに必要な、DIGITS、cuDNN や Caffe を動作させるためには、CUDA のバージョンは 7.0 以上、 Kepler microarchitecture 以降のアーキテクチャの GPU で、Compute Capability が 3.0 以上である必要があります。 Fermi アーキテクチャー の GPU は、Compute Capability が 2.0 / 2.1 であるため、残念ながら Deep Learning 用には使用することができません。 Tesla GPU である C2075 / C2070 / C2050 は、Fermi アーキテクチャー であり、Compute Capability が 2.0 であるため、同様に Deep Learning 用には使用することができません。 GeForce GPUs with Kepler or higher アーキテクチャー (CUDA 7.5 Installation Guide) CUDA 7.0 and a GPU of compute capability 3.0 or higher are required. (cudnn_install.txt) Kepler は 3.0 ~ 3.5、Maxwell は、5.0 以上となりますので、勿論 Deep Learning 開発様に使用することが可能です。 Pascal アーキテクチャー は、Compute Capability が 6.0 以上となります。 Turing アーキテクチャー は、Compute Capability が 7.0 以上となります。 https://developer.nvidia.com/cuda-gpus
http://docs.nvidia.com/cuda/cuda-c-programming-guide/#compute-capability
http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#compute-capabilities
※NVIDIA® Deep Learning (深層学習) 開発環境に対応したGPUの例 Tesla K20 (3.5) / K40 (3.5) / K80 (3.7) / M40 (5.2) Quadro 410 (3.0) / K420 (3.0) / K600 (3.0) Quadro K2000 (3.0) / K4000 (3.0) / K4200 (3.0) / K5000 (3.0) / K5200 (3.2) / K6000 (3.5) Quadro K620 (5.0) / K1200 (5.0) / K2200 (5.0) Quadro M2000 (5.2) / M4000 (5.2) / M5000 (5.2) / M6000 (5.2) Quadro NVS 510 (3.0) / 810 (5.0) Jetson TK1 (3.2) / Tegra K1 (3.2) / Tegra X1 (5.2) GT 640 [GDDR5] (3.5) / GTX 650 (3.0) / GTX 660 (3.0) / GTX 670 (3.0) GeForce GTX 750 (5.0) / GTX 760 (5.0) / GTX 770 (5.0) / GTX 780 (5.0) GeForce GTX 950 (5.2) / GTX 960 (5.2) / GTX 970 (5.2) / GTX 980 (5.2) GeForce GTX TITAN (3.5) / GTX TITAN Black (3.5) / GTX TITAN Z (3.5) / GTX TITAN X (5.2) NVIDIA Quadro M6000 24GB (5.2, 24GB GDDR5, 3072 Core, 384bit, 317GB/s, 250W, ECC対応, DVI-Ix1, DP1.4x4)
● NVIDIA® Turing™ Microarchitecture RTX GPU 性能比較一覧表
RTX GPU Specification Comparison List(2019年7月22日現在) 【Turing Microarchitecture 詳細情報】
● NVIDIA® Volta™ アーキテクチャー GPU TITAN V (7.0, 12GB HBM2, CUDA 5120 Core, Tensor 640 Core, 1200 - 1455 MHz, 3072 bit, 652.8 GB/s, TDP 250W) ● NVIDIA® Pascal™ アーキテクチャー GPU ・NVIDIA® GeForce® GPU http://www.nvidia.co.jp/object/geforce_family_jp.html CUDA を高速化、最適化するためは、Pascal Architecture に対応した最新の CUDA + ドライバー が理想的 GeForce GTX 1050 (6.1, 4,2GB GDDR5, 768,640 Core, 1354 - 1445 MHz, TDP 75W~) GeForce GTX 1060 (6.1, 6,3,2GB GDDR5, 1280,1152,1024Core, 1506 - 1708 MHz, TDP 120W~) (GTX の付いた GTX TITAN X は、Pascal ではなく、Maxwell アーキテクチャー となりますので、ご注意ください) GeForce TITAN Xp (6.1, 12GB GDDR5x, 3840 Core, 1,582 MHz, 384bit, 547.7GB/s, 12TFLOPS, 7680x4320@60Hz, TDP 250W) GeForce GTX 1080 Ti (6.1, 11GB GDDR5, 3584 Core, 1480 - 1582 MHz, 352bit, 484GB/s, TDP 250W) GeForce GTX 1050 Ti (6.1, 4GB GDDR5, 768 Core, 1290 - 1390 MHz, 128bit, TDP 75W) ・NVIDIA® Quadro® GPU http://www.nvidia.co.jp/object/quadro-jp.html NVIDIA Quadro GV100 (6.0, 32GB HMB2, 5120 Core, 4096bit, 870GB/s, 250W, ECC対応, DP 1.4x4) NVIDIA Quadro GP100 (6.0, 16GB HMB2, 3584 Core, 4096bit, 732GB/s, 235W, ECC対応, DVI-Ix1, DP 1.4x4) NVIDIA Quadro P6000 (6.1, 24GB GDDR5X, 3840 Core, 384bit, 433GB/s, 250W, ECC対応, DVI-Ix1, DP 1.4x4) NVIDIA Quadro P5000 (6.1, 16GB GDDR5X, 2560 Core, 256bit, 288GB/s, 180W, ECC対応, DVI-Ix1, DP 1.4x4) NVIDIA Quadro P4000 (6.1, 16GB GDDR5, 1792 Core, 256bit, 243GB/s, 105W, ECC対応, DP 1.4x4) NVIDIA Quadro P2000 (6.1, 5GB GDDR5, 1024 Core, 160bit, 140GB/s, 75W, ECC対応, DP 1.4x4) NVIDIA Quadro P1000 (6.1, 4GB GDDR5, 640 Core, 128bit, 80GB/s, 47W, ECC対応, Mini DP 1.4x4) NVIDIA Quadro P400 (6.1, 2GB GDDR5, 256 Core, 64bit, 32GB/s, 30W, ECC対応, Mini DP 1.4x3) ・NVIDIA® Tesla™ GPU http://www.nvidia.co.jp/object/quadro-jp.html Tesla V100 (7.0, 5120 Core, 7TFLOPS(DP), 14TFLOPS(SP), 18.7TFLOPS(HP), 112TFLOPS(DL), 32GB CoWoS HBM2 with ECC, 4096 bit, 1230-1380MHz, 900 GB/s) Tesla P40 (6.1, 12TFLOPS(SP), 47TOPS(INT8), 24GB, 346GB/s, 250W, ECC対応) Tesla P4 (6.1, 5.5TFLOPS(SP), 22TOPS(INT8), 8GB, 192GB/s, 50/75W, ECC対応) (SP:Single Precision 単精度, DP:Double Precision 倍精度, HP:Half Precision 半精度) ※NVIDIA® Deep Learning (深層学習) 開発環境に非対応なGPUの例 Tesla C2050 (2.0) / C2070 (2.0) / C2075 (2.0) / M20xx (2.0) Qudro Plex 7000 (2.0) Qudro NVS 310 (2.0) / NVS 315 (2.0) / NVS 4200M (2.1) / NSV 5200M (2.1) GeForce GT 430 (2.1) / GT 430 (2.1) / GT 440 (2.1) / GTS 450 (2.1) / GTX 460 (2.1) GeForce GT 550 Ti (2.1) / GT 560 Ti (2.1) / GTx 570 (2.0) / GTx 580 (2.0) / GTX 590x (2.0) GeForce GT 610 (2.1) / GT 620 (2.1) / GT 630 (2.1) / GT 640 [GDDR3] (2.1) (GeForce GT 640 GDDR3 は、 NVIDIA® のサイトでは 2.1 となっていましたが、 ELSA GeForce GT 640 LP 2GB GD640-2GERGL は、CUDA 「Device Query」 でチックしたところ 3.0 でした) GeForce GT 730 [DDR3,128bit] (2.1) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
搭載してあるNVIDIA®製GPUの種類は、以下のコマンドにより確認ができますので、もし、NVIDIA®製GPUを搭載されている場合は、確認してみてください。
|
||||
|
CPU Central Processing Unit |
■ プロセッサのCore数、Thread数 プロセッサの能力は、勿論、高性能であることが理想的ですが、重たい計算の殆どは GPU で処理されるため、そこそこの性能があれば、問題ありません。 マルチGPUシステムの場合でも、1 GPU 当たり、1 Thread でも何とか動作してくれ、2 Thread あれば、問題ないと思われます。 開発環境を構築するときに、ソースをマルチコアを使って高速にコンパイルすることもありますので、できれば インテル@ Core™ i7 クラスのプロセッサがあれば、理想的だと思われます。決して、インテル@ Core™ i5 クラスのプロセッサでは全く使えないというわけではありませんが、Thread数が8から4に減少してしまいますので、コンパイル時間は、最大2倍の時間がかかってしまう恐れがあります。 インテル@ Core™ i7 プロセッサには、通常のデスクトップ用の 第6世代 Core™ i7-6600 番台(Skylake) と、ハイエンド・デスクトップ用の Core™ i7 6000 番台(Broadwell-E) があります。 デスクトップ・サーバー用に、Intel® Xeon® Processor E3 v5 Family (Skylake、E3-12xx v5) というプロセッサがありますが、デスクトップ用の第6世代 Core™ i7-6600 番台(Skylake)と比較した場合、メモリがECC UDIMM(Error Check and Correct Unbuffered Dual Inline Memory Module) に対応しており、メモリの信頼性が高いというのが、大きな特徴ですが、プロセッサとしての性能はほとんど変わりありません。 ■ プロセッサの「PCI Express レーンの最大数」 注意点としまして、通常のデスクトップ用のプロセッサは、「PCI Express レーンの最大数」が、16しかない点です。 GPUを2本から、最大4本搭載可能なマザーボードがありますが、4本搭載した場合は PCI Express x4 での動作となってしまいます。( x4 * 4 GPU = x16) 尚、PCI Express Gen.(Generation)3.0 は、1レーンあたり 1GB/sec.(一方向あたり) の転送帯域がありますので、x16 の場合は、16GB/sec. という転送帯域となります。 マザーボードに、PCI Express Gen.3.0 x16 のスロットが、2本以上あったとしても、2本のGPUを刺したり、GPU以外の PCI Express カードを取り付けた場合、x8 にレーン数が減ってしまいます。(PC起動時に、マザーボードが自動設定)。また、スロットによっては、形状は x16 ですが、x8 でしか動作しない場合があり、取付時には x16 にGPUが搭載されたかどうかを確認する必要があります。 x8 の動作となりますと、プロセッサとGPU間のデータ転送速度が半分に落ちてしまいます。 一方、ハイエンド・デスクトップ用の インテル® Core™ i7 プロセッサ は、最下位のクラスのものを除いて、インテル@ Xeon@ プロセッサと同様に、「PCI Express レーンの最大数」は40もあります。(Broadwell-E / EPの場合) また、メモリは Quad Channel (メモリは4枚単位で増設) に対応しており、デスクトップ用プロセッサの Dual Channel (メモリは2枚単位で増設) の倍のメモリ転送速度があります。 そのため、2本のGPU迄であれば、各GPUは x16 の速度で動作させることが可能です。 ここで注意していただきたいのですが、一番下位のクラスの Core™ i7- 6800K プロセッサ は、「PCI Express レーンの最大数」が28しかありませんので、2本目のGPUは、PCI Express x8 でしか動作できません。 NVIDIA DIGITS DEVBOX (Deep Learning 開発用のリファレンスPC)で採用されているような、ASUS X99-E WS というマザーボードには、4本の PCI Express 3.0 x16 スロットがありますが、もし、4本のGPUを搭載した場合は、x16 モードでは動作せず、x8 モードで動作することになります。(40 - (8 * 4) = 残り 8 Lane) ●ハイエンド・デスクトップ用の インテル@ Core™ i7 プロセッサの比較 http://ark.intel.com/ja/compare/94456,94196,94188,94189
http://ark.intel.com/ja/products/codename/80341/Broadwell-E
Intel® Xeon® Processor E5 v4 Family の場合は、一番最下位のクラスの「E5-1620 v4」や「E5-2603 v4」でも、「PCI Express レーンの最大数」は40あります。 http://ark.intel.com/ja/products/family/91287/Intel-Xeon-Processor-E5-v4-Family#@Server
DP(Dual Processor)対応のワークステーション、サーバーであれば、40×2=80Lane になりますので、4本のGPUを全て、PCI Express x16 モードで動作させることが可能となります。(80 - (16 * 4) = 16 Lane) また、Intel® Xeon® Processor E5 v4 Family は、ECCに対応した RDIMM(Registered DIMM) に対応しており、1プロセッサあたり、何と 1536GB ものメモリ(128GB 3DS LRDIMM: 128GB × 12枚) を搭載することが可能です。 2CPUであれば、最大3072GBものメモリを搭載することができます。 ■ プロセッサのキャッシュ容量 CPUとGPU間のデータ転送を考慮しますと、プロセッサのキャッシュ容量は、なるべく多い方が理想的です。 一言にキャッシュと言っても、キャッシュには、1次キャッシュ(32KB程度)、2次キャッシュ(256KB程度)、3次キャッシュ(8~55MB程度)がありますが、通常は容量の一番多い3次キャッシュのことを言います。 通常のデスクトップ用の 第6世代 Core™ i7-6600 番台(Skylake)のプロセッサのキャッシュは、僅か 8MB しかありません。 Intel® Xeon® Processor E3 v5 Family (Skylake、E3-12xx v5) も同様です。 ハイエンド・デスクトップ用の Core™ i7 6000 番台(Broadwell-E) の場合は、最下位の i7-6800K でも 15MB あります。(i7-6850K も同じ 15MB) 上位クラスの i7-6900K は 20MB、非常に高価ですが、最上位の i7-6950X は 20MB もあります。 インテル® Xeon® プロセッサ(Broadwell-EP) の場合、UP(Uni Processor)対応の Xeon® E5-1620 v4 / E5-1630 v4 は、僅か 10MB しかありません。 できれば、15MBある E5-1650 v4 や、20MB ある E5-1660 v4 以上を選択したいところです。 DP(Dual Processor)対応の Xeon® E5-26xx v4 プロセッサの場合は、一番最下位の E5-2603 v4 でも 15MB のキャッシュがあります。中には、E5-2623 v4 のように 10MB しかないものもかありますが、E5-2630 v4 以上のプロセッサは、キャッシュが 25MB (最大55MB)もあり、CPU~GPU間の速度は向上するものと考えられます。 ■ プロセッサの動作周波数 プロセッサの動作周波数のことが、一番最後になってしまいましたが、勿論速ければ速い方が理想的です。 しかしながら、深層学習の計算は、プロセッサに処理時間のかかる浮動小数点演算を大量に行わせる訳ではありませんので、あまり大きな問題ではありません。 それよりも、GPUとの間で高速にデータをやりとりすることが重要となりますので、Thread数とか、キャッシュ容量の方を優先してください。 ■ まとめ(プロセッサ) GPUの場合は、Compute Capability は 3.0 以上という条件がありますが、プロセッサの方は厳密な規定はありません。
https://developer.nvidia.com/deep-learning-getting-started 開発環境を構築するのに少々時間はかかってしまい、決して快適な環境とは言えませんが、極端な話、インテル® Core™ i3 プロセッサや、これ以下の仕様の Pentium®、Celeron® プロセッサでも、Deep Learning 開発マシンを構築することは可能です。 そのため、第6世代 Core™ i7-6600 番台(Skylake)や、Intel® Xeon® Processor E3 v5 Family (Skylake、E3-12xx v5)でも、GPUは一枚しか搭載しないという条件であれば、全く問題なく Deep Learning 用のPCとして使うことが可能です。 しかしながら、最初から GPU を 2枚は搭載したいという場合や、将来、2枚に増設するかもしれないという場合は、[PCI Express レーンの最大数]が40レーンある ハイエンド・デスクトップ用プロセッサ(Core™ i7-6800K、5820K を除く) や、 Intel® Xeon® Processor E5-2600 v4 Product Family を選択してください。 GPU を 3枚、4枚 搭載したいという場合は、 Intel® Xeon® Processor E5-2600 v4 Product Family を2基搭載した DP(Dual Processor)サーバーや、100万円を軽く超えてしまう かなり高価なサーバーとなりますが、 Intel® Xeon® Processor E5-4600 v4 Product Family を4基搭載した MP(Multi Processor )サーバーが必要となります。 ※ 参考ページ A Full Hardware Guide to Deep Learning (Tim Dettmers) ※ GPUを搭載していないけど、何とか CPUだけで Deep Learning を体験してみたいという方は、こちらを参考にしてみてください。 GPUなしのNVIDIA DIGITS3で始めるDeepLearning ソースからのコンパイルが必要ですが、DIGITS 4.0 も、GPU無しで動作するはずです。 代表的な Deep Learning の Frameworks である Caffe も、デフォルトでは、GPU無しで動作する設定になっています。 ※ インテル® Xeon® プロセッサや、Xeon® Phi™ x200 プロセッサ(Knights Landing)を使用した場合の Deep Learning 開発に関しての情報はこちらをご覧ください。 |
||
|---|---|---|---|
| NVIDIA® CUDA GPU driver | |||
|---|---|---|---|
| 最新 CUDA GPU ドライバーのインストール |
NVIDIA® CUDA をインストールする前に、必ず NVIDIA® のドライバーのバージョンを確認してください。 最新のアーキテクチャーである Pascal Architecture を採用した GPU を使用した場合、 このアーキテクチャーに対応した最新のドライバーをインストールしませんと、ディープラーニングを高速化、並びに最適化することができないことがあります。 また、Pascal Architecture の GTX 1080 のような 最新のGPU を Linux® や Microsoft® Windows® をインストールした直後は、GPUのドライバーが自動的には入らず、文字入力も操作が重たくなってしまい、満足にできないようなことになってしまうことがあります。 NVIDIA® CUDA をインストールしますと、CUDAに付属の少し古いドライバーに戻ってしまいますが、OSのアップデートが一通り終わりましたら、画面がサクサク動いてくれるように、まず、最新のGPUドライバーをインストールすることをお勧めいたします。 $ cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module 367.35 Mon Jul 11 23:14:21 PDT 2016GCC version: gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3) 各GPU用の最新の Long Lived Driver は以下より、ダウンロードすることができます。 http://www.nvidia.co.jp/Download/index.aspx?lang=jp
Fatal error: Uncaught Error: Undefined constant "php" in /virtual/htdocs/public_html/support/NVIDIA/Deep_Learning/Driver/NVIDIA_Deep_Learning_common_Driver.php:29 Stack trace: #0 /virtual/htdocs/public_html/support/NVIDIA/Deep_Learning/index.php(171): require() #1 {main} thrown in /virtual/htdocs/public_html/support/NVIDIA/Deep_Learning/Driver/NVIDIA_Deep_Learning_common_Driver.php on line 29 | ||