汗かきAI開発

NVIDIA V100を4万円代で借りた話など。

GPUクラウド比較、NVIDIA V100を4万円代で借りた話。最終的に着地した激安ホスティングサーバー会社について

国内と海外でハイスペックなNVIDIA GPUサーバを探し、安価なプランを見つけました。

 

・前半:サーバ探しの回想

・中盤:費用の比較

・後半:最終的に着地した激安ホスティングサーバー会社について

・纏め:実際に運用してみた結果

 

◆サーバ探しの回想

開発中のAIでNVIDIAGPU搭載のサーバーが必要で2021年の春に探すことになりました。

 

低スペックで動くだろうと思い国内で探したら、Radeon RX Vega 56でも月額13万円

 

無料お試しがあったので、サーバを構築してAIを動かしてみたところ、結局、スペックが足りずAIが動かず。。

 

スペックを上げるべく新たなサーバを国内のプロバイダーで調べるとNVIDIA V100月額20~25万円!

 

最安で9万円!これは予算ギリギリでしたが、詳しく見ると初期費用で85万!が必要という。。

 

売上があるかどうか分からない、ましてや開発段階で毎月10万も20万も払えません

 

そこで、API等を探す時などと同じで、結局、海外で探すことになりました。

(ツールやAPIなど、たいてい海外の方が安いのです。)

 

探してみたところ、米国、英国、ウクライナリトアニア、インド、パキスタン、フランスで安価なGPUサーバの専用ホスティングプランを見つけました。

 

サーバーのプロバイダーは、それぞれに特徴があるので、Excelでスペックと月額費用のリストを黙々と作り比較します。

 

弊社は、既に、ウクライナや英国の会社等とサービスの利用契約を結び良い関係が築けていたので海外の会社にあまり不安がありません。

 

しかし、サーバとなると話は別です。

 

判断材料に、価格だけではなく下記も含めました。

 

・クレジットカードで決済しても大丈夫?!

・政情は大丈夫?!紛争は?!デフォルトはしないか?!

・通信速度は?!

・トラブル対応は大丈夫?!

・優しい?!

・テックな人過ぎたら嫌だ

・英語大丈夫?!

・電話で英語は話したくない

・セキュリティ大丈夫?!

 

不安のない契約をしたので、

Google検索を駆使して掲示板等で会社の評判やお国事情をチェックします。

 

あれこれ調べ、3社に絞り込みました。

 

そして、実際に使ってみました。

(無料お試し、もしくは時間や日単位の従量課金がある)

 

・最終選考

結局、3社とも使い勝手はいい感じで、最後は、価格、GPUの品揃え、カスタマイズ、拡張性、会社の体制、ビジョン等々でFluidStackを選ぶことになりました。

 

◆費用の比較

1ヶ月分の料金
  V100s 32GB V100 16GB V100 PCle 16GB A100 40GB RTX A5000 24GB RTX 4000 8GB P100 製品数
FluidStack
70,370円
58,566円
53,913円
119,793円
85,806円
32,575円
 
11
SOROBAN
179,946円
 
 
223,133円
 
 
 
6
Kagoya
 
 
 
 
 
 
 
6
さくら
 
 
 
 
 
 
9.9万円(初期85.8万円)
3

※各社、変更する可能性あり

 

ずいぶん、歯抜けな表になっていますが、FluidStack以外はラインナップが限定的です。

 

ここで、「むむむ、NVIDIA V100が、4万円代じゃないの?!」と思う方もご安心ください、47,670円で借りています。(半年使うと53,913円→47,670円になる。)

 

 

◆最終的に着地した激安ホスティングサーバー「FluidStack」について

 

GPUのラインナップが豊富で、リージョンも選べ、とにかく安いのです。

 

しかし、テストした時、アカウントを作るとマーケティングの担当から「身分証を提出しなさい」と連絡がありました。

 

私がインターリンクVPN、固定IPサービスでサーバセンター経由からアクセスをしていたので、同業者だと疑われたようでした。

 

こちらも安いGPUサーバを使えるチャンスを逃すまいとフレンドリー且つ紳士的な文章で、パスポートをスキャンして送りました。

 

結局、誤解が解けて、マーケティング担当と距離が縮まりました。

 

これはいいチャンスと思い、どんな人が運営しているのか、知っておくのも悪くないので、(Google翻訳を駆使して)いろいろとメールで質問しました。

 

逆に、マーケティング担当は、事業展開のヒントが欲しいらしく日本や他国のGPUホスティング会社の価格や使い勝手等々の質問を受けました。

 

