J'ai créé mon propre bureau Linux haut de gamme dans l'article "J'ai créé un bureau Linux haut de gamme avec Intel NUC + SSD 2 To + DRAM 32 Go" Quand j'ai présenté [Future issues](https://qiita.com/y-vectorfield/items/2fcbc669a43fe0d0cb15#%E4%BB%8A%E5%BE%8C%E3%81%AE%E6%94%B9 % E8% 89% AF% E4% BA% 88% E5% AE% 9A% E8% A6% 81% E4% BA% 88% E7% AE% 97% E3% 81% A8% E3% 81% AE% E7 J'ai écrit que je voudrais relever le défi de créer une machine GPU utilisant eGPU en profitant du fait qu'il prend en charge Thunderbolt 3 en tant que% 9B% B8% E8% AB% 87). Nous avons pu organiser un budget à partir de divers porte-bonheur, nous avons donc toutes les pièces nécessaires. Dans cet article, je voudrais configurer eGPU comme première étape du plan de conversion de Deep Learning Workstation pour les postes de travail Linux haut de gamme utilisant eGPU.
GPU externe, c'est-à-dire un GPU externe. Développée à l'origine pour les ordinateurs portables avec uniquement un GPU avec un processeur intégré, une machine avec des performances graphiques insuffisantes est connectée à un GPU plus performant à l'aide d'une interface standard de communication haute vitesse pour améliorer les performances graphiques. Est le but. Récemment, l'Apple Store vend une unité eGPU (AMD Radeon intégrée) pour MacBook, et vous pouvez améliorer les performances graphiques en la connectant à un MacBook compatible. Cette fois, j'aimerais connecter un eGPU sur un bureau et une machine Linux pour en faire un poste de travail pour le Deep Learning. L'interface utilisée pour se connecter est Thunderbolt 3.
Les avantages et inconvénients de l'eGPU sont décrits ci-dessous.
L'eGPU utilisé cette fois-ci est un kit qui convertit un GPU initialement vendu sous forme de carte vidéo en eGPU. Le coût de l'eGPU est le suivant.
Types de pièces | Numéro de modèle | Fabricant | prix | Remarques |
---|---|---|---|---|
Carte vidéo | NVIDIA Geforce RTX 2080 SUPER GALAKURO GAMING |
Orienté vers l'expert | ¥74,800. | NTT-Acheter sur X Store |
Kit de conversion eGPU | Razer Core X RC21-01310100-R3J1 |
Razer | ¥36,080. | Acheté en ligne sur PC Studio |
Total: 110 880 ¥. Total avec PC: 218065 ¥ (lorsque PayPay est pris en compte: 173 604 ¥)
Le GPU a acheté le Geforce RTX 2080 SUPER de NVIDIA (orienté expert) car son utilisation en tant que poste de travail pour l'apprentissage en profondeur est l'objectif le plus important de la construction. À l'origine, je prévoyais d'acheter 2070 SUPER, ce qui est deux rangs de moins, mais comme il était en vente au NTT-X Store, j'ai acheté le GPU sur une impulsion.
(Page de vente du NTT-X Store au 18 février 2020)Il s'agit du troisième GPU classé parmi les meilleurs (après TITAN RTX, RTX 2080 Ti) de la série Geforce vendue par NVIDIA en tant que GPU à usage général. ~~ Honnêtement, l'utilisation de la série 80 dans un environnement où les performances complètes ne sont pas disponibles avec une connexion Thunderbolt 3 peut être la pire en termes de performances de coût. .. .. ~~
C'est un kit pour convertir une carte vidéo en eGPU. Je l'ai trouvé quand je me demandais quel kit du fabricant acheter pour construire un eGPU qui se connecte au barebone Intel NUC que j'avais utilisé pour fabriquer mon propre PC [le site](https://nucfan.com/choose-egpu-for- Il a été introduit dans intel-nuc /). N'est-ce pas un produit bien équilibré en termes de prix, de performances et de fiabilité de l'éditeur? (Mon opinion personnelle) Cependant, tous les sites de vente en ligne nationaux sont épuisés, et de plus en plus de sites sont équipés d'un port USB et d'un port LAN de meilleure qualité et ne vendent que des modèles de 20 000 yens de plus. Je l'ai finalement trouvé sur la vente par correspondance du studio informatique personnel et l'ai acheté. Il existe un kit pas cher fabriqué en Chine, mais si vous faites une erreur et détruisez le 2080 SUPER, ce ne sera pas à la mode, j'ai donc acheté un produit vendu par un graphiste même s'il est un peu cher.
J'ai été honnêtement abasourdi quand j'ai vu le produit réel qui m'a été envoyé. Le résultat final est que l'eGPU est beaucoup plus grand que le PC lui-même. : crier:
La procédure de configuration réelle est décrite ci-dessous. C'est facile à décrire, mais jusqu'à ce que je sache comment le construire, c'était l'histoire de la lutte: scream_cat:. (Processus d'installation du pilote, etc.)
Connectez la Geforce RTX 2080 SUPER (ci-après RTX 2080SP) à Razer Core X (ci-après Core X) et convertissez-la en eGPU. L'installation n'est pas difficile car vous ouvrez simplement le couvercle du Core X, installez RTX 2080SP dans l'emplacement PCI interne et connectez le cordon d'alimentation (8 broches, 6 broches), mais en raison de la grande taille du corps, la maniabilité est médiocre ou l'emplacement Il peut être difficile de vérifier si c'est le cas. Une fois assemblé, ne vous connectez pas au PC à ce stade. Après cela, nous décrirons comment configurer la boîte à outils CUDA et exécuter l'eGPU avec le pilote NVIDIA. Cependant, la configuration avec une configuration rare avec trop peu de documents n'est pas simple et c'est une méthode trouvée par Trial & Error après avoir effectué plusieurs fois la récupération et la réinstallation du pilote. : dancer :: dancer_tone :: dancer_tone2 :: dancer_tone3 :: dancer_tone4 :: dancer_tone5:
: innocent: Comment mettre en place un eGPU à partir de mars 2020. : avertissement: Il est censé être configuré comme une machine Linux uniquement.
J'ai fait beaucoup de recherches pour la configuration et j'ai remarqué que la version du BIOS de l'Intel NUC 8i7BEH utilisée pour mon propre PC était ancienne (0064) et la dernière version était 0077. Apparemment, 0064 semble être la version avant la vente de la série RTX, alors j'ai décidé de la mettre à jour.
L'Intel NUC utilisé pour cette construction est un modèle compatible UEFI et le démarrage sécurisé peut être activé. Dans ce cas, désactivez d'abord le démarrage sécurisé, puis configurez-le. Pour configurer avec Secure Boot activé, vous devez enregistrer la clé. À ce stade, il n'y a aucune garantie que l'eGPU fonctionnera correctement, il est donc désactivé, mais si vous approfondissez votre compréhension du démarrage sécurisé et de l'UEFI à l'avenir, j'aimerais essayer la configuration lorsque le démarrage sécurisé est activé.
: avertissement: Si vous effectuez l'opération ci-dessus, le double démarrage avec Windows ne sera pas possible. : crier:
Boot / Secure Boot / Secure Boot
sur l'écran du BIOS pour le désactiver.Installez un pilote NVIDIA appelé pilote NVIDIA pour faire fonctionner le RTX2080SP. Si vous ne configurez pas le BIOS pour autoriser l'UEFI à charger des pilotes tiers, l'UEFI ne chargera pas le pilote NVIDIA et vous ne pourrez pas utiliser le RTX 2080SP.
Seurity / Security Features / Allow UEFI Third Party Driver loading
sur l'écran du BIOS pour l'activer.Si vous avez deux PC ou plus, il est pratique de pouvoir vous connecter au PC à configurer avec SSH. Installez OpenSSH Server afin de pouvoir vous connecter avec SSH. (Étant donné que le système d'exploitation n'est peut-être pas la dernière version, la «mise à niveau adapt» est également implémentée.)
sudo apt install -y openssh-server
Je pense que l'environnement à sélectionner différera en fonction de vos préférences et de votre environnement, comme la méthode de connexion sans mot de passe à l'aide d'un fichier de clé et la méthode d'utilisation d'une connexion par mot de passe. Veuillez vous référer aux articles sur le net pour chaque méthode de réglage.
Connectez l'eGPU au corps du PC. Lorsque vous démarrez votre PC, le ventilateur tournera avec un rugissement. Il ne s'agit pas d'un dysfonctionnement, mais d'une opération qui se produit parce que les fonctions principales telles que le contrôle du ventilateur ne fonctionnent pas car la certification de l'appareil Thuderbolt 3 n'est pas terminée. Si l'interface graphique est activée (version Desktop), un écran demandant l'authentification par mot de passe s'affiche. Entrez le mot de passe et l'explosion s'arrêtera. Cette méthode ne peut pas être utilisée lors de l'utilisation de la CLI, nous décrirons donc comment s'authentifier même dans l'environnement CLI.
Utilisez la commande boltctl
pour connaître l'uuid d'un périphérique Thunderbolt 3 (Core X dans cet article). L'affichage suivant apparaîtra. Notez uuid.
$ boltctl
● Razer Core X
├─ type: peripheral
├─ name: Core X
├─ vendor: Razer
├─ uuid: <Uuid unique>
├─ status: connected
│ ├─ domain: domain0
│ └─ authflags: none
├─ connected: <Date et heure de la connexion>
└─ stored: no
Exécutez l'authentification avec la commande suivante. Vous serez invité à entrer le mot de passe, alors entrez le mot de passe utilisateur et vous avez terminé.
sudo boltctl authorize <Uuid>
Lorsque l'authentification est terminée, l'explosion s'arrête.
Si vous exécutez boltctl
après l'authentification, ce qui suit sera affiché.
$ boltctl
● Razer Core X
├─ type: peripheral
├─ name: Core X
├─ vendor: Razer
├─ uuid: <Uuid unique>
├─ status: authorized
│ ├─ domain: domain0
│ └─ authflags: none
├─ authorized: <Date et heure de fin d'authentification>
├─ connected: <Date et heure de la connexion>
└─ stored: no
Les informations d'authentification ne seront pas sauvegardées telles quelles et les informations d'authentification seront perdues lors de l'arrêt (retour de l'explosion). Par conséquent, configurez-le pour qu'il s'authentifie automatiquement.
boltcl enroll --policy auto <Uuid>
<détails> Lorsque vous connectez une carte vidéo NVIDIA à Linux, le pilote Nouveau pilote de version OSS, qui est implémenté par rétro-ingénierie du pilote NVIDIA, est activé. Pour vérifier, exécutez la commande suivante. S'il est activé, l'élément nouveau s'affiche. Exécutez la commande suivante pour le désactiver. Ajoutez le référentiel à apt d'Ubuntu et installez le pilote. La méthode d'installation à partir du script officiel NVIDA n'a pas pu être correctement exécutée avec la configuration (configuration eGPU) essayée dans cet article. Au moment de l'installation, installez la version avec recommandé. Lorsque j'ai configuré l'eGPU, le système X-Window est resté bloqué (c'est-à-dire que l'interface graphique n'a pas démarré) et j'ai fait beaucoup de travail, mais cela ne s'est pas amélioré du tout. Repose toi un peu. Je me demandais si tout l'investissement jusqu'à présent était dû à des bulles d'eau: scream:, mais une communauté qui promeut la diffusion de l'eGPU a été lancée, et cette communauté Solution est publié sur la page. Était là. Outre-mer, ce genre de communauté démarre très vite. Cette fois, je voulais vraiment améliorer mes compétences en anglais et pouvoir participer activement. En outre, en configurant le commutateur eGPU, vous pouvez également utiliser la borne de sortie vidéo sur la carte mère, afin que vous puissiez activer et désactiver l'eGPU selon vos besoins. Après cela, exécutez les options affichées (sélection du GPU, etc.) et redémarrez pour démarrer le système X-Window sur l'eGPU. Après le redémarrage, connectez le câble au port de sortie du côté de la carte vidéo et l'interface graphique s'affichera sur l'écran. (Connexion recommandée avant le démarrage) Vous pouvez l'installer avec la commande suivante. J'ai trouvé que l'installation avec cette méthode installerait la boîte à outils CUDA 9.1. Je veux installer la dernière boîte à outils CUDA ici, donc elle est enfin publiée ici site officiel de NVIDIA Installez par la méthode. Après l'installation, enregistrez le PATH suivant dans Après le redémarrage, compilez et exécutez la source de test suivante avec Référence: https://developer.nvidia.com/cuda-gpus Une fois l'installation terminée, vérifiez l'état avec la commande Référence: https://www.nemotos.net/?p=3176 J'ajouterai comment installer la bibliothèque cuDNN pour le calcul à grande vitesse du Deep Neural Network. Accédez à la page de téléchargement (https://developer.nvidia.com/rdp/form/cudnn-download-survey). L'inscription des membres est requise pour télécharger. Lors du premier téléchargement, cliquez sur «S'inscrire maintenant» pour vous inscrire en tant que membre. Après avoir terminé l'enregistrement de l'adhésion, cliquez sur «Connexion» pour vous connecter à la page de téléchargement. «J'accepte les termes du contrat de licence du logiciel cuDNN». Une liste des cuDNN téléchargeables s'affiche. Téléchargez la version de cuDNN qui correspond à votre système d'exploitation et la version de CUDA que vous avez installée. Voici un exemple de Accédez au répertoire où la source est stockée et décompressez le fichier tar. Un répertoire appelé Nous avons construit un eGPU en utilisant Razer Core X et NVIDIA Geforce RTX 2080 SUPER, l'avons connecté à une machine Linux et mis en place diverses choses. Cette fois, c'était un travail de construction qui a connu à la fois la force et la faiblesse de l'OSS. À l'avenir, j'aimerais utiliser pleinement cette station de travail en créant le serveur Jupyter Lab avec Docker et en créant l'environnement de K8S. Reference
[Mon mémorandum-quelque chose-](https://orebibou.com/2016/02/linuxunix%E3%81%A7%E6%96%87%E5%AD%97%E5%88%97%E3% 81% 8B% E3% 82% 89% E7% 89% B9% E5% AE% 9A% E9% 83% A8% E5% 88% 86% E5% 8F% B3% E3% 81% 8B% E3% 82% 89% E3% 83% BB% E5% B7% A6% E3% 81% 8B% E3% 82% 89% E4% BD% 95% E5% 80% 8B% E3% 80% 81% E3% 80% 87 / # i-6)
Recommended Posts
● Razer Core X
├─ type: peripheral
├─ name: Core X
├─ vendor: Razer
├─ uuid: <Uuid unique>
├─ dbus path: /org/freedesktop/bolt/devices/<Uuid unique>
├─ status: authorized
│ ├─ domain: domain0
│ ├─ parent: c7010000-0090-8d18-a3c2-b11ccc631023
│ ├─ syspath: /sys/devices/pci0000:00/0000:00:1c.4/0000:02:00.0/0000:03:00.0/0000:04:00.0/domain0/0-0/0-1
│ └─ authflags: none
├─ authorized: <Date et heure de la certification>
├─ connected: <Date et heure de la connexion>
└─ stored: <Date et heure de l'enregistrement des informations d'identification>
├─ policy: auto
└─ key: no
http://manpages.ubuntu.com/manpages/cosmic/man1/boltctl.1.htmlNouveau pilote arrêté
lsmod | grep nouveau
sudo sh -c "echo 'blacklist nouveau' > /etc/modprobe.d/blacklist-nouveau.conf"
sudo sh -c "echo 'options nouveau modeset=0' >> /etc/modprobe.d/blacklist-nouveau.conf"
sudo update-initramfs -u
sudo reboot
Configuration du pilote NVIDIA
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
ubuntu-drivers devices
Lorsque vous exécutez des périphériques ubuntu-drivers, l'affichage suivant apparaît. (L'affichage varie en fonction de l'environnement d'exécution) summary>
vendor : NVIDIA Corporation
driver : nvidia-driver-440 - third-party free recommended
driver : nvidia-driver-435 - distro non-free
driver : xserver-xorg-video-nouveau - distro free builtin
sudo apt install nvidia-driver-xxx
sudo reboot
Après le redémarrage, vérifiez l'état du GPU avec la commande `nvidia-smi`. résumé>
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.64 Driver Version: 440.64 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 RTX 208... Off | 00000000:07:00.0 Off | N/A |
| 0% 38C P8 16W / 250W | 0MiB / 7982MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
Configuration du commutateur eGPU (système X-Window fonctionnant sur eGPU)
sudo add-apt-repository ppa:hertg/egpu-switcher
sudo apt update
sudo apt install -y egpu-switcher
sudo egpu-switcher setup
sudo reboot
Exemple de processus de configuration egpu-switcher summary>
Found 2 possible GPUs...
1: NVIDIA Corporation Device 1e81 (rev a1) (7:0:0)
2: Intel Corporation Device 3ea5 (rev 01) (0:2:0)
Would you like to define a specific INTERNAL GPU? [y/N]: y
Choose your preferred INTERNAL GPU [1-2]: 2
Choose your preferred EXTERNAL GPU [1-2]: 1
[info] Saved new configuration to /etc/egpu-switcher/egpu-switcher.conf
[info] Automatically detecting if egpu is connected...
[info] EGPU is connected.
[info] Create symlink /etc/X11/xorg.conf -> /etc/X11/xorg.conf.egpu
Created symlink /etc/systemd/system/multi-user.target.wants/egpu.service → /etc/systemd/system/egpu.service.
[success] Done... Setup finished
Exemple d'affichage de `nvidia-smi` après redémarrage summary>
$ nvidia-smi
Sun Mar 15 17:37:20 2020
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.64 Driver Version: 440.64 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 RTX 208... Off | 00000000:07:00.0 On | N/A |
| 0% 30C P8 17W / 250W | 240MiB / 7973MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 1324 G /usr/lib/xorg/Xorg 18MiB |
| 0 1446 G /usr/bin/gnome-shell 49MiB |
| 0 1627 G /usr/lib/xorg/Xorg 96MiB |
| 0 1772 G /usr/bin/gnome-shell 72MiB |
+-----------------------------------------------------------------------------+
Installation de la boîte à outils CUDA
sudo apt install -y nvidia-cuda-*
sudo reboot
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin
sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget http://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda-repo-ubuntu1804-10-2-local-10.2.89-440.33.01_1.0-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu1804-10-2-local-10.2.89-440.33.01_1.0-1_amd64.deb
sudo apt-key add /var/cuda-repo-10-2-local-10.2.89-440.33.01/7fa2af80.pub
sudo apt update
sudo apt -y install cuda
.bashrc
.
export cuda_version=$(/usr/local/cuda/bin/nvcc -V | grep "Cuda compilation" | awk '{print $5}' | awk '{sub(",.*","");print $1;}')
export PATH=/usr/local/cuda-${cuda_version}/bin:$PATH
export CPATH=/usr/local/cuda-${cuda_version}/include:$CPATH
export LIBRARY_PATH=/usr/local/cuda-${cuda_version}/lib64:$LIBRARY_PATH
Contrôle de fonctionnement CUDA
nvcc
.hello.cu
#include <stdio.h>
__global__ void helloFromGPU()
{
printf("Hello World from GPU\n");
}
int main(void)
{
printf("Hello World from CPU\n");
helloFromGPU <<<1, 10>>>();
cudaDeviceReset();
return 0;
}
Si ce qui suit s'affiche, la configuration est réussie. résumé>
Construire et exécuter
$ nvcc hello.cu
$ ./a.out
Hello World from CPU
Hello World from GPU
Hello World from GPU
Hello World from GPU
Hello World from GPU
Hello World from GPU
Hello World from GPU
Hello World from GPU
Hello World from GPU
Hello World from GPU
Hello World from GPU
Dernière version compatible avec l'architecture(2020/3 Actuellement)
$ nvcc -arc sm_75 hello.cu
$ ./a.out
Hello World from CPU
Hello World from GPU
Hello World from GPU
Hello World from GPU
Hello World from GPU
Hello World from GPU
Hello World from GPU
Hello World from GPU
Hello World from GPU
Hello World from GPU
Hello World from GPU
Postscript: Confirmation par
lspci
lspci
. À ce stade, le nom du GPU peut ne pas être reflété correctement. Dans ce cas, exécutez la commande ʻupdate-pciids` et le nom sera reflété correctement.
$ lspci | grep -i nvidia
07:00.0 VGA compatible controller: NVIDIA Corporation Device 1e81 (rev a1)
07:00.1 Audio device: NVIDIA Corporation Device 10f8 (rev a1)
07:00.2 USB controller: NVIDIA Corporation Device 1ad8 (rev a1)
07:00.3 Serial bus controller [0c80]: NVIDIA Corporation Device 1ad9 (rev a1)
$ sudo update-pciids
Downloaded daily snapshot dated 2020-03-07 03:15:01
$ lspci | grep -i nvidia
07:00.0 VGA compatible controller: NVIDIA Corporation TU104 [GeForce RTX 2080 SUPER](rev a1)
07:00.1 Audio device: NVIDIA Corporation TU104 HD Audio Controller (rev a1)
07:00.2 USB controller: NVIDIA Corporation TU104 USB 3.1 Host Controller (rev a1)
07:00.3 Serial bus controller [0c80]: NVIDIA Corporation TU104 USB Type-C UCSI Controller (rev a1)
2020/4/12 PostScript Installation de cuDNN
Connectez-vous à la page de téléchargement du programme d'installation
Expliqué en utilisant la bibliothèque cuDNN pour Linux comme exemple
cuDNN v7.6.5 (18 novembre 2019), pour CUDA 10.2
. Cliquez sur le lien cuDNN Library for Linux
pour commencer à télécharger le fichier tar
.tar xvf cudnn-10.2-linux-x64-v7.6.5.32.tgz
cuda
est créé et les fichiers y sont développés.cuda/
├── NVIDIA_SLA_cuDNN_Support.txt
├── include
│ └── cudnn.h
└── lib64
├── libcudnn.so -> libcudnn.so.7
├── libcudnn.so.7 -> libcudnn.so.7.6.5
├── libcudnn.so.7.6.5
└── libcudnn_static.a
Stockage des fichiers sources
/ usr / local / cuda-Store
cudnn.h dans le répertoire ʻinclude
dans le répertoire <CUDA_VERSION>, et stocker les fichiers source dans
cuda / lib64 dans le répertoire
lib64`. Ceci termine l'installation de cuDNN.
Résumé