<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>ML on Alicey's blog</title><link>https://blog.alicey.dev/tags/ml/</link><description>Recent content in ML on Alicey's blog</description><generator>Hugo</generator><language>ja</language><lastBuildDate>Mon, 28 Mar 2022 20:50:15 +0900</lastBuildDate><atom:link href="https://blog.alicey.dev/tags/ml/index.xml" rel="self" type="application/rss+xml"/><item><title>機械学習基盤の構築(Ubuntu20.04+Tensorflow+Docker+GPU)</title><link>https://blog.alicey.dev/2021/08/ubuntu2004dockergpu.html</link><pubDate>Tue, 03 Aug 2021 10:01:00 +0900</pubDate><guid>https://blog.alicey.dev/2021/08/ubuntu2004dockergpu.html</guid><description>&lt;h2> なりゆき&lt;/h2>&lt;div>大学で行っている研究にて、機械学習を用いた処理を行っているのですが、学生の持っているマシン(大半がm3なMacBook)では遅すぎていつまで経っても終わらないという話が出ました。そこで、大学に機械学習のリソースをくれないかという話をしたところ、GPU搭載のゲーミングノートPCを貸していただけたので、これを使うことにしました。&lt;/div>&lt;div>（本当はGPU乗ったサーバのVM貸してほしかった.....電気代怖い....）&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>PCの詳細はこんな感じ&lt;/div>&lt;div>&lt;ul>&lt;li>CPU : Intel Core i7 9750H(6C12T 2.6GHz up to 4.5GHz)&lt;/li>&lt;li>RAM : DDR4-2400 SODIMM 32GB&lt;/li>&lt;li>GPU : NVIDIA RTX2070 Mobile&lt;/li>&lt;li>OS : Windows10Home → Ubuntu 20.04 LTS&lt;/li>&lt;/ul>&lt;/div>&lt;div>&lt;a href="https://blog.alicey.dev/2021/08/ubuntu2004dockergpu/img/1a6dca740247810f_hu3304391076628058705.webp" class="lightbox-trigger">
 &lt;img src="https://blog.alicey.dev/2021/08/ubuntu2004dockergpu/img/1a6dca740247810f_hu3304391076628058705.webp"
 alt=""
 width="1293"
 height="920"
 loading="lazy" decoding="async">
 &lt;/a>&lt;br>&lt;br>&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;h2>OSの載せ替え&lt;/h2>&lt;div>まず、既存のWindowsをバックアップします。&lt;/div>&lt;div>SSDを載せ替えても良かったのですが、予算の関係で今回はディスクのイメージを作成しました。&lt;/div>&lt;div>詳しい内容は&lt;a href="https://blog.alicey.dev/2021/07/windowsdd.html" target="_blank">前回の記事&lt;/a>を御覧ください。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;h2>Ubuntuのインストール&lt;/h2>&lt;div>Ubuntuをインストールします。&lt;/div>&lt;div>といっても、難しいことはなく、USBブートし画面の指示に従いインストールするだけです。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>&lt;a href="https://blog.alicey.dev/2021/08/ubuntu2004dockergpu/img/c26ec61a3e653565_hu14426114048247843325.webp" class="lightbox-trigger">
 &lt;img src="https://blog.alicey.dev/2021/08/ubuntu2004dockergpu/img/c26ec61a3e653565_hu14426114048247843325.webp"
 alt=""
 width="1064"
 height="797"
 loading="lazy" decoding="async">
 &lt;/a>&lt;br>&lt;br>&lt;/div>&lt;h2>ドライバのインストール&lt;/h2>&lt;div>ドライバ類のインストールをします。&lt;/div>&lt;div>今回は、GPUのドライバのみ手動インストールしました。&lt;/div>&lt;div>バージョンに関しては、&lt;a href="https://www.tensorflow.org/install/gpu?hl=ja" rel="nofollow" target="_blank">TensoeflowのGPUサポート&lt;/a>と照らし合わせ、&lt;/div>&lt;div>CUDA 11.4, NVIDIA-SMI 470.42.01をインストールしました。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>&lt;a href="https://blog.alicey.dev/2021/08/ubuntu2004dockergpu/img/40b50e33b212a9e8_hu11333822182802677762.webp" class="lightbox-trigger">
 &lt;img src="https://blog.alicey.dev/2021/08/ubuntu2004dockergpu/img/40b50e33b212a9e8_hu11333822182802677762.webp"
 alt=""
 width="1181"
 height="827"
 loading="lazy" decoding="async">
 &lt;/a>&lt;br>ココで1箇所ハマったことがあります。&lt;/div>&lt;div>UbuntuをSecureBootを利用する形でセットアップしたため、ドライバインストール時に見慣れない「Enrolling MOK Key」の設定が必要になります。&lt;/div>&lt;div>ドライバをセットアップし、Reboot後、見慣れない青背景の画面が出たため、何も考えずにContinueBootした所、ドライバを読み込みませんでした。気をつけましょう。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>その時参考にしたサイト: &lt;a href="https://seedoftalk.blogspot.com/2021/06/ubuntu-secureboot.html" rel="nofollow" target="_blank">UbuntuでNVIDIAドライバが動かない&lt;/a>&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;h2>Docker等の構築&lt;/h2>&lt;div>ココまで来てしまえば、後は必要なソフトウェアをインストールするだけです。&lt;/div>&lt;div>Tensorflowの場合ですと、公式に&lt;a href="https://www.tensorflow.org/install/docker?hl=ja" rel="nofollow" target="_blank">Docker&lt;/a>を利用するものと、&lt;a href="https://www.tensorflow.org/install/pip?hl=ja" rel="nofollow" target="_blank">pip&lt;/a>でのセットアップに関するものがまとめられています。&lt;/div>&lt;div>これを参考に構築します。&lt;/div>&lt;div>（需要があれば、別途記事にします。）&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>また、DockerでNVIDIA GPUを利用する際にはNVIDIA Container Toolkit(nvidia-docker2)のインストールが必要になります。&lt;/div>&lt;div>&lt;a href="https://gangannikki.hatenadiary.jp/entry/2020/09/26/200000" rel="nofollow" target="_blank">こちら&lt;/a>を参考にさせていただきました。&lt;/div>&lt;div>公式の&lt;a href="https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#setting-up-nvidia-container-toolkit" rel="nofollow" target="_blank">ドキュメント&lt;/a>はこの辺りですね。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>docker composeを利用する場合、v1とv2でdocker-compose.ymlのGPUを指定する方法が異なりますのでご注意ください。個人的にはv2で構築することをおすすめします。&lt;/div>&lt;div>詳しくは、&lt;a href="https://matsuand.github.io/docs.docker.jp.onthefly/compose/gpu-support/" rel="nofollow" target="_blank">ドキュメント&lt;/a>をご参照ください。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>また、この辺りは、バージョンによって変化が生じやすい部分かと思われますので、環境(OSやGPU)に応じた設定を都度ドキュメント等で確認することをおすすめします。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;h2>おまけ&lt;/h2>&lt;div>せっかくゲーミングPCだからゲームしないとね？&lt;/div>&lt;div>というわけで、マイクラをプレイしておきました。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>&lt;a href="https://blog.alicey.dev/2021/08/ubuntu2004dockergpu/img/caba0afd9f74752f_hu16241844205032627848.webp" class="lightbox-trigger">
 &lt;img src="https://blog.alicey.dev/2021/08/ubuntu2004dockergpu/img/caba0afd9f74752f_hu16241844205032627848.webp"
 alt=""
 width="726"
 height="920"
 loading="lazy" decoding="async">
 &lt;/a>&lt;div>&lt;br>&lt;/div>&lt;div>僕がよくする配信+ゲームではGPUフルロード。フレームレートも落ちますね....144Hzモニタの意味....&lt;/div>&lt;div>&lt;a href="https://blog.alicey.dev/2021/08/ubuntu2004dockergpu/img/82426cc5ab1153e6_hu15285195861590897201.webp" class="lightbox-trigger">
 &lt;img src="https://blog.alicey.dev/2021/08/ubuntu2004dockergpu/img/82426cc5ab1153e6_hu15285195861590897201.webp"
 alt=""
 width="1031"
 height="730"
 loading="lazy" decoding="async">
 &lt;/a>&lt;br>&lt;br>&lt;/div>&lt;br>&lt;br>&lt;/div>&lt;div>というか、キー配列無茶苦茶すぎん？&lt;/div>&lt;div>&lt;a href="https://blog.alicey.dev/2021/08/ubuntu2004dockergpu/img/abaf06300e8ef4a4_hu3461504936845575084.webp" class="lightbox-trigger">
 &lt;img src="https://blog.alicey.dev/2021/08/ubuntu2004dockergpu/img/abaf06300e8ef4a4_hu3461504936845575084.webp"
 alt=""
 width="1600"
 height="987"
 loading="lazy" decoding="async">
 &lt;/a>&lt;br>&lt;br>&lt;/div>&lt;div>無駄にBIOSからキーボードの光り方変えられるｗ&lt;/div>&lt;div>&lt;a href="https://blog.alicey.dev/2021/08/ubuntu2004dockergpu/img/a17ea08e664c9044_hu6141220186596196352.webp" class="lightbox-trigger">
 &lt;img src="https://blog.alicey.dev/2021/08/ubuntu2004dockergpu/img/a17ea08e664c9044_hu6141220186596196352.webp"
 alt=""
 width="1260"
 height="900"
 loading="lazy" decoding="async">
 &lt;/a>&lt;div>&lt;br>&lt;/div>&lt;br>いろいろと癖が強いマシンだった。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>ばいち&lt;/div></description></item></channel></rss>