2020年7月31日金曜日

Bitfusion Server Resource & Client Resource

Bitfusionの導入について投稿しようかと思っていたのですが、こんなもんかと言うくらい簡単なのと、公式のインストールマニュアルが分かりやすいので、今回はBitfusion ServerとClientのリソースについて書いていきます。


<Bitfusion Server>

Bitfusion ServerはOVAファイルで提供されているため、展開はウィザードにしたがうだけなのですが、メモリサイズやvCPUのサイズは環境に合わせる必要があります。
ここでいう環境とは具体的にはGPUの種類と枚数になります。

公式のドキュメントには次のような記載があります。

  1. The minimum size is the aggregate total of GPU memory on all GPU cards passed through, multiplied by a factor of 1.5.
  2. Server compute – minimum cores is the number of GPU cards multiplied by 4

まず、1つ目のメモリサイズについて、Bitfusionサーバのメモリサイズは、搭載しているGPUメモリの1.5倍を割り当てる必要があります。
RecommendのGPUはNVIDIAの V100かT4と記載があるので、それらのGPUを搭載した場合のBitfusion サーバのメモリは次のようになります。

V100
GPUメモリは16 or 32GBなのですが、Bitfusionサーバで32GBメモリ版のV100*2枚を利用する場合は次の計算になります。
 
32GB*2枚*1.5=96GB

T4
T4はメモリサイズが16GBなので、同様に1台のBitfusionサーバで2枚のT4を利用する場合はこちらの計算式です。

16GB*2枚*1.5=48GB
 

2.のvCPUについてはBitfusionサーバに割り当てるGPU数*4を割り当てればOKです。



Bitfusion Clientに割り当てるメモリサイズはアプリケーションに依存してくるので個々の環境に合われる必要がありますが、アプリケーションが一度に利用するGPUメモリサイズの1.5倍ほどが目安となります。



2020年7月17日金曜日

Bitfusion requirements

前回はBitfusionのコンポーネントや基本構成について調べた内容を紹介いたしました。
今回は導入手順のまえに、Requirementを見ていきます。

<vSphere>
まずベースとなるvSphereですが、Bitfusionサーバが稼働するESXi(GPUプール)はvSphere7が必要になります。 噂ではU1からという噂もありましたが、Install GuideにはU1の文字はないので後日確認してみたいと思います。

GPUリソースを利用するBitfusionクライアントはvSphere6.7か7であればいいようなので、既存のvSphere環境が6.7であってもESXiのアップデートを行わずにBitfusionが利用できるようです。


<Client OS>
Bitfusionクライアントをインストールする仮想OSは、現時点ではUbuntuとCentOS、Redhatの3種類になります。 ※ベアメタルは現時点では未サポートです。
 Ubuntu16.04, 18.04
 CentOS7
 RHEL7.4以降
HorizonとかのWindowsでも利用できればCAD VDI環境などにも利用することができるのですが、BitfusionはAIやMLでの利用を想定しているので、このあたりはしょうがないですね。。。
あとはDockerコンテナにもインストールが可能です。



<GPU>
GPUはTeslaのV100かT4がサポートされるようです。ここもやはりAI/MLを想定しているからこのGPUなんだと思います。


<Network>
前回の記事にも書きましたが、Bitfusionはネットワーク経由でGPUリソースを利用するので最低でも10Gbpsで、できればそれ以上のネットワークが必要になります。
 ・10G Ethernet
 ・RoCE

Bitfusionを試した感じだと1msecだとかなり影響がでるなぁ。。。と思っていましたが、
予想以上に低遅延なネットワークが必要で、ノード間で50マイクロ秒もしくはそれ以下だそうです。

クライアントからBitfusionサーバに対して次の通信ポートを開ける必要があります。
通信ポート:56001, 55001-55100, 45201-46225



要件をまとめてみると一番のポイントは高速なネットワークですね。







2020年7月13日月曜日

Bitfusion リリース!

Bitfusionがリリースされました!! 

AIやディープラーニングが引き続き盛り上がっているので、Bitfusionに興味がある人も多いのでないでしょうか。 私もリリースされるのをずっと待ってました!


リリースされたばかりでまだまだ情報も少ないですが、Bitfusionの調べた内容を紹介していきたいと思います。


<特徴>
なんといってもBitfusionの1番の特徴は、ネットワーク経由でGPUリソースを柔軟に割り当てられることです。これまでGPUの仮想化といえば、GPUを搭載したESXiホスト上の仮想マシンにたいして、パススルーやNVIDIAのvGPUなど同一ホスト内のGPU仮想化に限られていたので、ネットワーク経由で自由に割り当てられるのはとても大きなメリットだと思います。
 ✳︎VMwareに買収される前のFlexdirectの時はFPGAなどのアクセラレータも利用できたっぽい(ロードマップ?)のですが、現時点ではGPUのみサポートされています。


<システム構成>
GPUプールのESXi上にBitfusionサーバ(アプライアンス)を展開し、ネットワーク経由でBitfusion ClientにGPUリソースを提供します。



Bitfusion Server
左側のESXiがGPUプールで、Virtual ApplianceがBitfusionサーバです。BitfusionサーバはVMwareから提供される仮想アプライアンスで、vSphere7 U1以上にデプロイします。
デプロイしたBitfusionサーバにはGPUをパススルーで設定します。

Bitfusion Client
右側のESXi上のVMはBitfusionを介してGPUリソースを利用する仮想マシンで、CentOSとUbuntuがサポートされています。このLinux仮想マシンにBitfusion Clientをインストールして、ネットワーク経由でGPUリソースを利用します。サポートされるLinuxの詳細のバージョンはドキュメントを確認してください。

Network
ネットワークは Ethernet(10Gbps)、RDMA、Infinibandをサポートしています。
GPUリソースをネットワーク経由で利用するので、広帯域、低遅延のネットワークが必要です。

Bitfusionライセンス
当初BitfusionはvSphere Enterprise Plusに内包される予定でしたが、vSphereのAdd-on として提供されることになったようです。ちょっと残念ですがBitfusionの利用状況を確認するのが目的のようなのでしょうがないですね。


今回はBitfusionの基本構成とコンポーネントを紹介しました。
次回以降は、利用方法だったり、導入手順などを投稿していきたいと思います。