Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Nvidia GeForce MX150 on Ubuntu 18.10 (Laptop)

More than 1 year has passed since last update.

Nvidia(MX150)を搭載したLaptopでUbuntuを利用しています。こうにゅうしてから放置していたのですが年末になってようやく動かせたのでメモを残しておきます。

  • Nvidiaのドライバは、製品版とオープンソース版があります。
  • (追記) Kernel 4.18.0-13-generic

環境の確認

今回導入するLaptopでのVideoカードの状態は下のようになっています。

 lspci | grep -E "VGA|3D"
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 620 (rev 07)
01:00.0 3D controller: NVIDIA Corporation GP108M [GeForce MX150] (rev ff)

メモ)不要なドライバを消す

sudo apt-get --purge remove "nvidia-*"
sudo apt-get --purge remove "cuda-*"

ドライバの導入

利用可能なドライバは、Ubuntuの「追加のドライバ」でも見ることができますし、 ubuntu-drivers devices コマンドでも確認することができる。色々試したのだが依存関係がすくないのかNvidiaの公式サイトからドライバをダウンロードして手動でインストールするのが一番確実であった。

Screenshot from 2018-12-28 22-47-05.png

  1. こちらの https://www.nvidia.co.jp/object/unix-jp.html から最新版のドライバをダウンロードします。
  2. 今回は、NVIDIA-Linux-x86_64-415.23.run をダンロードしました。
  3. 導入するためにXを終了します。 sudo init 3 をターミナルから実行します。
  4. コンソールにログインして先ほどダウンロードしたファイルを実行します。 sudo bash ./NVIDIA-Linux-x86_64-415.23.run でCUIで導入が始まります。

ドライバの導入(追加)

nvidiaのドライバが公開されていたので以下のPPAを登録します。

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update

ubuntu-drivers に追加されていることを確認します。

❯❯❯ ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:1c.0/0000:01:00.0 ==
modalias : pci:v000010DEd00001D12sv00001D72sd00001703bc03sc02i00
vendor   : NVIDIA Corporation
manual_install: True
driver   : nvidia-driver-390 - distro free
driver   : nvidia-driver-410 - third-party free
driver   : nvidia-driver-430 - third-party free recommended
driver   : nvidia-driver-415 - third-party free
driver   : nvidia-driver-396 - third-party free
driver   : nvidia-driver-418 - third-party free
driver   : xserver-xorg-video-nouveau - distro free builtin

最新のバージョンを導入します

sudo apt install nvidia-driver-430

関連ソフトウェアの導入と設定

不足ドライバの導入

  • (追記)この作業は不要

ここはちょっと何かわかっていないのですがメモ
https://qiita.com/rainytoffee/items/44deabd66608f00b8544

cd /tmp/
wget http://git.kernel.org/cgit/linux/kernel/git/firmware/linux-firmware.git/tree/i915/skl_guc_ver6_1.bin
wget http://git.kernel.org/cgit/linux/kernel/git/firmware/linux-firmware.git/tree/i915/kbl_dmc_ver1_01.bin
sudo cp /tmp/kbl_dmc_ver1_01.bin /lib/firmware/i915/kbl_dmc_ver1.bin
sudo cp /tmp/skl_guc_ver6_1.bin /lib/firmware/i915/skl_guc_ver6.bin
sudo update-initramfs -k $(uname -r) -u

VirtualGL

https://github.com/aancel/admin/wiki/VirtualGL-on-Ubuntu

Bumblebee は VirtualGL によって裏の X サーバーで Optimus NVIDIA カードを使ってフレームをレンダリングし、表の X サーバーに転送を行います。フレームは転送される前に圧縮が施され、それによって帯域を節約して bumblebee の高速化・最適化とすることができます。

  1. こちらのサイト http://sourceforge.net/projects/virtualgl/files/ から debファイルをダウンロードします。
  2. 今回は、virtualgl_2.6_amd64.deb をダウンロードし、 sudo dpkg -i virtualgl_2.6_amd64.debで導入を行います。

Bumblebee

ArchLinuxのドキュメントが詳しいのでNvidia関連を入れる人は一度見ておくと良いと思います。
https://wiki.archlinux.jp/index.php/Bumblebee

"Bumblebee は GNU/Linux システムで NVIDIA Optimus が搭載されたノートパソコンを動作させようという試みです。この機能では2枚のグラフィックカードを必要とし、異なる電源消費のプロファイルがレイヤーによって接続され1つのフレームバッファを共有することになります。"

