ラベル AI の投稿を表示しています。 すべての投稿を表示
ラベル AI の投稿を表示しています。 すべての投稿を表示

2024年7月3日水曜日

Accelerate Machine Learning in vSphere Using GPUs (HOL-2447-01-ISM)

 VMwareのHands on Labに久しぶりにアクセスしてみたら、AI関連のコースがあったので試しにやってみました。


今回受けてみたコースはAccelerate Machine Learning in vSphere Using GPUs (HOL-2447-01-ISM)。

モジュールは次の5つで、HoLの特徴である実際の操作はなく、座学だけのコースになります。各モジュールは15分程度の所要時間になっていますが、実際には各モジュール5分もあれば読むこともでき


    ・Module 1 - Introduction to AI/ML in vSphere Using GPUs (15 minutes) Basic

    ・Module 2 - Run Machine Learning Workloads Using NVIDIA vGPU (15 minutes) Advanced

    ・Module 3 - Using GPUs in Pass-through Mode (15 minutes) Advanced

    ・Module 4 - Configure a container using NVIDIA vGPU in vSphere with Tanzu (15 minutes) Advanced

    ・Module 5 - Choosing the Right Profile for your Workload (vGPU vs MIG vGPU) - (15 minutes) Basic


内容としてはvSphere環境でGPUを使ったAIの超基礎の内容で、AI/ML/DLの定義や、vGPUやMIG、AI EnterpriseなどなどvSphere環境でAIを検討し始める、でもAIよくわからないといった場合の入り口にはいいと感じました。

他にもRayのコースもあったようなので、時間をみて試そうと思います。

2022年4月28日木曜日

Add disk to worker node

今回はvsphere with tanzuのworkerノードへのディスク追加方法についてご紹介します。

コンテナは軽量という印象をお持ちの人も多いと思いますが、コンテナイメージによっては数GBのサイズがあったりで意外とサイズの大きいものもあります。

私はAI系のコンテナイメージを利用することが多いのですが、これがイメージサイズが大きくてpull imageで時間がかることがあります。時間がかかるだけであればいいのですが、ディスクサイズに収まらないということも発生します。

通常のKubernetesやDockerであればホストOSのディスクサイズは仮想マシンでも数十GBから数百GB程度取ることがあるのであまり問題はないのですが、TanzuでTKCを作成してWoker Nodeを展開すると私の環境の場合はディスクサイズが16GBで、Workerノードのディスク容量が足りずにコンテナイメージを展開できないことがありました。


状況としてはkubetctl get pod でStatusがEvictedになります。

kubectl describe podで詳細を確認すると、The node was low on resource: ephemeral-storage.のメッセージが、、、


色々ためしたのですがWorkerノードのディスクを拡張するしかなく、tkcを作成するyamlファイルに以下を追加することで回避できました。


volumes:

  - name: containerd

    mountPath: /var/lib/containerd

    capacity:

      storage: 64GiB


ネット探してもこのあたりに困っている人は少なそうだったんですが、Workerノードのディスクサイズに困っている人は少ないのか、周知の事実なのか、、、

とりあえず、やっとコンテナ使えるようになりました。











2022年4月5日火曜日

AI Enterprise with Tanzu? Virtual Machine?

GTC 2022でもAI Enterpriseのアップデートがありましたね。

これまでのTanzuの他にOpenshift、Bareメタルもサポートされると発表がありましたので多くの環境で利用することができるようになります。

私もまずはvSphere上の仮想マシンでAI Enterpriseを試してみて、今はTanzuでのAI Enterpriseの構築にチャレンジしています。

Tanzuも仮想サーバも基本はNGCからコンテナを取得してAI環境を展開、利用することになるのでデータサイエンティストからしたら代わりなく利用できますし、どちらもGPUリソース割り当てなどは使い慣れたvCenterでできるので、インフラ管理者にも優しい仕様になっています。

まだ触りだけなので、もうちょっと使いこなせるようになったらMIGやNGCなどなどの使い勝手を記事にしていきたいと思います。


2021年10月21日木曜日

VMware Project Radium

 VMworldでセッションがあったのは気づかなったんですが、VMwareのブログで見つけました Project Radium!!!!!

 

Project Radium 

 

 簡単にいうと、これまでBitfusionで利用できていたのはNVIDIAのGPUだけでしたが、 AMDのGPU, GraphcoreのIPU、IntelのHabana、FPGA(?)などなどのNVIDIA GPU以外のアクセラレータをプール化してネットワーク経由で利用できるようになるそうです。

まだProject段階なようですが、早く製品化されることを願っています。



2021年8月25日水曜日

VMware Bitfusion on Home Lab