いろいろ教えるかわりに、多くのことを教えて貰いました。

 

彼らは、価格競争力、サービス、スタッフ、技術に自信があり戦略的に事業の拡大を進めている印象でした。

 

技術的なことは、「Aさん」に相談しなさいと言うので、作業面は、Aさんとやり取りすることになります。

 

まあ、こちらでサーバにモジュールやソースコードを入れてどんどん進めてしまうので、Aさんの出番は、あまりないのですが。

(一度、無限ループでやらかして緊急でサーバを再起動してもらいましたが)

 

あと、Iさんという上場請負人、私が上場させます!みたいな仕事出来るぜ的な女性も紹介頂きました。

バリッバリッな感じです。

スーツが似合う美人でショートヘア(イメージ)

 

FluidStackの特徴としては

 

GPUマシン 11製品 30,000台以上

・レベル「ティア3 or ティア4」のセキュリティー

・コストが1/3~1/5になる

・グローバル企業も利用

・1時間単位での利用も可能

・スタッフがフレンドリー(Hi, hello!な感じでDearなど使わない)

・コンパネで申し込みと解約が完結出来る

・カスタマイズオーダーが可能

・日本から遠いサーバでも速い

 

纏め:実際に運用してみた感想

実際に、FluidStackNVIDIA V100を半年使っていますが安定稼働しおり、

申し込みから、設定までシンプルでしたが、解約も、GeForce RTX4000のテストをした際に、コンパネで簡単な操作でキャンセルが出来ました。

使い勝手の良い会社だと思っています。

(気軽に使えるので、最近、NVIDIA Tesla A100も試したくなっています)

 

突っ込んだ質問などがある方は、Hideまで、メールください。

 

私としては、将来的に、FluidStackと何か事業をしたいと考えておりコミュニケーションを取りながらいろいろ勉強が出来たらと考えています。

 

長くなりましたが、今後のサーバー選択の参考になれば嬉しいです。

 

 

PytorchのGPUメモリの枯渇を解消する

開発中のAIチャットのユーザーをPythonで30人作り、チャットを繰り返すと徐々に重くなり処理しきれない状態になることが分かり、調べると、

Pytorchでは、計算履歴を保存しGPUメモリを枯渇してしまうとのこと。

(Pytorchは、ディープラーニングフレームワークのひとつ)

 

AIが計算する度にGPUメモリを解放し空き容量を回復させる必要がある。

 

2つの対策で回避する作戦。

 

1 計算履歴を保存しない設定で計算。

→ with torch.no_grad(): の中で実行。

 

pytorch.org

 

2 使われていないメモリを解放する

→ torch.cuda.empty_cache でDelする

 

pytorch.org

 

 

念には念を入れて、上記2つをAIチャットがメッセージを生成するClassに充て、

GPU使用率をモニタリングします。

 

GPU使用率を1秒毎にCSV形式で出力


nvidia-smi \
  --query-gpu=timestamp,name,utilization.gpu,utilization.memory,memory.used,memory.free,memory.used\
  --format=csv \
  -l 1

 

timestamp, name, utilization.gpu [%], utilization.memory [%], memory.used [MiB], memory.free [MiB], memory.used [MiB]
2021/12/14 00:15:03.070, Tesla V100-PCIE-16GB, 51 %, 20 %, 6951 MiB, 9209 MiB, 6951 MiB
2021/12/14 00:15:04.070, Tesla V100-PCIE-16GB, 0 %, 0 %, 6951 MiB, 9209 MiB, 6951 MiB
2021/12/14 00:15:05.071, Tesla V100-PCIE-16GB, 55 %, 22 %, 7567 MiB, 8593 MiB, 7567 MiB
2021/12/14 00:15:06.071, Tesla V100-PCIE-16GB, 0 %, 0 %, 6951 MiB, 9209 MiB, 6951 MiB
2021/12/14 00:15:07.072, Tesla V100-PCIE-16GB, 60 %, 24 %, 8221 MiB, 7939 MiB, 8221 MiB
2021/12/14 00:15:08.073, Tesla V100-PCIE-16GB, 54 %, 22 %, 7699 MiB, 8461 MiB, 7699 MiB
2021/12/14 00:15:09.073, Tesla V100-PCIE-16GB, 0 %, 0 %, 6951 MiB, 9209 MiB, 6951 MiB
2021/12/14 00:15:10.074, Tesla V100-PCIE-16GB, 56 %, 22 %, 7637 MiB, 8523 MiB, 7637 MiB
2021/12/14 00:15:11.074, Tesla V100-PCIE-16GB, 59 %, 24 %, 7591 MiB, 8569 MiB, 7591 MiB

 

