Mettez NVIDIA + Ubuntu + Docker + Tensorflow + ROS2 etc. dans le premier PC et rendez-le aussi Mac que possible [Mise à jour]

I. Ce que je veux faire

――Obtenez un PC de bureau avec GPU NVIDIA pour environ 10 Sakichi --Installez Ubuntu20.04 et ajustez la convivialité sur Mac --Installez Docker sur Ubuntu 20.04 et construisez le système suivant sur Docker - TensorFlow+Keras --ROS2 (non répertorié. Des mises à jour supplémentaires sont en cours) --PyTorch (non répertorié. Des mises à jour supplémentaires sont en cours)

Ⅰ.Ⅰ. Faire correspondre la convivialité à Mac? </ résumé>

  1. Changez la "Touche de voisin gauche (Super / alt)" de la "Touche d'espace" en "Touche Ctrl de voisin gauche", et appuyez sur "Touche Ctrl de voisin gauche" + "X / C / V" pour "Couper / Copier / Coller". (Même utilisation que "Touche gauche ⌘" sur Mac): OK
  2. Activez la commutation de la source d'entrée «anglais / japonais» avec la «touche Espace» et la «touche Ctrl à gauche» (même utilisation que la commutation de la source d'entrée avec la touche US sur Mac): OK
  3. Activez la conversion en "katakana demi-largeur / anglais demi-largeur / hiragana / katakana pleine largeur / anglais pleine largeur" avec "touche Option" + "a / s / z / x / c" (réglage de base de Kotori): OK
  4. Remplacez la "touche Capslock" par la "touche Ctrl" (passe-temps personnel): OK
  5. Je souhaite utiliser "TrackPad" pour la saisie (car je n'utilise le Trackpad que depuis 20 ans): NG

Le résultat était 4 victoires et 1 défaite

<détails> Ⅱ. Contexte </ summary>

J'ai installé "Ubuntu 18.04" dans l'environnement virtuel MacBookPro + et j'ai exécuté "DeepLeaning / ROS1" dessus pour jouer, mais ** [Commençons "DeepLeaning" sérieusement et "DeepLeaning② fait à partir de zéro" Semble avoir besoin d'un GPU] **, donc je cherchais ** "eGPU" ** qui se connecte au MacBook Pro.

«NVIDIA GPU» est requis pour «Deep Leaning»

Information avec! ** Apple et NVIDIA se sont battus tout le temps. ** Cependant, j'ai été déçu d'acheter un PC (j'avais une petite somme d'argent), alors j'ai essayé diverses choses, mais

--Microsoft Azure: les débutants Linux sont lourdement chargés lors des allers-retours --Google Colab: délai de 90 minutes

