|
|
# Utilisation des Phi #
|
|
|
## Accès ##
|
|
|
## Utilisation de base ##
|
|
|
### Accès ###
|
|
|
L'accès doit être demandé auprès de [Victor Mendoza](mailto:mendoza@lpnhe.in2p3.fr?subject=Demande accès machine GPU au LPNHE).
|
|
|
|
|
|
Ensuite, l'accès passe par une commande
|
|
|
```bash
|
|
|
ssh lpnws5232.in2p3.fr.
|
|
|
```
|
|
|
## Configuration de l'environnement ##
|
|
|
### Configuration de l'environnement ###
|
|
|
Pour accéder à [CUDA](http://www.nvidia.com/object/cuda_home_new.html)
|
|
|
```bash
|
|
|
. /usr/local/bin/cuda-setup.sh # sh, bash
|
... | ... | @@ -15,31 +16,50 @@ ou |
|
|
```bash
|
|
|
source /usr/locla/bin/cuda-setup.csh # csh, tcsh
|
|
|
```
|
|
|
## Les exemples CUDA ##
|
|
|
|
|
|
## Pour commencer ##
|
|
|
### Les exemples CUDA ###
|
|
|
Pour installer les exemples CUDA :
|
|
|
```bash
|
|
|
cuda-install-samples-7.5.sh $destDir
|
|
|
cd $destDir
|
|
|
cuda-fix-samples.sh # les rendre compatibles avec SL
|
|
|
make -j # pour tout compiler
|
|
|
```
|
|
|
Ensuite, soit on accède aux codes compilés dans chaque sous répertoire, organisé par thème :
|
|
|
```bash
|
|
|
SOMEWHERE/cuda-samples/NVIDIA_CUDA-7.5_Samples $ ls
|
|
|
0_Simple 2_Graphics 4_Finance 6_Advanced bin EULA.txt
|
|
|
1_Utilities 3_Imaging 5_Simulations 7_CUDALibraries common Makefile
|
|
|
```
|
|
|
Soit directement les binaires dans `SOMEWHERE/cuda-samples/NVIDIA_CUDA-7.5_Samples/bin/x86_64/linux/release/`
|
|
|
|
|
|
## Monitoring ##
|
|
|
Si l'on souhaite une sorte de "top" pour les gpu :
|
|
|
|
|
|
nvidia-smi --loop=2
|
|
|
|
|
|
## Exemples en python ##
|
|
|
### Exemples maison ###
|
|
|
#### Exemples en CUDA ####
|
|
|
Sur la base de l'estimation de pi :
|
|
|
* Essai basique : [pi_gpu_cuda.py](gpu/pi-test/pi_gpu_cuda.py)
|
|
|
* Essai mieux implémenté : [pi_gpu_v2.py](gpu/pi-test/pi_gpu_v2.py)
|
|
|
* Version multi-GPU : [pi_gpu_multiGPU.py](gpu/pi-test/pi_gpu_multiGPU.py)
|
|
|
* Utilisation de la librairie [thrust](http://docs.nvidia.com/cuda/thrust/) : [pi_gpu_thrust.py](gpu/pi-test/pi_gpu_thrust.py)
|
|
|
|
|
|
Pour utiliser les exemples python, il faut tout d'abord installer quelques modules python en local. Le plus simple est d'installer anaconda (https://www.continuum.io/downloads), qui permet d'avoir un environement python local, et d'installer des modules à volonté, sans avoir besoin d'être root sur la machine:
|
|
|
#### Exemples en python ####
|
|
|
Pour utiliser les exemples python, il faut tout d'abord installer quelques modules python en local. Le plus simple est d'utiliser [anaconda](https://www.continuum.io/downloads), qui permet d'avoir un environement python local, et d'installer des modules à volonté, sans avoir besoin d'être root sur la machine. L'outil est disponible sur la machine portant les gpu. Pour y accéder :
|
|
|
|
|
|
bash Anaconda3-2.5.0-Linux-x86_64.sh
|
|
|
export ANACONDADIR=/home/jlenain/local/python/src/anaconda
|
|
|
export PATH=$ANACONDADIR/bin:$PATH
|
|
|
unset PYTHONPATH
|
|
|
unset PYTHONUSERBASE
|
|
|
```bash
|
|
|
export ANACONDADIR="/usr/local/anaconda3-2.5.0"
|
|
|
export PATH="$ANACONDADIR/bin:$PATH"
|
|
|
```
|
|
|
|
|
|
On peut commodément placer ces lignes (sauf la première, qui ne se fait qu'une fois à l'installation d'anaconda) dans son ~/.bashrc ou ~/.bash_aliases.
|
|
|
Ensuite pour les exemples, on a besoin ~~d'installer~~ d'utiliser (c'est a priori déjà disponible pour tous les utilisateurs *à confirmer*) le module [numba](http://numba.pydata.org/) qui permet l'optimisation automatique de code python et comporte notamment la libraire NVIDIA CUDA pour la programmation GPU:
|
|
|
```bash
|
|
|
conda install numba
|
|
|
conda install accelerate
|
|
|
```
|
|
|
|
|
|
On peut ensuite installer le module numba (http://numba.pydata.org/) qui permet l'optimisation automatique de code python et comporte notamment la libraire NVIDIA CUDA pour la programmation GPU:
|
|
|
## Compléments ##
|
|
|
### Monitoring ###
|
|
|
Si l'on souhaite une sorte de `top` pour les gpu :
|
|
|
```bash
|
|
|
nvidia-smi --loop=2
|
|
|
```
|
|
|
|
|
|
conda install numba |