introduction
Puisqu'il était nécessaire d'avoir une machine équipée d'un GPU pour participer au concours d'images kaggle, nous avons construit un environnement GPU avec GCP.
Il existe déjà un certain nombre d'articles qui sont très utiles, et je les ai construits en référence à eux, mais il y a eu de nombreux cas où des erreurs se sont produites en raison de différences dans les versions, je vais donc les résumer à nouveau ici.
J'espère que cela aidera les nouveaux utilisateurs de GCP.
Nous remercions également ceux qui connaissent le sujet pour avoir signalé des erreurs ou des améliorations.
Inscription auprès de GCP
- Tout d'abord, veuillez vous inscrire auprès de GCP. Je pense qu'il n'y a pas de problème car je ne fais que suivre les conseils.
- https://console.cloud.google.com/
- Activez l'utilisation payante. Je pense qu'il y a un bouton "ACTIVER" dans le coin supérieur droit de la fenêtre, alors cliquez dessus.
De plus, le fait que vous l'activez ne signifie pas que vous serez facturé immédiatement. Je pense que vous avez obtenu un crédit gratuit de 300 $ (comme un coupon) pendant le processus d'inscription, mais le coût réel ne vous sera pas facturé tant que vous ne le dépasserez pas. Ces 300 $ représentent à peu près un mois d'utilisation d'une seule instance de GPU.
Instance de lancement
- Premièrement, appliquez pour l'utilisation du GPU. Cliquez sur l'icône de menu comme "Trois" en haut à gauche → "IAM et gestion" → "Affectation" → "Tableau des filtres" → "Nom de la limite supérieure" → "GPU (toutes les régions)" → "API Compute Engine" "Montant de l'allocation" -> "Modifier l'allocation" en haut-> Sélectionnez avec la case à cocher-> Entrez 1 (ou tout nombre requis) comme nouvelle limite supérieure sur l'écran de droite-> "afin d'exécuter un modèle d'apprentissage en profondeur" dans la description de la demande Cela devrait être correct si vous incluez "for kaggle".
- L'approbation de cette demande peut prendre des heures, voire des jours. Veuillez recharger cette page de temps en temps pour voir si les limites ont été mises à jour.
- Ensuite, déployez l'instance. Cliquez sur l'icône de menu comme "trois" en haut à gauche → "Marketplace" → Rechercher "Deep Learning VM" → "Démarrer l'opération" → Définissez comme suit. → Après avoir terminé les réglages, cliquez sur «Déployer»
- Nom du déploiement: définissez n'importe quel nom d'environnement.
--Zone: vous pouvez le laisser tel quel.
--Machine Type: définissez le nombre de processeurs et de mémoire. Le bloc-notes du noyau de Kaggle a 4 processeurs et 16 Go de RAM comme indicateur, bien que le nombre requis dépend de l'analyse.
--GPUs: Je pense que ce n'est pas grave si vous choisissez NVIDIA Tesla K80.
--Framework: vous pouvez le laisser tel quel.
--GPU, Accès à Jupyter Lab: veuillez cocher les deux.
- Disque de démarrage: vous pouvez laisser le type de disque tel quel, mais modifiez le paramètre si nécessaire. Augmentez la taille du disque de démarrage. Je pense que vous avez besoin d'au moins 300-500.
--Réseau: vous pouvez le laisser tel quel.
- ** Prix **: Le prix attendu de l'état actuel des paramètres est affiché dans le coin supérieur droit de la page. Veuillez consulter votre budget et apporter divers ajustements mineurs aux paramètres ci-dessus.
- Démarrez l'instance. Cliquez sur l'icône de menu comme "Trois" en haut à gauche → "Compute Engine" → "Instance de VM" → Cliquez sur la marque "..." (verticale) à l'extrémité droite de l'instance que vous venez de déployer → Sélectionnez "Démarrer".
- Vous devriez maintenant pouvoir démarrer l'instance, vous serez donc facturé. Si vous n'en avez pas besoin, sélectionnez "Arrêter" à partir de la même opération.
Environnement
- Tout d'abord, lancez un écran noir (invite). À partir de la même page que ci-dessus (cliquez sur l'icône de menu comme "trois" en haut à gauche → "Compute Engine" → "Instance de VM"), cliquez sur "▼" dans la deuxième "connexion" à l'extrême droite → "Ouvrir dans la fenêtre du navigateur"
- À ce moment, une erreur peut s'afficher sur l'écran de démarrage.Dans ce cas, fermez l'écran de démarrage et ouvrez à nouveau l'écran noir dans le même processus.
--En plus de cela, il existe également une méthode de connexion avec gcloud. Si vous êtes intéressé, veuillez le vérifier.
- Créez l'image du docker Kaggle officielle. Tapez la commande suivante sur un écran noir. (Hors ligne #)
#Image officielle
# https://github.com/Kaggle/docker-python
git clone https://github.com/Kaggle/docker-python.git
cd docker-python
#Construire la version GPU
#Je pense que cela prendra environ 30 minutes
./build --gpu
#Vérifiez l'image
# kaggle/python-gpu-Si la construction est affichée, elle est réussie
docker images
- Créez un conteneur. Tapez la commande suivante sur un écran noir. (Hors ligne #)
docker run -itd --runtime=nvidia -p 8888:8888 -v /home:/home --name cont-1 -h host kaggle/python-gpu-build /bin/bash
Veuillez noter que les éléments suivants sont susceptibles de changer.
--cont-1: le nom du conteneur est arbitraire. Cette fois, je l'ai fait comme ça. La même chose s'applique à cont-1 qui apparaît après cela.
--kaggle / python-gpu-build: C'est le nom de l'image affiché à l'étape précédente "images docker". Si vous suivez les étapes, cet exemple devrait convenir.
- Entrez dans le conteneur. Procédez comme suit:
#Démarrez le conteneur
$ docker container start cont-1
#Entrez dans le conteneur
$ docker container attach cont-1
Entrez exit
pour quitter le conteneur.
- Vérifiez le fonctionnement du GPU. Dans le conteneur, procédez comme suit:
#Réglage du chemin
export LD_LIBRARY_PATH=/usr/local/cuda/lib64
#Contrôle de fonctionnement
nvidia-smi
Si vous pouvez voir les détails du GPU, cela signifie que le conteneur reconnaît le GPU.
Si vous obtenez une erreur, veuillez effectuer le dépannage ci-dessous.
- Vérifiez le fonctionnement du GPU à partir de python. Avec celui-ci dans le conteneur, tapez d'abord `` python '' pour lancer le client Python. Au démarrage, procédez comme suit:
from tensorflow.python.client import device_lib
device_lib.list_local_devices()
Encore une fois, si le GPU est affiché sans erreur, les paramètres du GPU sont parfaits.
S'il y a une erreur, veuillez la résoudre.
Dépannage de l'utilisation du GPU
- Vérifiez si le GPU peut être utilisé à partir de l'instance elle-même en premier lieu.
nvidia-smi
Si vous ne voyez pas le GPU, vous n'avez probablement pas sélectionné le GPU dans les paramètres de votre instance.
GCP "Instance de VM" -> Cliquez sur Instance-> Rechercher un GPU avec Ctrl + F sur l'écran des détails de l'instance. Sinon, recommencez à partir de la section de lancement de l'instance.
- Essayez une autre méthode pour reconnaître le GPU et voir s'il peut être démarré. Si l'exécution de la commande suivante ne fonctionne pas, vous devrez peut-être mettre à jour votre version de cudo.
docker run --runtime nvidia -itd -p 8887:8887 -v /home:/home --name gpu-test -h host
Pour plus d'informations, veuillez consulter Commentaires ici.
Lancer le notebook Jupyter
- Commencez par démarrer le notebook Jupyter. Dans le conteneur, procédez comme suit:
jupyter notebook --port 8888 --ip=0.0.0.0 --allow-root
- Ensuite, définissez les paramètres pour accéder au notebook démarré. [Cet article](jupyter notebook --port 8888 --ip = 0.0.0.0 --allow-root) est très détaillé, je vais donc laisser l'explication.
De plus, il peut ne pas être possible de se connecter avec https, donc dans ce cas, veuillez également essayer avec http.
Introduction de l'API kaggle
Ce paramètre est requis car le téléchargement et l'importation de l'ensemble de données kaggle sont effectués via l'API.
- Installez le package kaggle avec pip.
pip install kaggle
-
Obtenez la clé API kaggle. kaggle HP → Mon compte → API → Cliquez sur Créer un nouveau jeton API. Le fichier json sera téléchargé.
-
Enregistrez la clé API dans l'instance GCP. La procédure consiste à créer d'abord un répertoire sur l'instance, à y enregistrer la clé et à accorder l'autorisation d'exécution.
#Créer un annuaire
mkdir ~/.kaggle
#Créer un fichier
touch ~/.kaggle/kaggle.json
#Écrire dans un fichier
#Il est plus facile de copier et coller la clé téléchargée depuis kaggle
vim ~/.kaggle/kaggle.json
#Accorder l'autorisation d'exécution
chmod 777 ~/.kaggle/kaggle.json
- Utilisez l'API kaggle. Veuillez consulter le Document officiel pour plus de détails.
Autres choses que vous devez savoir
Je pense que l'environnement de développement est fondamentalement configuré avec ce qui précède, mais je pense que différentes erreurs se produiront en fonction de chaque expérience à l'avenir. Voici certaines choses que vous devez savoir à ce moment-là pour vous permettre de vous résoudre plus facilement et de rechercher sur Google.
--Opération de fichier
- Il est plus facile de se souvenir des commandes Linux pour quelque chose comme la création, la suppression ou le déplacement de répertoires et de fichiers.
- Ici est un résumé concis des commandes importantes.
--Vérifier la capacité occupée
――Il arrive souvent qu'une erreur se produise en raison d'une capacité insuffisante. C'est une bonne idée de se souvenir des commandes df et du.
- Ici est résumé brièvement.
référence