前回記事で紹介したDell Precisionですが、自宅でKubernetesなどなど試してみるためのリソース追加とKubernetest環境でのGPU利用、あとはBitfusion環境を作りたかったのが目的だったので、まずはBitfusionを構築してみることにしました。

VMware社のCompatibilityにはサポートするGPUとしてV100/S、A100、P40、T4の4種類が記載されています。
ただ、次のようにも記載がされています。

Bitfusion has general support for datacenter class, CUDA-supporting, NVIDIA GPUs, which qualify for DirectPath I/O on ESXi.

前回の記事にも記載しましたが購入したPrecisionにはGPUが搭載されていますが、GeforceのGTX1060なので、datacenter classではないのですが、Cudaは動くのでなんとかなるかもしれないという期待で構築を試してみました。

Bitfusionの大まかなインストールは次の手順なんですが、注意点としてはBitfusion ServerへGPUドライバを手動でインストールする必要があります。
1.Bitfusion Server Applianceの展開
2.Bitfusion ServerへGPUのパススルー設定
3.GPUドライバの手動インストール
4.Bitfusion Clientのインストール
5. vCenterへBitfusion Clientの登録

詳細な手順はVMware社の公式マニュアルを参照してもらえればいいのですが、BitfusionでGTX1060を利用するためには 1のBitfusion Server Applianceの展開時に次スクリーンショットのNvidia Packagesの項目でチェックボックスを未選択でBitfusion Applianceを展開します。



Appliance展開時にチェックボックスを未選択で展開しているので、手順4で必要なDriverなどをインストールします。 VMware社のドキュメントでは、Bitfusion Serverにログインして次のコマンドを実行するように記載されています。

$sudo install-nvidia-packages --defaults --yes

ですが、このコマンドではV100やA100などCompatibilityに記載してあったDatacente ClassのGPUであればドライバやFablic Managerがインストールされるのですが、GTXなどのGPU関連のドライバはインストールされないので、別途ダウンロードする必要があります。

私の環境ではNVIDIAのサイトから次のパッケージをダウンロードしました。
 ※Bitfusion Server ApplianceはPhotonOSが利用されているため、ダウンロードするパッケージはcentos版をダウンロードしました。

ドライバ:NVIDIA-Linux-x86_64-470.63.01.run
Fabric Manager:nvidia-fabricmanager-460.32.03-1.x86_64.rpm

インストール自体は特に難しいこともなく通常のインストール手順を実行すれば問題なくインストールが完了します。

$ chmod +x NVIDIA-Linux-x86_64-470.63.01.run
$ sudo ./NVIDIA-Linux-x86_64-470.63.01.run
$ wget http://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/nvidia-fabricmanager-460-460.32.03-1.x86_64.rpm
$ sudo rpm -ivh ./nvidia-fabricmanager-460-460.32.03-1.x86_64.rpm
$ reboot

インストール後にvCenterで確認すると次のようにAPIのミスマッチなど若干エラーが出ていますが、簡単な動作確認しても特に問題は無いので色々と試してみたいと思います。


※見た感じ特に問題はなさそう。
$ bitfusion smi
+----------------------------------------------------------------------------------------+
| 192.168.68.41:56001 Driver Version: 470.63.01 |
+--------------------------------------+-------------------------+-----------------------+
| GPU Name Persistence-M | Virt Mem Alloc / All | BusId Vol Uncorr ECC |
| Fan Temp Perf Pwr:Usage/Cap | Phy Mem Used / All | GPU-Util Compute M. |
|======================================+=========================+=======================|
| 0 NVIDIA GeForce GTX ... Disabled | 0 MB / 6078 MB | 00000000:13:00.0 N/A |
| 42% 36C P8 8W / 120W | 2 MB / 6078 MB | 0% Default |
+--------------------------------------+-------------------------+-----------------------+
$ bitfusion list_gpus
- server 0 (leader) [192.168.68.41:56001]: running 0 tasks
|- GPU [0]: free memory (6078 / 6078MiB) NVIDIA GeForce GTX 1060 6GB (6.1)

2021年5月20日木曜日

Bitfusion3.5 Release

3月にBitfusion3.0.0、4月に3.0.1がリリースされて、 早くもBitfusion3.5が5月11日にリリースされました。

いっときアップデートが2,3ヶ月止まっていたのですが、また1ヶ月ペースでアップデートされるようになりました。


