はじめに
2019年6月にMarkLogicの新バージョン10がリリースされました。
このバージョンはGPUに対応しており、機械学習のライブラリとしてCNTKのAPIを実装しています。MarkLogic上でXQueryやJavascriptを使用した機械学習のアプリケーションを開発・実行できます。
GPU対応版のMarkLogicのインストールにはCUDAが必要になります。本記事ではインストール方法をご紹介します。
環境
以下の環境を使用します。
環境 | バージョン等 | 備考 |
---|---|---|
OS | CentOS 7.6 | |
MarkLogic | 10.0-1(GPU対応版) | https://developer.marklogic.com/products/marklogic-server/10.0 |
CUDA | 10.1.168_418.67 | https://developer.nvidia.com/cuda-toolkit |
GPU | GeForce GTX1070Ti |
インストール手順
nouveauドライバの無効化、CUDAのインストール、MarkLogic10のインストールの流れになります。
nouveauドライバの無効化
GUIを使用している場合CLIモードに変更し、nouveauドライバを無効化します。
# ランレベルの確認
$ sudo systemctl get-default
graphical.target
# ランレベルを3(CLI)に変更
$ sudo systemctl set-default multi-user.target
$ sudo systemctl get-default
multi-user.target
# nouveauドライバの無効化
$ sudo dracut --omit-drivers nouveau /boot/initramfs-$(uname -r).img $(uname -r)
# modprove.confとnouveau_blacklist.confの編集
$ vi /etc/modprobe.d/modprobe.conf
$ vi /etc/modprobe.d/nouveau_blacklist.conf
# 以下の2行を追記
blacklist nouveau
options nouveau modeset=0
# 再起動する
$ sudo reboot
# nouveauドライバが無効となっている事を確認する
$ sudo lsmod | grep nouveau
CUDAのインストール
NVIDIA社のDeveloperサイトからCUDA TookKitをダウンロードします。インストーラーの種類は3種類ありますが、今回はrunfile(local)を使用します。
インストールする内容など質問されますが、CUDA DriverとCUDA ToolkitをインストールすればOKです。
# ダウンロードしたインストーラーを実行する。
$ sudo sh cuda_10.1.168_418.67_linux.run
ランレベルを変更している場合、元に戻します。
$ sudo systemctl set-default graphical.target
$ sudo systemctl get-default
graphical.target
再起動します。
$ sudo reboot
MarkLogic10のインストール
MarkLogic10のインストーラーには通常版とGPU対応版があります。GPU対応版をダウンロードしてください。
インストールと起動は以下の通りです。
$ sudo yum localinstall -y [MarkLogic10のRPMファイル]
$ sudo systemctl enable MarkLogic
$ sudo systemctl start MarkLogic
nvidia-smiコマンドを実行し、GPUの状態を確認してみます。
MarkLogicのプロセスがGPUを使用していることが分かります。
$ nvida-smi
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 418.67 Driver Version: 418.67 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. |
|===============================+======================+======================|
| 0 GeForce GTX 107... Off | 00000000:0B:00.0 Off | N/A |
| 0% 45C P8 7W / 180W | 163MiB / 8119MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 13964 C /opt/MarkLogic/bin/MarkLogic 153MiB |
+-----------------------------------------------------------------------------+
おしまい
XQueryやJavascriptを使用して、MarkLogic上の様々な非構造データに対する機械学習アプリケーションを開発できるようになりました。データベースと機械学習が直結することで、多くの活用方法が期待できます。