見出し画像

EC2にGPUを追加したいけど思わぬインスタンスタイプの罠が…!

汎用GPU並列計算プログラムCUDAのインストールに時間を食っています…。
ドライバーのインストールでエラーが出るのです。

CUDAに対応したGPUを積んでいるか、

$ lspci | grep -i nvidia

で試したところ、無反応。
そもそもt2タイプのインスタンスにはGPUが積まれてないからCudaをインストールできないのでは…?となりました(追記 : GPU積んでもCUDAはインストール失敗しました)。

で、よく調べてみるとGPUインスタンスのGPUはNVIDIA対応らしい。

じゃあGPU足せばよさげ?、となりました。

GPUを追加できるインスタンスには制限が!

Elastic Graphics(旧Elastic GPU)っていうサービスがAWSにはありまして、EC2にGPUを追加できるのです!
ほんとElasticってワード大好きだなAWS。

で、Elastic GraphicsでGPUを追加しようとしたのですが、
なんとt2.microタイプはサポート外(サポートはM5、M5d、M4、M3、T3 (t3.medium 以上)、T2 (t2.medium 以上)、C5、C5d、C4、C3、z1d、R5、R5d、R4、R3、X1e、X1、H1、I3、D2、P3、P2 )。
んな小さなインスタンスに追加するGPUはねぇ!っていうことなんでしょうか。

まぁt3.mediumインスタンスタイプに変えてからGPU追加すればいいやと思うじゃないですか。
なんと、WindowsOS以外サポート外。
いやー厳しい(当方Amazon Linux)。

インスタンスタイプをGPU型にするしか…!

残された手立てはインスタンスタイプをP2とかG3とか、もともとGPU積んでるものに変えること(やってないけど、たぶんできる)。
ここで問題になるのがお金。
一番安いP2でも0.9USD/h。
常時稼働で月7万円弱。
いやー渋い。

まとめ

なんでWindowsのみサポートなんだろう…。

インスタンスタイプ変えなくても、推論のサーバーは別でAPIサーバーとして持つのは設計上いい気がする。
ただインスタンス間のデータのやり取りで通信が発生してしまうなぁ。

あとDjangoとのパッケージの衝突は避けられる。
まぁそれは仮想環境上手く使えって話だけども…。


事業/アプリ開発日記書いてます!
またお読みになってください!

この記事が気に入ったらサポートをしてみませんか?