今回のアップデートはつぎのとおり、主にCudaのバージョンサポートが追加されているのですが、1つだけRDMA関連で機能追加されています。


  • NVIDIA CUDA 11.2.2 のサポートを追加
  • NVIDIA cuDNN 8.1.1 のサポートを追加
  • NVIDIA Collective Communications Library (NCCL) 2.8.4 のサポートを追加
  • ib_read_bw、ib_read_lat、ib_send_bw、ib_send_lat、ib_write_bw、ib_write_lat などの PVRDMA のネットワーク パフォーマンス テスト ツールが vSphere Bitfusion OVA ファイルに事前インストールされています。


Bitfusionはネットワークのスループットがポイントなので、デフォルトでRDMA関連情報が取得できるようになるのはありがたいですね。



2021年4月26日月曜日

AI Enterprise Suite with vSpere7/Tanzu

3月にNVIDIA社から発表のあった、AI Enterprise Suiteをご存知でしょうか?

NVIDIA AI Enterprise SuiteはNVIDIAが認定したGPUサーバと、vSphere7 U2での稼働が認定されたソフトウェアの組み合わせになります。

AIワークロードの迅速な展開、管理、スケーリングのコンポーネントが含まれるとあり、仮想マシンだけではなくTanzu環境でも利用できるようです。


NVIDIAのサイトでは次のような画像が掲載されていますが、こちらからもTanzuがコンポーネントとして追加されているのが見て取れます。

それ以外には、右下に配置されている DPUの部分もポイントになってくると思います。DPUでRDMAを利用することによって、帯域幅と遅延を小さくし、複数ノードでのAIモデルの学習にも対応してくるものだと思います。

NGCにも新しく学習モデルが多数公開されているようなので、ますます楽しみになってきました。


2021年3月24日水曜日

Bitfusion 3.0 Release

2020年12月3日にBitfusion 2.5.1がリリースされてからおよそ3か月間アップデートがなかったのですが、 3月1日にBitfusionの3.0がリリースされました。

2.0が2020年7月にリリースされてから、12月3日の2.5.1まではメンテナンス含めて毎月のようにアップデートされていたのですが、ちょっと空いてからの3.0のリリースとなりました。


3.0では大きな機能追加はなさそうですが、リリースノート には以下の新機能が追加されたようです。

  • 後続の vSphere Bitfusion サーバでの新しいインストール環境
  • 複数のネットワークにおける vSphere Bitfusion サーバのサポートの向上
  • vSphere Bitfusion クライアントでの nvidia-smi アプリケーションの透過的インストール
  • NVIDIA ドライバ 460
  • NVIDIA CUDA 11.1
  • TensorFlow 2.4 のサポート
  • PyTorch 1.6 のサポート
  • TensorRT 7.1.3 のサポート
  • PaddlePaddle 2.0 のサポート

1つ目の "後続の vSphere Bitfusion サーバでの新しいインストール環境"はBitfusionサーバのインストール要件が若干変わっていることのようです。
2.5.1まではBitufusionサーバのメモリ要件は次のように記載されています。
  • vSphere Bitfusion サーバの最小メモリ要件は、サーバにインストールされている GPU メモリの合計の 150% 以上である必要があります。

3.0からは次のように変更されています。
  • vSphere Bitfusion サーバの最小メモリ要件は、32 GB と、サーバにインストールされている GPU メモリの合計の 150% のいずれか大きい方です。

検証環境などであればT4を1枚だけということもあるかと思うので32GBでいいのでしょうが、本番環境は複数のGPUを搭載することがほとんどだと思うので、合計GPUメモリの150%を指定することになると思います。


3つ目の "vSphere Bitfusion クライアントでの nvidia-smi アプリケーションの透過的インストール"は、2.5.1まではnvidia-smiを直接実行することはできず、実行するには次のようにbitfusionコマンドを利用する必要がありました。

    $ bitfusion run -n 1 -- nvidia-smi

まだ実機では確認していませんが、透過的にということなのでbitfusion run コマンドが不要になったのだと思われます。
以前は上記のbitfusion run コマンドはGPUを明示的にアサインしてGPU情報を取得していたので、別のワークロードでGPUをアサイン&利用中の場合は、nvidia-smiコマンドがGPUが解放されるのを待ってしまっていたので実質利用できなかったので、改善されて利便性が向上しそうです。


それ以外だとTensorflowやCudaなど新しいバージョンのサポートと、新しくPaddlePaddleが追加されているようです。


もう一つリリースノートで注意すべきはこちらです。

vSphere Bitfusion サーバで使用されている GPU のメモリの合計が 128 GB より大きい場合、GPU パススルーを使用できない

デフォルトでは、GPU パススルーの高度な仮想マシン プロパティ pciPassthru.64bitMMIOSizeGB は 256 に設定されています。1 台の vSphere Bitfusion サーバ上で、128 GB よりも大きいメモリを搭載した GPU を使用している場合、この構成によってパススルーの障害が発生する可能性があります。

 

