現在位置:

コンテナ技術を使う「Singularity」とは 

Docker と同じコンテナ技術を使っている「Singularity」

 

ディープラーニングの利用ユーザーで、様々なフレームワークやライブラリでテストをされたり、バージョンアップなどで正常に動作しなかったりなど、ディープラーニング環境での問題が発生する場合があります。

この問題を解決するのが、前回のブログでご紹介した nVIDIA 社が提供する Docker イメージで、コンテナ技術を活用した仮想環境です。Deep Learning フレームワークは色々ありますが、それらを一から構築するのは凄く大変です。

Dcoker を利用した場合、NVIDIA ドライバや CUDA の設定などを、物理環境とコンテナ環境の両方で行う作業を行うなど、少し面倒な作業が必要になってきます。また、GUI を キャプチャ用の USB カメラなどを利用する場合には、都度宣言が必要になってきます。

この Docker のデメリットを解決するのが、今日ご紹介する「Singularity」です。

前回は、ESLA製ノートPC「VERUGA 5000」で、デュアルブート環境を構築しましたが、今回は、GeForce 2080 Ti を 2 枚搭載したモデルで検証してみました。

このモデルは、弊社のディープラーニング・モデルで最も人気のあるモデルの一つです。詳しくは、こちら をご覧ください。

 

「Docker」よりも簡単に GPU を扱える「Singularity」

「Singularity」は、HPC 計算に特化したコンテナ技術で「Docker」よりも簡単に GPU を扱う事ができる仮想環境プラットフォームです。

「Singularity」は、冒頭に書いたように、フレームワーくやライブラリなどの計算環境がバージョンアップによって正常に動作しなかったり、また変更があった場合でも容易に 利用できます。近年ではクラウド環境でも利用できるようになりつつあります。

利用される OS は、CentOS や RedHat が主になっていますが、インストールは難しくはなりますが Ubuntu でも可能です。弊社では、Ubuntu 環境での構築も可能です。

「Docker」と「Singularity」の違い

「Docker」で GPU を扱う場合、(Linux イメージ + NVIDIA ドライバのインストール + CUDA )もしくは、(NVIDIA ドライバと CUDA が導入されている Linux イメージ)が必要です。それに対して「Singularity」では、Linux イメージだけで動かす事ができます。

それによりオリジナルのイメージを作成する場合、軽量化がやりやくすなります。(この軽量化がまた難しいです。。。作って作り直しての繰り返しです。。。「Docker」と「Singularity」のビルドファイルの作り方は全然違います)

また、「Singularity」で動かす場合は、「Singularity」のイメージを使用します。また「Docker」のイメージをビルドして「Singularity」専用に改変する事もできます。

 

NGC(NNIDIA GPU Cloud)は、「Docker」のイメージが提供されていますので、「Singularity」で使用する場合は「Singularity」専用にビルドして使用します。ビルド方法は こちら を参照ください

次回は、この「Singularity」の設定をもう少し詳しくテストしてきます!

 

最後に!!弊社の工場をご紹介します。

弊社では、ディープラーニング・モデルをはじめとする HPC (ハイパフォーマンス・コンピューティング)製品を、すべて国内(福岡市)にある自社工場で生産しています。

高い性能と耐久性を求められる HPC 製品はもちろんのこと、一般事務などで利用される BTO パソコンについても、お客様が安心してご利用いただけるように、企画から検証、製造までを一貫して行っています。

HPC 製品の製造・設定は、自社工場の HPC 専門スタッフが担当しており、いづれも熟練エンジニアです。製造現場と企画・開発スタッフが同じ建屋に在籍することで、品質向上のためのフィードバックや製品開発のスピードにも重点を置いています。また、となりの建屋には、修理部門スタッフが在籍しており、部門間を超えた連携体制を整えています。