memory.free が、元の9209MiBに戻っていることが分かります。

utilization.gpu(GPU使用率)も、60%ほどなのでハードのスペックも丁度良さそうです。

 

 

 

 

ハイブリッドアプリとは?開発ツールは?

ハイブリッドアプリの開発は、ツールで楽々という話

 

アプリを作る必要があり、でもネイティブアプリ開発の経験がなく、開発会社さんにお願いしようか気合で内製するか悩んでいました。

 

そう言えば「ウェブビューアプリ」という楽そうなのがあったなぁと思い検索すると、トレンドは、「ハイブリッドアプリ」に変わっていることを知りました。

 

「ハイブリッドアプリ」って何??という話ですよね。

電気とガソリンで動くアプリ??

 

調べるとネイティブアプリとWebビューアプリの間に位置すると書いてありました。

なんのこっちゃ。。

 

まあ、何だか良さそうということで、開発方法を調べるとなんとWebでHTMLを作ってビルドすればバイナリファイルが出てくる「monaca」というサービスがあるではありませんか?

もはや、自動運転車。

 

無料だし、分かりやすそうということで「monaca」を使うことにしました。

アプリ開発アレルギーのため、深追いせず、他は、調べてません。

 

 

ja.monaca.io

 

作ってみて分かったのですが、ウェブビューは、アプリからiframeのようにただサイトを表示するのに対して、ハイブリッドアプリは、HTMLファイルをインクルードさせたバイナリなのでネイティブアプリ感はあるのです。

 

やることは、HTML、JS、CSSを書くだけです。

元々あったハイブリッドアプリを簡単に作れるツール「Cordova」をGUI化したのが、「monaca」ということでした。

 

なので、端末のカメラを使いたい、マイクを使いたいなどの時には、Cordovaのプラグインをプロジェクトにインストールします。

 

MATRIXで、トリニティが「タンク!ヘリコプターの操作方法をインストールして」と叫んだシーンを思い出しました。(思い出す映画が古い。。)

 

 

Cordovaは、利用者が多いので、ネット上に記事がたくさんあり躓いた時に助かりました。

 

参考になりました

note.com

 

Cordova、つらい時もありますけどね。。課金回りとか。。課金回りとか。。課金回りとか。。

 

年々、AppleGoogleウェブビューアプリが審査に落ちやすくなり、ハイブリッドアプリが流行ったのではと思います。

端末のネイティブ機能も使えますし。

 

開発、楽でしたー

 

サーバ監視ツールをいろいろ試し、現在は、Mackerel (マカレル)に。

外形監視ツールの話

 

開発しているAIのボットが、いよいよ(限定)公開することになった際、死活監視はどうしようかと少々考えました。

 

公開相手が、クラウドファンディング会社、VC、OEMで提供したい上場企業などで、担当者が、サイトにアクセスした時に「Not Found 404」なんて表示されたらお終いです。

 

AIは、1分間隔でAIにPOSTしレスポンスがなかったら、プロセスを再起動、NGINXのWebサーバもHTTP レスポンス200を見る感じのpythonのプログラムで死活監視させました。

 

参考にさせて頂きました:

pythonで、urlの死活監視を行い、NGであれば、sendmail を外部コマンドで通知

 

でも、前述のpython監視プロセスが死んでいた時のことを考えると、更に、サーバの外からの監視が必要でした。

 

アクセス急増時や負荷テスト、サーバのCPUやメモリなどのリソース監視も必要なのでサードパーティーの監視ツールを探しました。

 

いろいろ試しました。(もちろん、無料で使えるものを中心に)

 

営業妨害になってもいけないので、採用しなかった会社のツール名は控えます。

 

結局、Mackerel(マカレル)にしました。

ja.mackerel.io

 

結局、毎月2000円ほど発生していますが、サーバのコマンドからMackerelのコードを実行すると、その瞬間からハードウェアの情報を拾ってくれ、コンパネでリアルタイムに確認出来る点が決め手になりました。

 

それと、HTTPレスポンスで200が返ってこなかったら、何かが死んでますとメールに通知が来ます。

 

LoadingAVG

Loadavg

リソース分析には、Loadavgが重宝します。

Loadavgは、システム全体の負荷状況を表し、CPU実行待ちのプロセスの数が増加すると上昇します。

 

参考にさせて頂きました:

Mackerel でみる Linux システムメトリック項目の見方・考え方 - えいのうにっき

 

地味に毎月2000円ほど支払っていますが、当面、このツールにお世話になります。