最近ではGPUのメモリサイズも大きくなり、サーバへのGPU搭載数も増えているので引っかかる場合がありそうなので注意が必要です。
回避策はリリースノートにも記載されているので確認してみてください。













2020年11月11日水曜日

Bitfusion2.5 Release!

 11月5日にBitfusion2.5がリリースされました!

Bitfusion2.5.0 Release Note


2.5での新機能は次の8項目です。

vSphere Bitfusion 2.5.0 の新機能

    • ベアメタル クライアントのサポート
    • 健全性チェックの拡張と操作性の向上
    • バージョン 2.0.0 以降の vSphere Bitfusion クライアントのサポート
    • NVIDIA ドライバ 450
    • NVIDIA CUDA 11
    • TensorFlow 2.3 のサポート
    • PyTorch 1.5 のサポート
    • TensorRT 7.1.3 のサポート

    この中で注目はベアメタルクライアントのサポートです!
    これまでのBitfusionクライアントはvSphere上の仮想マシンだけでしたが、ベアメタルのサーバもサポートされるようになりました。これは、データセンター内の物理LinuxマシンからもGPUをネットワーク経由で利用できるということなので、もっとGPUが活用される環境が整ってきました。

    その他にもCUDAの11やTensorflowの2.3もサポートなど、開発側でも動作確認を進めているんでしょうね。 今後のアップデートが楽しみです!

    2020年9月25日金曜日

    Bitfusion Update

     7月にリリースされたBitfusionですが、毎月のようにUpdateがリリースされています。


    vSphere Bitfusion 2.0.2 Updated on: 08 SEP 2020

    • Support for applications that register segmentation fault (SIGSEGV) handlers. This fixes an issue observed when using Caffee, a framework for deep learning.
       
    • Fixes health check issues when using Paravirtual RDMA (PVRDMA).
       
    • Fixes a potential freeze, or hang, when using the vSphere Bitfusion client.
       
    • Fixes a race condition that can occur when updating vSphere Bitfusion cluster statistics.

    vSphere Bitfusion 2.0.1 Updated on: 04 AUG 2020

    • Fix for detecting license correctly for vSphere >= 7.0b

    • Updated NVIDIA driver to version 440.95.01

    • Support for multiple datacenters within a vCenter Server instance. (This does not mean that a Bitfusion Server can be supported by multiple vCenter Server instances.)

    vSphere Bitfusion 2.0.0 Updated on: 09 JUL 2020

    • Dynamic, remote sharing. AI/ML applications do not need to be modified or recompiled. They run on client machines as-is, but their API calls to access GPUs are intercepted and sent for execution on Bitfusion server machines that house the physical GPUs. GPUs are allocated as needed and returned to the pool when a session or application completes.
       
    • Partial sharing. GPU memory can be partitioned into slices of arbitrary, different sizes, then allocated to different clients for concurrent use.
       
    • vCenter Server now hosts the vSphere Bitfusion management and analytic capabilities.

    まだ、新しい製品なのでFixesがほとんどで新機能追加というわけではありませんが、
    安定して動くようになるのはありがたいですね。

    ドキュメントもわかりやすいですが、まだまだ情報量が少ない印象なので、そのあたりも追加されることを期待しています。


    2020年3月27日金曜日

    Kubeflow on Tanzu

    vSphere7がリリースされました。注目はなんといってもvSphereでのKubernetesです。

    Tanzu PortfolioとしてPKSやPAS(pivotal app service)などなど、昨年のVMworldでTanzuが発表された内容よりもコンポーネントが追加されています。

    そんななか色々とTanzu関連の情報を調べていたら、KBにTanzuのロードマップが記載されていて、その中に Kubeflow の文字が!

     Tanzu Kubernetes Grid Plus Support Matrix (78173)


    Kubeflowは簡単にいうとkubenetes上にMachine Learning環境が簡単にできるようになります。
    Kubeflowの詳細は こちら です。


    ロードマップなので延期も、場合によってはリリースされない可能性もありますが、楽しみです。



    2019年8月2日金曜日

    VMware + Bitfusion

    VMware社から立て続けに買収ニュースが発表されています。

    5/15 Bitnami

    6/13 Avi Networks

    7/18 Bitfusion

    7/25 Uhana

    個人的にはGPUやFPGAなどのアクセラレータをプール化するBitfusionの買収が
    今後面白くなりそうで注目しています。

     BitfusionはVMworld 2018でもセッションを持っていて、VMwareとの親和性も高いようです。  ※セッション動画はこちら

     VMwareもAI/ML関連の対応進めていますね。