Alienware Alpha で nvenc (CUDA) やってみた
Alienware Alpha を知っているか?
1年半ぐらい前に400ドルで買ったコンパクトPC「Alienware Alpha」。縦が6センチぐらいで横は20センチ四方のミニパソコンなのですが、そこそこのGPU (Geforce GTX 860M)を搭載しているんです。で、なぜかxbox 360のコントローラーもついてくるという謎仕様。結構お買い得。後日250ドルほどでSSD換装とメモリ追加(合計8GB)にしています。
せっかくなのでGPUコンピューティング!
で、こいつのビデオチップのGeforce GTX 860M というのはそこそこの能力がありまして、新しい3Dゲームも最高画質設定とかにしなければそこそこ遊べるわけです。(ビデオカードだけで8万円もするような最新のGPUと比べればカスですが・・)
ただ、ゲームをするだけでは勿体ないので、流行りのCUDAをやってみようかと思いました。CUDA先輩、マジハンパねえ・・(はず)。
やったこと
- Ubuntu 14.04をインストールしてデュアルブートにする
- CUDA 8.0 をインストール
- FFMPEG を nvenc を有効化してコンパイル。比較のためx264も有効にしておく
- 動画を変換してみて、本当に速いか確かめる
困ったこと
- UEFIブートでWindowsとUbuntuをデュアルブートにするのに手間取りすぎた。セキュアブートをオフにして、Windows の FastBoot もオフにするべし。bcdedit.exeとかrEFIndとかいろんなものを試しまくって疲弊・・
- CUDAと一緒に入るnvidiaドライバーをインストールするにはubuntuの標準ドライバをblacklistに入れる必要があります。てか、公式ドキュメント読むのが吉。英語怖いけど
- gitでソースを落としてきてconfigureしてコンパイルするだけ。CUDAのheaderとかlibのフォルダを指定する必要があった。最初x264を有効化するのを忘れたのでCUDAしか使えないというffmpegが出来上がってしまい、CPUと速度比較できなかった。コンパイルしなおしました・・
- 特に苦労はなし。ffmpegのオプション?ググるが吉。
変換タスクに使った動画
Aquarium Free footage in mp4, avc format for free download 164.63MB
この熱帯魚の動画(1分44秒, 1080p, 無音)を 720p の h264/mp4動画に変換する
結果
h264_nvenc (CUDA) : 24.904秒
libx264 (CPU): 1分34.766秒
3.8倍ぐらいCUDAが速いという結果になりました。やっぱCUDA先輩ハンパなかったっす。