sudo apt install bumblebee-nvidia bumblebee
sudo gpasswd -a `username` bumblebee
sudo service bumblebee start

Xorgの設定

常時NVIDAを利用する場合

Xorgにたいしてドライバを動作するように設定を行います。ここでのBusIDは lspci の結果をもとに記載をします。

/etc/X11/xorg.conf
Section "Device"
    Identifier  "Intel"
    Driver      "intel"
    BusID       "PCI:0:2:0"
EndSection

Section "Device"
    Identifier  "nvidia"
    Driver      "nvidia"
    BusID       "PCI:1:0:0"
    Option      "AllowEmptyInitialConfiguration"
EndSection

通常はIntelドライバを利用する場合

Xorgにたいしてドライバを動作するように設定を行います。ここでのBusIDは lspci の結果をもとに記載をします。

/etc/X11/xorg.conf
Section "Device"
    Identifier  "Intel"
    Driver      "intel"
    BusID       "PCI:0:2:0"
EndSection

実行結果

利用しているUbuntuのタスクバーにアプレットを入れてみました。動作中の場合には温度が表示されるようになっています。

  • GPUが停止中
    Screenshot from 2018-12-28 23-17-02.png

  • GPUが動作中
    Screenshot from 2018-12-28 23-15-31.png

  • nvidia-setting
    Screenshot from 2018-12-28 23-15-38.png

  • 予想に反して nvidiaの利用は自動的に止まります(動作してない場合には nvidia-smi コマンドが動作しません). Bumblebee サービスを停止すると GPUが常に動き始めます。正しく切り替えが動作していると言えるのかもしれません。この状態でバッテリー駆動で利用してみましたが消費電力に影響は出ていませんでした(特別なことをしてない場合)

  • (追記)  正しく構成されていれば、optirun を利用したプログラムを実行中のときにのみGPUが可動するように構成される。したがって通常には上記のタスクバーのアイコンは intel になっており、利用しているときだけ nvidia のアイコンに変わることがわかる。

  • NvidiaのGPUが動作しているばあい 12-14W 程度消費、利用しない場合 9-10Wを消費(powertopで測定)

GPU利用確認

利用状況の確認 nvidia-smi を実行

Fri Dec 28 21:42:31 2018       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 415.23       Driver Version: 415.23       CUDA Version: 10.0     |
|-------------------------------+----------------------+----------------------+
| 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 MX150       Off  | 00000000:01:00.0 Off |                  N/A |
| N/A   42C    P8    N/A /  N/A |      6MiB /  2002MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0     26712      G   /usr/lib/xorg/Xorg                             5MiB |
+-----------------------------------------------------------------------------+

動作していない場合には、以下のようなエラーが表示される

❯❯❯ nvidia-smi
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.

デモプログラムの実行

Screenshot from 2018-12-28 23-25-18.png

glxgears -info

Running synchronized to the vertical refresh. The framerate should be
approximately the same as the monitor refresh rate.
GL_RENDERER = Mesa DRI Intel(R) UHD Graphics 620 (Kabylake GT2)
GL_VERSION = 3.0 Mesa 18.2.2
GL_VENDOR = Intel Open Source Technology C

304 frames in 5.0 seconds = 60.706 FPS
300 frames in 5.0 seconds = 59.942 FPS
299 frames in 5.0 seconds = 59.734 FPS

optirun glxgears -info

GL_RENDERER = GeForce MX150/PCIe/SSE2
GL_VERSION = 4.6.0 NVIDIA 415.23
GL_VENDOR = NVIDIA Corporation

5861 frames in 5.0 seconds = 1172.005 FPS
6075 frames in 5.0 seconds = 1214.785 FPS
6177 frames in 5.0 seconds = 1235.199 FPS

強制的なON/OFF

❯❯❯ sudo tee /proc/acpi/bbswitch <<< ON
ON
hideaki at papas in /e/X11  
❯❯❯ sudo tee /proc/acpi/bbswitch <<< OFF
OFF

まとめ

普通に利用する分にはあまりGPUの恩恵を受けることはなさそうです。機会学習でGPUを利用したいのでドライバを入れてみました。次はGPUを機械学習で利用する方法を書いてみたいと思います(色々バージョンがあっていないと動かないようなので面倒そうです)

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away