Monthly Archives: 9月 2011

Amazon EC2のGPUインスタンス

ひさしぶりにGPGPUがいじりたくなったが、FermiコアのVGAが無かった、かつ、追加するには電源が足りなかったのでAmazon EC2のクラスタ GPU インスタンスを使ってみた。
導入はとても簡単。(下記サイトを参考にした。)
http://stacksmashing.net/2010/11/15/cracking-in-the-cloud-amazons-new-ec2-gpu-instances/
最初にAmazon EC2でインスタンスの立ち上げ。

  1. Amazon WebServicesに申し込む。
  2. AWS ManagerからEC2を選んで、US WEST(Virginia)でLaunch Instance。
  3. インスタンスタイプは“Cluster Instances HVM CentOS 5.5 (AMI Id: ami-aa30c7c3)”
  4. 秘密鍵のダウンロード、securityの設定などを行い、インスタンスの立ち上げ。

次にSSHでインスタンスに接続し、下記コマンドで開発環境を整える。(CUDA SDKはもっと新しいバージョンが出ているので本来ならば最新版を使うべきだと思う、が、とりあえずの実験なので上記のサイトに従った。)

wget http://developer.download.nvidia.com/compute/cuda/3_2/sdk/gpucomputingsdk_3.2.12_linux.run
chmod +x gpucomputingsdk_3.2.12_linux.run
./gpucomputingsdk_3.2.12_linux.run
yum install automake autoconf gcc-c++

やっていることはSDKのダウンロードとインストール、makeやgccの導入。
次にライブラリにパスを通す。

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64

これで開発環境はそろい、「~/NVIDIA_GPU_Computing_SDK/C/」のなかの適当なサンプルをコンパイルして実行できるようになる。
SDKのバージョンが2のときに作った二項モデルでのオプションプライシングのプログラムも普通に動いた。CPUでの演算と比べて15倍くらい速い。このインスタンスはCPUもかなり強力なのでまずまずの値ではないかと思う。(二項モデルはGPUのアクセラレーションが効きにくい上、試したのはFermiより前のGPUに最適化したプログラム。)
思ったより簡単・安価に開発環境が整えられた。もうしばらく遊んでみようと思う。
(料金の詳細は http://aws.amazon.com/jp/ec2/#pricing を参照。イメージとして計算インスタンスは200円/時間 程度、ストレージは10円/GB/月 程度で、計算インスタンスを止めている間はストレージの料金しかかからない。)