À la suite de, j'étais en colère de l'utiliser dans ROS et j'ai décidé d'acheter un PC avec un GPU dédié à Ubuntu (à ce moment-là, pour la première fois de ma vie, j'ai réalisé la réalité d'acheter un PC autre que Mac, et la valeur de mon expérience était faible. J'ai un peu peur)

Ⅲ. Débit jusqu'à la fin de la mission

  1. Matériel sécurisé
  2. Installation d'Ubuntu et vérification du fonctionnement du pilote NVIDIA
  3. Montez le disque dur interne (je veux utiliser le SSD pour le système d'exploitation et le disque dur pour les données séparément)
  4. Paramètres de base et paramètres du clavier de type Mac
  5. Installation du logiciel de base
  6. Installation du logiciel de développement de base
  7. Installez Docker (pour NVIDIA)
  8. Créez un environnement pour [TensorFlow + Keras] sur Docker
  9. Créer un environnement [ROS2] sur Docker (des mises à jour supplémentaires sont en cours)
  10. Créez un environnement pour [PyTorch] sur Docker (des mises à jour supplémentaires sont en cours)

Ⅳ. Début de la mission

1. Matériel sécurisé </ summary>

1.1. Corps du PC (pour le niveau débutant de Deep Leaning)

Comme je n'ai jamais acheté de matériel autre que Mac, j'ai consulté Slack "CDLE" et j'ai décidé d'acheter un PC de jeu BTO avec des spécifications proches des spécifications recommandées sur le Net shop (le PC de jeu a toujours un GPU). D'après le conseil que la performance des coûts totaux est bonne)

article Résultat de la consultation réalité
CPU Core i7 ou i5 Gen10 ou supérieur i5 Gen9
memory Autant que possible 16GB
GPU GeForce GTX1600 SUPER GeForce GTX1600 SUPER
SSD (Pour OS) 250 Go x 2(Ubuntu et Win Dual Boot) 480 Go x 1(Ubuntu uniquement)
HDD (Pour les données) - 2TB

La différence entre la recommandation et la réalité est le résultat d'un compromis entre «différences dans le modèle de base de chaque magasin» et «budget». En fin de compte, c'était environ 13 Sakichi.

** [Enseignement des membres du CDLE] ** ** ・ Le PC pour Deep Leaning dit "L'accent est mis sur le GPU et la taille de la mémoire sur le GPU", mais en fonctionnement réel, le processeur et la mémoire de prétraitement deviennent souvent des goulots d'étranglement, donc une configuration bien équilibrée est possible. souhaitable**

** ・ BTOPC peut changer le processeur / la mémoire / le GPU dans une certaine mesure plus tard, il est donc préférable d'acheter d'abord en fonction de votre budget et d'essayer de faire une erreur pour voir si cela répond à vos besoins et de modifier la configuration. ** **

** [Difficulté] ** Un mois après l'achat, le phénomène selon lequel «cela ne démarre pas avec une probabilité de 80% à moins que la mémoire ne soit retirée de la carte mère une fois» se produit. Lorsque j'ai consulté la boutique en ligne que j'ai achetée,

, 2 choix. Heureusement, il y avait un vrai magasin dans le quartier, alors je l'ai apporté et j'ai été hospitalisé pendant 4 jours, puis renvoyé par échange de mémoire. En outre, je vais également vous apprendre à isoler l'état de démarrage par la couleur de la LED de "ASUS Mother Board" J'étais assez impatient, donc c'était vraiment utile d'avoir un vrai magasin à proximité. Je l'achèterai dans ce magasin la prochaine fois

【Leçon】 ** ・ Le bon marché et les spécifications sont importants pour les PC BTO, mais les débutants doivent choisir un acheteur en tenant compte du dépannage **

1.2. Système d'entrée

―― Comme l'espace de travail est petit, nous avons tout construit sans fil.

1.2.1. Côté PC: dongle USB Bluetooth

--Newiy Start Ver4.0 Adaptateur: 1 → 2

1.2.2. Souris (?)

--Apple: Magic TrackPad (1ère génération) → LogiCool: M337

――Je veux faire correspondre le système d'entrée au MacBook, alors procurez-vous le Magic TrackPad (première génération) avec Yahoo!

-** [Difficulté] ** ―― Le multi-touch se sent bien avec un très bon logiciel appelé "fusuma", mais le mouvement du curseur lui-même est désagréable, et j'ai répété divers "google + setting + restart" pendant deux jours complets, mais cela ne va pas bien. Au contraire, le stress ne fait qu'augmenter. J'ai abandonné et l'ai acheté pour la "Blurtooth Mouse" bon marché de Logicool.

1.2.3. Clavier

-** [Difficulté] ** ――Cela fonctionne relativement bien, mais parfois (en veille / lorsque je change les paramètres du système d'exploitation et redémarre), la connexion est perdue. S'il est épuisé, vous devez connecter un clavier filaire, configurer la connexion Bluetooth et la redémarrer avant de pouvoir l'utiliser. J'ai beaucoup d'ennuis, alors [Souhaitez-vous en acheter un nouveau? ] Est envisagé (bien que la touche soit bonne) En passant, j'ai changé mon ordinateur portable d'entreprise en une clé américaine en conséquence.

【Leçon】 ** ・ Il n'est pas facile d'obtenir le même Touch & Feel que les produits Apple simplement en connectant les produits Apple à Linux ** ** - Un clavier et une souris filaires d'urgence sont requis. Préparez-vous à portée de main **

<détails> 2. Installation d'Ubuntu et vérification du fonctionnement du pilote NVIDIA </ summary>

2.1. Préparation de l'image d'installation d'Ubuntu 20.04 (version japonaise)

<Référence> Que faire après l'installation d'Ubuntu 20.04

--Ubuntu télécharge le fichier image 20.04 du site Web officiel d'Ubuntu Japon HereIl y a beaucoup de pages détaillées ici, je vais donc leur les remettre. Veuillez essayer de le trouver en fonction de votre environnement d'installation. «J'avais un« lecteur DVD »sur le PC que j'ai acheté, j'ai donc gravé le fichier image sur un DVD en direct. --Brûlez le fichier image ubuntu sur DVD et vous avez terminé

2.2. Installer Ubuntu 20.04

--Insérez le support d'installation, changez le disque de démarrage sur "chaque support d'installation" selon le BIOS de la carte mère, et démarrez pour démarrer l'installation.

【point important】

--Si vous ajoutez un GPU NVIDIA, les étapes suivantes sont requises (je suis resté bloqué)

<Référence> Ubuntu 20.04 Partie 25 - Problèmes connus avec Ubuntu 20.04 LTS

--Confirmation de l'installation du pilote de nvidia

python


$ nvidia-smi -l
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.100      Driver Version: 440.100      CUDA Version: 10.2     |
|-------------------------------+----------------------+----------------------+
| 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 166...  Off  | 00000000:01:00.0  On |                  N/A |
| 42%   37C    P8     8W / 125W |    249MiB /  5936MiB |      3%      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      1127      G   /usr/lib/xorg/Xorg                            35MiB |
|    0      2006      G   /usr/lib/xorg/Xorg                            94MiB |
|    0      2202      G   /usr/bin/gnome-shell                          97MiB |
|    0      6565      G   /usr/lib/firefox/firefox                       2MiB |
|    0      7875      G   /usr/lib/firefox/firefox                       2MiB |
|    0     10070      G   /usr/lib/firefox/firefox                       2MiB |
+-----------------------------------------------------------------------------+

3. Montez le disque dur interne (je veux utiliser le SSD pour le système d'exploitation et le disque dur pour les données séparément) </ summary>

<Référence> Comment monter un disque dur de 2 To ou plus sur CentOS

--Trouver le disque dur

python


$ sudo parted -l

――Parce qu'il dépasse 2 To, attachez une étiquette de disque avec "GPT"

python


$ sudo parted /dev/sdb
(parted) mklabel gpt
(parted) p

--Toute la capacité est ext4, 1 partition

python


(parted) mkpart primary ext4 0% 100%
(parted) p

--Depuis la création de la partition, terminez parted.

python


(parted) quit

--Format avec "ext4"

python


$ sudo mkfs.ext4 /dev/sdb1

--Créez un point de montage et montez le disque dur (Le point de montage était juste un répertoire / je n'étais pas sûr que cet emplacement était bon, alors j'ai fait chmod777.)

python


$ sudo mkdir /home/Hdd_2nd
$ sudo mount -t ext4 /dev/sdb1 /home/Hdd_2nd
$ sudo mount

python


$ sudo nano /etc/fstab

--Ajout de la ligne suivante au fichier ouvert ([tab], pas d'espace entre les caractères. J'étais accro ici)

python


/dev/sdb1       /home/Hdd_2nd   ext4    defaults        0       0

<détails> 4. Paramètres de base et paramètres du clavier de type Mac </ summary>

4.1. Paramètres du clavier: compatible avec les claviers américains

python


$ sudo dpkg-reconfigure keyboard-configuration

python


$ sudo nano /usr/share/ibus/component/mozc.xml
<layout>us</layout>

4.2. Rendre le répertoire dans votre maison en anglais

――Lors de l'accès depuis le terminal, il est gênant s'il est japonais, alors revenez en anglais

python


$ LANG=C xdg-user-dirs-gtk-update

--Si cela ne fonctionne pas, éditez $ sudo nano ~ / .config / user-dirs.dirs '' comme suit

python


$ sudo nano ~/.config/user-dirs.dirs
________________________
XDG_DESKTOP_DIR="$HOME/Desktop"
XDG_DOWNLOAD_DIR="$HOME/Downloads"
XDG_TEMPLATES_DIR="$HOME/Templates"
XDG_PUBLICSHARE_DIR="$HOME/Share"
XDG_DOCUMENTS_DIR="$HOME/Documents"
XDG_MUSIC_DIR="$HOME/Music"
XDG_PICTURES_DIR="$HOME/Pictures"
XDG_VIDEOS_DIR="$HOME/Videos"
________________________

python


$ mv $HOME/bureau$HOME/Desktop
$ mv $HOME/Télécharger$HOME/Downloads
$ mv $HOME/modèle$HOME/Templates
$ mv $HOME/Libération$HOME/Share
$ mv $HOME/document$HOME/Documents
$ mv $HOME/musiques$HOME/Music
$ mv $HOME/image$HOME/Pictures
$ mv $HOME/vidéo$HOME/Videos

--C'est OK pour vous reconnecter (parfois l'affichage de la barre latérale est mixte anglais / japonais, mais j'ai abandonné)

4.3. Associer les affectations des touches à Mac

4.3.1 Remplacez «Touche super gauche (alt)» et «Touche de verrouillage majuscule» par «Touche Ctrl»

--Installez Gnome Tweaks --Installer à partir du logiciel Ubuntu / [Tweaks] est le nom du programme

Tweak.png

4.3.2 Remplacez la "Super clé gauche" par la touche Ctrl

python


$ xmodmap -pke > ~/.Xmodmap_default

--Trouvez le numéro de clé de "Super clé gauche" --Lorsque vous tapez la commande suivante, une fenêtre carrée s'ouvre, donc si vous "entrez" pendant que vous pouvez la voir, le numéro de clé sera affiché (dans mon cas, c'était "133").

python


$ xev | grep keycode

キー入力.png Le diaporama photo s'affiche lorsque vous appuyez sur la "touche Retour". Modifier la méthode de configuration de base de la liaison de clé de Xmodmap

--Ajoutez ce qui suit au fichier ouvert

python


$ nano ~/.Xmodmap
________________________
clear control
clear mod4

! Command_L -> Control_L
keycode 133 = Control_L

add control = Control_L Control_R
add mod4 = Super_L Super_R Super_L Hyper_L
_________________________

--Réflexion des paramètres

python


$ xmodmap ~/.Xmodmap

python


$ xmodmap ~/.Xmodmap_default

-Veuillez [Redémarrer]

** La touche Ctrl sur la moitié gauche du clavier a un superbe arrangement de touches de "3 (Super (alt) gauche / Verr Maj / Touche ctrl d'origine)" ** ** Vous pouvez désormais copier avec la "touche Super gauche (alt)" + "c" **

4.3.3 Convertir en "anglais demi-largeur" avec la "touche Option (Démarrer)" + "s"

--mozc settings: installation de l'outil GUI --Par défaut, l'outil GUI "mozc" n'est pas installé, donc installez-le.

python


$ sudo apt install mozc-utils-gui

--Paramètres Language Région et langue > Source d'entrée > Icône Mozc Gear > Sélectionnez Paramètres clés > Sélectionnez Kotori

** Avec cela seul, la "touche Option (Démarrer)" + "s / a / c / x / z" vous donnera un sentiment familier de "katakana demi-largeur / anglais demi-largeur / hiragana / katakana pleine largeur / anglais pleine largeur". Mozc, Elai **

4.3.4. Commutation de la source d'entrée anglais / japonais avec "Touche Super gauche (alt)" + "Touche Espace" (pour le clavier américain)

** Vous pouvez désormais basculer entre l'anglais et le japonais avec "Touche Super gauche (alt)" + "Touche Espace" **

<détails> 5. Installation du logiciel de base </ summary>

<Référence> Que faire après l'installation d'Ubuntu 20.04

5.1. Désinstallation des logiciels inutiles

--Ubunta Software > Installé > "Supprimer" les logiciels inutiles

5.2. Installation de CopyQ (logiciel d'amélioration copier / coller): si nécessaire

python


$ sudo apt install copyq

5.3. Installation de vidage: logiciel de sauvegarde (pour une sauvegarde complète du système): si nécessaire

python


$ sudo apt install dump

python


$ sudo dump -0 -u -j /dev/sda2 -f /home/hdd_2nd/Sys_Backup/backup_2020_08_08.dump

5.4. Installation de Google Chrome (navigateur dédié à la traduction Google): si nécessaire

Téléchargez et enregistrez .deb 64 bits (pour Debian / Ubuntu) à partir du Site officiel

python


$ cd Downloads
$ sudo apt install -y ./google-chrome-stable_current_amd64.deb

<Référence> Comment installer Google Chrome sur Ubuntu

5.5. Après tout, je veux me sentir libre d'utiliser la traduction DeelP sur Ubuntu: si nécessaire

<Référence> Traduction DeepL sous Linux

5.6. Paramètres de Thunderbird

5.7. Dictionnaire Mozc amélioré

<Référence> Conversion Kana-Anglais / Japonais-Anglais avec Mozc (Google IME)

5.8. Installer le logiciel antivirus (pour la communication avec le PC principal)

--Installez "ClamTk" avec "Ubuntu Software"

5.9. Échange de données avec le PC principal

――Il semble qu'il existe différentes méthodes, mais les services suivants qui s'échangent via un navigateur ne nécessitant pas de modification du système sont sûrs. - OneDrive - GoogleDrive

6. Installation du logiciel de développement de base </ summary>

6.1 Contenu du manuel Shell en japonais: ceux qui ne sont pas bons en anglais

--Confirmez que la variable d'environnement LANG du shell est "ja_JP.UTF-8"

python


$ echo $LANG

python


$ export LANG=ja_JP.utf8

--Confirmez le contenu modifié

python


$ echo $LANG

--Installez le manuel japonais

python


$ sudo apt-get install manpages-ja

6.2 Installation de coquillages et de pêcheurs: uniquement pour ceux qui aiment

«J'ai mis dans un shell qui a la réputation d'être facile à utiliser.

python


$ sudo apt-add-repository ppa:fish-shell/release-3
$ sudo apt-get update
$ sudo apt-get install -y fish

$ sudo apt install curl /Non requis si curl est déjà installé
$ curl https://git.io/fisher --create-dirs -sLo ~/.config/fish/functions/fisher.fish
$ fisher add oh-my-fish/theme-bobthefish

** <Enseignement des ancêtres> ** ** - Ne changez pas le shell de connexion de bash **

6.3 Installation du terminateur: uniquement pour ceux qui aiment

――Vous pouvez ouvrir plusieurs shells avec ROS, alors mettez-les dedans.

python


$ sudo apt install terminator

--Démarrez et faites un clic droit dans le terminal pour "Définir": Ce qui suit est votre choix

6.4 Installer les polices Powerline: uniquement pour ceux qui aiment

―― Police indispensable pour faire un terminal sympa (il semble que c'est facile à voir)

python


$ git clone https://github.com/powerline/fonts.git --depth=1
$ cd fonts
$ ./install.sh
$ cd ..
$ rm -rf fonts

6.5. Installation de git: seulement ceux qui en ont besoin

――Il est essentiel pour le développement (en particulier ROS), mais mettons-le en cas de besoin

python


$ sudo apt install git

--Définissez les paramètres minimum.

python


$ git config --global user.name "Nom d'utilisateur"
$ git config --global user.adresse e-mail
$ git config --global core.editor nvim

python


$ sudo apt install xclip "Non requis si installé"
$ bash
$ ssh-keygen -t rsa -b 4096 -C "adresse mail"
~ Si vous n'utilisez pas la phrase secrète, saisissez plusieurs fois ~
$ eval "$(ssh-agent -s)"
$ ssh-add ~/.ssh/id_rsa
$ cat ~/.ssh/id_rsa.pub | xclip -selection c "Copier dans le clip"
~ Enregistrez la clé SSH à partir de la page Paramètres de github ~
Collez la clé publique copiée dans le presse-papiers avec la commande xclip

6.6. Installer Visual Studio Code: recommandé

--Défacto standard (?) De l'éditeur de programme sur Ubuntu

-Téléchargez et installez la version Linux à partir de la page de téléchargement

--Facile à utiliser --Cliquez sur Extension sur le côté gauche de l'écran pour ouvrir MARKET PLACE --Installer le développement à distance: pour Docker --Installer Docker: pour Docker --Japonais

6.7. Maintenant que nous avons une pause, sauvegardez le système: seuls ceux qui en ont besoin

--Sauvegarder

python


$ sudo dump -0 -u -j /dev/sda2 -f /home/inata/hdd_2nd/Sys_Backup/backup_2020_08_08.dump

(Pour la source de sauvegarde, entrez jusqu'au nombre à la fin (2 de / dev / sda2))

7. Installez Docker (pour NVIDIA) </ summary>

<Référence> Comment créer un environnement d'apprentissage GPU d'apprentissage en profondeur avec Docker

7.1. Paramètres du Docker-GPU

7.1.1 Désactiver le démarrage sécurisé

--Il semble que la commande nvidia-smi ne fonctionne pas bien sur Docker, alors assurez-vous de l'exécuter.

7.1.2 Confirmation du nouvel arrêt

--Il doit être arrêté lors de la configuration du GPU au moment de l'installation, alors vérifiez-le.

python


$ lsmod | grep -i nouveau

--OK si rien n'est affiché

7.1.3 Mises à jour des pilotes NVIDIA

--Logiciel et mises à jour> Sélectionnez le pilote (propriétaire, vérifié) parmi les pilotes supplémentaires et [Redémarrer]. 追加のドライバー.png ** [Difficulté] ** Si vous sélectionnez et installez le pilote (propriétaire, vérifié) dans "Pilotes supplémentaires",

python


$ nvidia-smi
$ Failed to initialize NVML: Driver/library version mismatch

(À l'origine, il est correct d'afficher l'état du GPU 7,5.)

La situation ne change pas même si vous entrez des commandes ou installez

python


$ sudo ubuntu-drivers autoinstall

-Le pilote (propriétaire, non vérifié) donnera le bon résultat de la commande `` $ nvidia-smi '' (probablement), alors laissez-le pendant un moment

――Il y a un pilote plus récent sur la page d'accueil de NVIDIA, mais il semble qu'il y ait de nombreux cas où vous serez accro par vous-même, donc pour le moment, le pilote "Recommandé pour le deuxième" d'Ubuntu est [bon].

7.2. Installation de nvidia-cuda-toolkit

python


$ sudo apt install nvidia-cuda-toolkit

7.3. Installation de Docker

―― La procédure pour la version officielle est compliquée, et j'ai également foiré une fois, donc dans [Karaage-san], Comment créer un environnement d'apprentissage GPU d'apprentissage en profondeur avec Docker J'utiliserai le script décrit (M. Karaage, merci)

python


$ sudo apt install -y curl (non requis si installé)
$ curl -s https://raw.githubusercontent.com/karaage0703/ubuntu-setup/master/install-docker.sh | /bin/bash

-Veuillez [Redémarrer] --Confirmation de l'installation de Docker

python


$ sudo docker run hello-world
OK s'il n'y a pas d'erreur

--Nettoyer

python


$ docker container prune
$ docker image rm hello-world:latest

7.4. Installation de NVIDIA Container Toolkit

python


$ curl -s https://raw.githubusercontent.com/karaage0703/ubuntu-setup/master/install-nvidia-container-toolkit.sh | /bin/bash

python


$ docker run --gpus all --rm nvidia/cuda nvidia-smi

――J'obtiens une erreur pour une raison quelconque, mais l'ignore (Karaage-san l'a également ignorée (rires))

7.5. Vérification du fonctionnement du GPU NVIDIA sur Docker

--Exécuter l'image Docker officielle de TensorFlow

python


$ docker run --gpus all -it --rm --name tensorflow-gpu -p 8888:8888 tensorflow/tensorflow:latest-gpu-py3
(-p 8888:8888 est pour le port notebook jupyter)

python


# nvidia-smi

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.100      Driver Version: 440.100      CUDA Version: 10.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:1Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 166...  Off  | 00000000:01:00.0  On |                  N/A |
| 42%   36C    P8     8W / 125W |    342MiB /  5936MiB |      2%      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
+-----------------------------------------------------------------------------+

【Remarque】 ** - Les détails du processus ne sont pas affichés même si la commande $ nvidia-smi``` est exécutée sur Docker. Cela semble être une spécification. ** ** ** ・ Si vous posez une question sur StackOverflow, [Vous ne pourrez pas voir, car le pilote ne connaît pas l'espace de noms PID. (Traduction DeepL: vous ne pouvez pas voir car le pilote ne reconnaît pas l'espace de noms PID.)] A été répondu **

python


# jupyter notebook

--jupyter notebook démarre et l'adresse s'affiche sur le terminal

python


http://127.0.0.1:8888/?token=xxxxxxxxxxxxxx`

python


from tensorflow.python.client import device_lib
device_lib.list_local_devices()

Jupyter Notebook.png

python


# exit

7.6. Supprimer le conteneur Docker et l'image que j'ai exécutés dans la version d'évaluation

python


$ docker container prune
$ docker image rm tensorflow/tensorflow:latest-gpu-py3

7.10. Étudier Docker: uniquement pour ceux qui en ont besoin

Il est plus facile de connaître le mécanisme et les commandes de Docker plus tard, alors étudions un peu ici.

――Parce que c'est une bonne idée, enregistrez également le compte Dockerhub.

8. Créez un environnement pour [TensorFlow + Keras] sur Docker </ summary>

--Utilisez l'image NGC TensorFlow fournie par NVIDA. Je ne connais pas la différence avec l'image officielle de TensorFlow Docker (je ne l'ai pas vérifiée), mais je suis venu ici pour utiliser le GPU de NVIDIA, donc c'est [Si vous mangez du poison, c'est une assiette].

8.1. Installation de cuDNN

--Je ne sais pas si CuDNN est également nécessaire, mais j'ai besoin d'une version pour déterminer l'image de NGC, donc je vais l'inclure.

--Comment vérifier la version de CUDA

python


$ nvcc -V

--Accédez à la page d'accueil de NVIDIA cuDNN

python


$ sudo dpkg -i libcudnn7_7.6.5.32-1+cuda10.1_amd64.deb
$ sudo dpkg -i libcudnn8-dev_8.0.2.39-1+cuda10.1_amd64.deb
$ sudo dpkg -i libcudnn8-doc_8.0.2.39-1+cuda10.1_amd64.deb

8.2. Vérifier la version du pilote NVIDIA

--Comment vérifier la version de CUDA

python


$ nvcc -V

--Comment vérifier la version de CuDNN

python


$ cat /usr/include/cudnn.h | grep CUDNN_MAJOR -A 2
#define CUDNN_MAJOR 7
#define CUDNN_MINOR 6
#define CUDNN_PATCHLEVEL 5
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)

8.3. Sélectionnez l'image NGC pour Docker for TensorFlow

――Déterminez l'image à PULL à partir de la page d'accueil et des versions de CUDA et CuDNN ci-dessous. - https://ngc.nvidia.com/catalog/containers/nvidia:tensorflow/tags - https://docs.nvidia.com/deeplearning/frameworks/tensorflow-release-notes/ --Dans mon cas, ** CUDA: 10.2.89 / cuDNN: 7.6.5, donc je tire (RUN) "TensorFlow Release 20.03" **

8.4. Obtenir une image NGC de Docker pour TensorFlow et démarrer le conteneur

python


$ docker image pull nvcr.io/nvidia/tensorflow:20.03-tf1-py3

python


$ docker run --name tensor_keras --gpus all -it -p 8888:8888 nvcr.io/nvidia/tensorflow:20.03-tf1-py3

8.5. Vérifier les fichiers internes du conteneur et installer les pièces manquantes

python


# pip list

―― Puisqu'il est installé un peu, je vais l'installer au besoin. --Je mets ce qui suit pour le moment

python


# pip install --upgrade pip
# pip install Keras
# pip install pandas
# pip install pandas_datareader

8.6. Enregistrer le contenu du conteneur modifié dans un fichier image Docker

―― À l'origine, il serait plus cool de gérer avec un fichier Docker sans consommer d'espace disque, mais comme il s'agit d'un conteneur installé par PULL, créez une nouvelle image Docker à partir du conteneur modifié.

8.6.1. Arrêtez le conteneur Docker que vous souhaitez enregistrer

python


# exit

8.6.2. Assurez-vous que le conteneur cible est arrêté

――C'est OK si "STATUS" est "Quitté"

python


$ docker container ls -a
CONTAINER ID        IMAGE                         COMMAND                  CREATED             STATUS                     PORTS               NAMES
70d0795d84e8        inata/my_tensorflow_img:1.0   "/usr/local/bin/nvid…"   3 weeks ago         Exited (0) 4 seconds ago                       tensor_keras

8.6.3. Enregistrer dans un fichier image

--Enregistrer le conteneur modifié sous forme de fichier image nommé "my_tensorflow_img: 1.0"

python


$ docker container commit -a "INA-Ta" tensor_keras inata/my_tensorflow_img:1.0

python


$ docker container commit tensor_keras my_tensorflow_img:1.0

python


$ docker run --name tensor_keras --gpus all -it -p 8888:8888 inata/my_tensorflow_img:1.0

--Si vous enregistrez uniquement localement, vous pouvez passer sans la signature "-a" INA-Ta "" ou "nom de compte" 8.6.4. Conduire le conteneur à partir de l'image Docker modifiée-Si vous souhaitez démarrer un nouveau conteneur dans le futur , Vous pouvez démarrer à partir de l'état modifié en partant du fichier image enregistré (point de sauvegarde) - "my_tensorflow_img: 1.0" Lancez le conteneur avec le nom "tensor_kera" 8.7. Le fichier image modifié Enregistrer sur Dockerhub - Connectez-vous à DockerHub

python


$ docker login

--Pousser le fichier image nouvellement créé vers Docker Hub

python


$ docker image push inata/my_tensorflow_img:1.0

DockerHub.png

python


docker logout

8.8. Enregistrer / lire le fichier image modifié dans le dossier local

python


$ docker image save -o /home/Hdd_2nd/Docker_Image/my_tensorflow_img_1.0.tar inata/my_tensorflow_img:1.0

python


$ docker image load -i /home/Hdd_2nd/Docker_Image/my_tensorflow_img_1.0.tar

** [Mise à jour supplémentaire en cours] m (_ _) m **

9. Créez un environnement pour [ROS2] sur Docker [Continue to update] </ summary>

** [Mise à jour supplémentaire en cours] m (_ _) m **

10. Construire l'environnement [PyTorch] sur Docker [Mise à jour en cours] </ summary>

** [Mise à jour supplémentaire en cours] m (_ _) m **

changer l'historique

Version 0: 21 septembre 2020

1ère édition: 22 septembre 2020 ① </ font>

  • Reflète les commentaires de Karaage-san (Merci: Karaage-san) </ font>

2e édition: 25 septembre 2020

  • Comme il est trop long, passez à l'écran pliable

Recommended Posts