仮想基盤等にAI開発環境を作っちゃお!

こんにちは!エンドポイント製品やEmailセキュリティ製品を担当しているシマシマキンです。

普段はセキュリティ製品担当をしておりますが、AI技術が一般的に認知されている昨今、AIツールを使用して省人化を行いたい点や、セキュリティの課題に対して、AIツールを用いて解決できるものがなかろうか?という点で、AIツール開発の勉強をしています。
※新しいプロダクト(AIとセキュリティ双方の知見が必要な)の担当として、より面白味が出せるのではなかろうか?の観点もあったりします。(^^;

AIツールの開発にあたっては、「PCのリソースを有効活用できていない」「AI検証環境としてデスクトップにGPUを組み込んだが、環境再構築等、非常に手間がかかる」等の課題がありますが、それらの課題に対し、仮想環境等を使用すれば、より効率よくリソースを使えるようになり、かつ環境再構築(スナップショットを戻す等)を迅速に行え、有効な対策となります。

しかし、仮想環境等で、GPUを利用する場合、基盤のデフォルト設定を数点変更する必要が出てきます。そこで今回の記事では、基盤の設定変更を含めた、構築方法をご紹介いたします。


■ESXi (仮想環境基盤)でGPUパススルー

・Step1 iGPUの無効化

BIOS画面上で適宜iGPUを無効化してください。
 
・Step2 GPUパススルー有効(ESXi でGPUパススルー有効化)
下記GPUのチェックボックスにチェック、その後「パススルーの切り替え」をクリックし、GPUパススルーを有効化します。
%E4%BB%AE%E6%83%B3%E5%9F%BA%E7%9B%A41.png
その後、ESXi を再起動してください。 

%E4%BB%AE%E6%83%B3%E5%9F%BA%E7%9B%A42.png
・Step3 VM上の設定
対象のゲストOSの「編集」をクリックしてください。

%E4%BB%AE%E6%83%B3%E5%9F%BA%E7%9B%A43.png
CPUの「ハードウェア仮想化」にチェックが外れていることを確認し、メモリの「すべてのゲストメモリ~」をチェックする。「その他デバイスの追加」で「PCIデバイス」をクリックし、GPUを追加してください。
%E4%BB%AE%E6%83%B3%E5%9F%BA%E7%9B%A44.png
「仮想マシンオプション」にて「構成の編集」をクリック後、パラメータ「hypervisor.cpuid.v0 : FALSE」を追加し、OKをクリックし、編集した内容を保存してください。
 %E4%BB%AE%E6%83%B3%E5%9F%BA%E7%9B%A45.png
最後にゲストOSを起動させ、Linuxであれば「lspci -nn|grep -i nvidia」でGPUを認識していることを確認してください。
%E4%BB%AE%E6%83%B3%E5%9F%BA%E7%9B%A46.png
その後、ゲストOSへ適宜ツール等を入れて開発環境完成です。


■CentOS編
普段の開発ではLinuxしか扱っていないよ!等お思いの方もいらっしゃるかと思います。CentOSではKVM環境でパススルーする手もありますが、折角なのでContainer(Docker)を使用した場合の設定方法をご紹介します。
 
CentOS上、GPUのドライバが入っている前提で、Docker環境の設定~確認コマンドまでをご紹介します。(rootユーザでの実施例の為、適宜sudo コマンドを入れてください。)
 
・CentOS 7でDockerをセットアップ!
公式なDocker CE レポジトリセットアップ
#yum-config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
 
# yum repolist -v
 
containerd.ioパッケージインストール
#yum install -y https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.4.3-3.1.el7.x86_64.rpm
 
docker-ceパッケージインストール
# yum install docker-ce -y
 
Dockerサービス有効化
# systemctl --now enable docker
 
Docker 実行確認
# docker run --rm hello-world
※実行後、下記の表示がなされます。

    [root@localhost ~]#  docker run --rm hello-world
  
 Hello from Docker!
 This message shows that your installation appears to be working correctly.
  
 To generate this message, Docker took the following steps:
  1. The Docker client contacted the Docker daemon.
  2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
 ~~以後中略~~
 

・NVIDIA Containerツールキットセットアップ!
 
レポジトリとGPGKey セットアップ
# distribution=$(. /etc/os-release;echo $ID$VERSION_ID)  && curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | sudo tee /etc/yum.repos.d/nvidia-docker.repo
 
nvidia-docker2パッケージセットアップ
#yum clean expire-cache
#yum install -y nvidia-docker2
 
Docker daemonを再起動
#systemctl restart docker

 動作確認
# docker run --rm --gpus all nvidia/cuda:10.0-base nvidia-smi
※実施後、下記のような表示がなされます。 

Status: Downloaded newer image for nvidia/cuda:10.0-base
 Thu Oct 21 06:17:15 2021
 +-----------------------------------------------------------------------------+
 | NVIDIA-SMI 430.50      Driver Version: 430.50      CUDA Version: 10.1     |
 |-------------------------------+----------------------+----------------------+
 | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
 | Fan  Temp  Perf Pwr:Usage/Cap|        Memory-Usage | GPU-Util Compute M. |
 |======================+===================+========|
 ~~以後中略~~
 

以上でセットアップ~動作確認が完了です。

※本コラムは手順の動作保証をするものではございませんので、ご承知おきください。
 
今回作った環境で、AIツールを開発し、身近な物への応用を通して自己学習を進めていき、仕事の中で活かせる機会があれば発信していきたいと思います。

弊社内ではAI勉強会が活発に行われており、AIに関する業務に携わっていなくても、知見を身につけることができます。また、セキュリティプロダクト担当のメンバーが、AI関連のプロダクト担当に異動するケースもあります。

セキュリティ、AI、DevOps関連の商材を取り扱っており、最先端の技術に触れられる仕事環境がマクニカにはあります。

最後に、弊社では、「G検定受験費補助金」の制度があり、弊社正社員であれば利用できます!我こそは!と思う方は入社後、G検定を受けてみてはいかがでしょうか!?
 
以上、CentOS8 のサポート期限がもうすぐなので、移行先の基盤に悩んでいるシマシマキンでした。

トップに戻る

関連記事

前へ

ありマク座談会(営業職)_前編

次へ

エクスポネンシャルなイベント準備に奔走中

Page Top