2017年06月28日

Tensorflow-gpu

マックでここのところ、 Tensorflowをいじっていたが、RのTensorflowはGPU版がないので、PythonのTensorflow-gpuを使ってみた。TensorflowはCUDAを使うがCUDAはNvidiaのGPUにしか対応していない。幸いなことに私のMBPレチナは5年前のモデルなのでNvidiaのGPUが搭載されている。性能は当然に劣るが、それでもTensorflowのGPUバージョンがちゃんと動く。
GoogleのTensorflowにある手書き数字識別のMNISTのサンプルプログラムをそのままだと、GPUのメモリが足りなくてmemory exhaustedエラーを出すが、ちょっとプログラムを工夫するとちゃんと動く。
それでも、さすがにCPUバージョンより10倍位は高速に動く。

最近のGPUはPascalアーキテクチャになり、性能も物凄い。こんなものが一般にはゲーム用途で売られているのが笑ってしまう。w
ネットの普及を促進したのがエロ情報にあったのと近いものであろう。w
今のGTX1080クラスのGPUはテラフロップスの性能があるが、スパコンがテラフロップスを超えたのはそんなに昔のことではない。1997年くらいだったろうから丁度20年くらい前か。それがニュースになっていたことを、少し覚えてる。

今のPascalアーキテクチャは、16ビット演算、つまり半精度演算が可能となっていて、まさに DeepLearningのために開発されたようなGPUといえる。DeepLearningでは半精度演算でも精度が変わらないことが分かったために16ビット演算が可能なように作られた。これだけで単精度演算に比べて計算処理速度も2倍になるしメモリーの活用でも2倍有利だろう。
ただし、Tensorflowは半精度演算にまだ対応していないようだ。これは  cuDNNが対応していないのだろうか?
GTX1080であっても9テラフロップスの性能がある。こんなものが10万円もしないのであるから、凄い時代になったものだ。これからのAI社会はGPUによって創られていくのだろう。
posted by libertarian at 21:07| 東京 ☁| Computer | このブログの読者になる | 更新情報をチェックする