Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| developpement:activites:integration:par4all4wheezy [2013/09/26 19:24] – [Pour utiliser P4A en mode OpenMP] equemene | developpement:activites:integration:par4all4wheezy [2013/09/26 19:45] (Version actuelle) – [Exemple] equemene | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| ====== Installation de Par4All sous Debian Wheezy ====== | ====== Installation de Par4All sous Debian Wheezy ====== | ||
| - | |||
| - | |||
| - | <note important> | ||
| <note important> | <note important> | ||
| Ligne 199: | Ligne 196: | ||
| < | < | ||
| - | N=8 | + | N=1 |
| - | while [ $N -gt 1 ] | + | while [ $N -ge 1 ] |
| do | do | ||
| - | echo " | + | echo " |
| export OMP_NUM_THREADS=$N | export OMP_NUM_THREADS=$N | ||
| / | / | ||
| Ligne 239: | Ligne 236: | ||
| 87.65user 0.03system 0: | 87.65user 0.03system 0: | ||
| + | Lancement sur 1 threads | ||
| + | |||
| + | 91.47user 0.02system 1: | ||
| </ | </ | ||
| - | Pour limiter le nombre de thread | + | |
| ==== Pour utiliser P4A en mode Cuda ==== | ==== Pour utiliser P4A en mode Cuda ==== | ||
| - | Utilisation directe | + | Utilisation directe |
| < | < | ||
| - | export CUDA_DIR=/opt/cuda | + | export CUDA_DIR=/usr/lib/nvidia-cuda-toolkit/ |
| p4a --cuda -vv matrix.c --fine -o matrix-cuda | p4a --cuda -vv matrix.c --fine -o matrix-cuda | ||
| </ | </ | ||
| + | |||
| + | Nous allons explorer une autre solution : | ||
| Utilisation avec compilation séparée | Utilisation avec compilation séparée | ||
| < | < | ||
| - | export CUDA_DIR=/ | ||
| # Appel de Par4all | # Appel de Par4all | ||
| p4a --fine --cuda -vv matrix.c | p4a --fine --cuda -vv matrix.c | ||
| # Compilation des sources CUDA avec le compilateur Nvidia | # Compilation des sources CUDA avec le compilateur Nvidia | ||
| - | nvcc --cuda -I$CUDA_DIR/include -DP4A_ACCEL_CUDA -I/ | + | nvcc --cuda -I/usr/include -DP4A_ACCEL_CUDA -I/ |
| - | nvcc --cuda -I$CUDA_DIR/include -DP4A_ACCEL_CUDA -I/ | + | nvcc --cuda -I/usr/include -DP4A_ACCEL_CUDA -I/ |
| # Compilation des deux sources | # Compilation des deux sources | ||
| - | g++ -c -I$CUDA_DIR/include -DP4A_ACCEL_CUDA -I/ | + | g++ -c -I/usr/include -DP4A_ACCEL_CUDA -I/ |
| - | g++ -c -I$CUDA_DIR/include -DP4A_ACCEL_CUDA -I/ | + | g++ -c -I/usr/include -DP4A_ACCEL_CUDA -I/ |
| # Compilation finale de l' | # Compilation finale de l' | ||
| - | g++ -L$CUDADIR/lib64 -L$CUDADIR/lib -Bdynamic -lcudart -o matrix-cuda matrix.p4a.o p4a_accel.o | + | g++ -L/usr/lib/ |
| # Effacement des fichiers intermédiaires inutiles | # Effacement des fichiers intermédiaires inutiles | ||
| rm p4a_accel.o p4a_accel.cpp | rm p4a_accel.o p4a_accel.cpp | ||
| </ | </ | ||
| + | |||
| + | En lançant la ''/ | ||
| + | |||
| + | < | ||
| + | / | ||
| + | La trace de la matrice est 18428734073246580736.00 | ||
| + | 2.81user 1.01system 0: | ||
| + | 0inputs+88outputs (0major+27380minor)pagefaults 0swaps | ||
| + | </ | ||
| + | |||
| ==== Pour utiliser P4A en mode OpenCL ==== | ==== Pour utiliser P4A en mode OpenCL ==== | ||
| Ligne 272: | Ligne 283: | ||
| Utilisation simple passe | Utilisation simple passe | ||
| < | < | ||
| - | p4a --opencl -vvv matrix.c -o matrix-ocl | + | p4a --opencl -vvv matrix.c -o matrix-OpenCL |
| </ | </ | ||
| - | Utilisation double passe | + | Son exécution donne ''/ |
| < | < | ||
| + | La trace de la matrice est 18428734073246580736.00 | ||
| + | 3.39user 3.22system 0: | ||
| + | 32inputs+112outputs (0major+38185minor)pagefaults 0swaps | ||
| </ | </ | ||
| - | ===== Exemple ===== | ||
| - | --- // | + | ===== Analyse des résultats ===== |
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | --- // | ||