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:cuda4jessie [2015/11/17 13:31] – equemene | developpement:activites:integration:cuda4jessie [2016/04/21 17:10] (Version actuelle) – equemene | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| ====== Rétroportage de pilote Nvidia & Cuda sur une Debian Jessie ====== | ====== Rétroportage de pilote Nvidia & Cuda sur une Debian Jessie ====== | ||
| + | <note warning> | ||
| ===== Rétroportage de CUDA 6.5 sous Jessie ===== | ===== Rétroportage de CUDA 6.5 sous Jessie ===== | ||
| Ligne 7: | Ligne 8: | ||
| - | Voici la méthode permettant d' | + | Voici la méthode permettant d' |
| <note warning> | <note warning> | ||
| Ligne 81: | Ligne 82: | ||
| Les paquets créés sont les suivants : | Les paquets créés sont les suivants : | ||
| < | < | ||
| - | libcuda1_352.55-3_amd64.deb | + | libcuda1_355.11-2_amd64.deb |
| - | libegl1-nvidia_352.55-3_amd64.deb | + | libegl1-nvidia_355.11-2_amd64.deb |
| - | libgl1-nvidia-glx_352.55-3_amd64.deb | + | libegl-nvidia0_355.11-2_amd64.deb |
| - | libgles1-nvidia_352.55-3_amd64.deb | + | libgl1-nvidia-glx_355.11-2_amd64.deb |
| - | libgles2-nvidia_352.55-3_amd64.deb | + | libgles1-nvidia_355.11-2_amd64.deb |
| - | libnvcuvid1_352.55-3_amd64.deb | + | libgles2-nvidia_355.11-2_amd64.deb |
| - | libnvidia-compiler_352.55-3_amd64.deb | + | libglvnd-nvidia_355.11-2_amd64.deb |
| - | libnvidia-eglcore_352.55-3_amd64.deb | + | libnvcuvid1_355.11-2_amd64.deb |
| - | libnvidia-encode1_352.55-3_amd64.deb | + | libnvidia-compiler_355.11-2_amd64.deb |
| - | libnvidia-fbc1_352.55-3_amd64.deb | + | libnvidia-eglcore_355.11-2_amd64.deb |
| - | libnvidia-ifr1_352.55-3_amd64.deb | + | libnvidia-encode1_355.11-2_amd64.deb |
| - | libnvidia-ml1_352.55-3_amd64.deb | + | libnvidia-fbc1_355.11-2_amd64.deb |
| - | nvidia-alternative_352.55-3_amd64.deb | + | libnvidia-ifr1_355.11-2_amd64.deb |
| - | nvidia-cuda-mps_352.55-3_amd64.deb | + | libnvidia-ml1_355.11-2_amd64.deb |
| - | nvidia-detect_352.55-3_amd64.deb | + | nvidia-alternative_355.11-2_amd64.deb |
| - | nvidia-driver_352.55-3_amd64.deb | + | nvidia-cuda-mps_355.11-2_amd64.deb |
| - | nvidia-driver-bin_352.55-3_amd64.deb | + | nvidia-detect_355.11-2_amd64.deb |
| - | nvidia-kernel-dkms_352.55-3_amd64.deb | + | nvidia-driver_355.11-2_amd64.deb |
| - | nvidia-kernel-source_352.55-3_amd64.deb | + | nvidia-driver-bin_355.11-2_amd64.deb |
| - | nvidia-kernel-support_352.55-3_amd64.deb | + | nvidia-kernel-dkms_355.11-2_amd64.deb |
| - | nvidia-libopencl1_352.55-3_amd64.deb | + | nvidia-kernel-source_355.11-2_amd64.deb |
| - | nvidia-opencl-common_352.55-3_amd64.deb | + | nvidia-kernel-support_355.11-2_amd64.deb |
| - | nvidia-opencl-icd_352.55-3_amd64.deb | + | nvidia-legacy-check_355.11-2_amd64.deb |
| - | nvidia-smi_352.55-3_amd64.deb | + | nvidia-libopencl1_355.11-2_amd64.deb |
| - | nvidia-vdpau-driver_352.55-3_amd64.deb | + | nvidia-opencl-common_355.11-2_amd64.deb |
| - | xserver-xorg-video-nvidia_352.55-3_amd64.deb | + | nvidia-opencl-icd_355.11-2_amd64.deb |
| + | nvidia-smi_355.11-2_amd64.deb | ||
| + | nvidia-vdpau-driver_355.11-2_amd64.deb | ||
| + | xserver-xorg-video-nvidia_355.11-2_amd64.deb | ||
| </ | </ | ||
| Ligne 119: | Ligne 123: | ||
| Les paquets créés sont les suivants : | Les paquets créés sont les suivants : | ||
| < | < | ||
| - | nvidia-modprobe_358.09-1_amd64.deb | + | nvidia-modprobe_361.28-1_amd64.deb |
| </ | </ | ||
| Ligne 162: | Ligne 166: | ||
| Les paquets créés sont les suivants : | Les paquets créés sont les suivants : | ||
| < | < | ||
| - | nvidia-installer-cleanup_20151021+1_amd64.deb | + | nvidia-installer-cleanup_20151021+4_amd64.deb |
| - | nvidia-kernel-common_20151021+1_amd64.deb | + | nvidia-kernel-common_20151021+4_amd64.deb |
| - | nvidia-support_20151021+1_amd64.deb | + | nvidia-support_20151021+4_amd64.deb |
| </ | </ | ||
| Ligne 183: | Ligne 187: | ||
| dpkg -i nvidia-modprobe_*_amd64.deb | dpkg -i nvidia-modprobe_*_amd64.deb | ||
| + | dpkg -i nvidia-legacy-check-*_amd64.deb | ||
| dpkg -i nvidia-alternative_*_amd64.deb | dpkg -i nvidia-alternative_*_amd64.deb | ||
| Ligne 195: | Ligne 199: | ||
| dpkg -i nvidia-kernel-dkms_*_amd64.deb | dpkg -i nvidia-kernel-dkms_*_amd64.deb | ||
| - | ls -1 lib*352.55*deb | xargs -I ' | + | ls -1 lib*$(dpkg -l | grep nvidia-kernel-dkms | awk '{ print $3 }')*deb | xargs -I ' |
| apt-get -f install | apt-get -f install | ||
| Ligne 203: | Ligne 207: | ||
| dpkg -i nvidia-vdpau-driver_*_amd64.deb nvidia-driver_*_amd64.deb nvidia-driver-bin_*_amd64.deb | dpkg -i nvidia-vdpau-driver_*_amd64.deb nvidia-driver_*_amd64.deb nvidia-driver-bin_*_amd64.deb | ||
| - | ls *352.55*deb | grep -v ^lib | grep -v nvidia-kernel | grep -v libopencl | xargs -I ' | + | ls *$(dpkg -l | grep nvidia-kernel-dkms | awk '{ print $3 }')*deb | grep -v ^lib | grep -v nvidia-kernel | grep -v libopencl | xargs -I ' |
| dpkg -i nvidia-driver-bin_*deb nvidia-driver_*deb nvidia-xconfig* nvidia-settings* libxnvctrl* nvidia-smi_* | dpkg -i nvidia-driver-bin_*deb nvidia-driver_*deb nvidia-xconfig* nvidia-settings* libxnvctrl* nvidia-smi_* | ||
| Ligne 226: | Ligne 230: | ||
| Les paquets créés sont les suivants : | Les paquets créés sont les suivants : | ||
| < | < | ||
| + | libcublas7.0_7.0.28-4_amd64.deb | ||
| + | libcudart7.0_7.0.28-4_amd64.deb | ||
| + | libcufft7.0_7.0.28-4_amd64.deb | ||
| + | libcufftw7.0_7.0.28-4_amd64.deb | ||
| + | libcuinj64-7.0_7.0.28-4_amd64.deb | ||
| + | libcupti7.0_7.0.28-4_amd64.deb | ||
| + | libcupti-dev_7.0.28-4_amd64.deb | ||
| + | libcupti-doc_7.0.28-4_all.deb | ||
| + | libcurand7.0_7.0.28-4_amd64.deb | ||
| + | libcusolver7.0_7.0.28-4_amd64.deb | ||
| + | libcusparse7.0_7.0.28-4_amd64.deb | ||
| + | libnppc7.0_7.0.28-4_amd64.deb | ||
| + | libnppi7.0_7.0.28-4_amd64.deb | ||
| + | libnpps7.0_7.0.28-4_amd64.deb | ||
| + | libnvblas7.0_7.0.28-4_amd64.deb | ||
| + | libnvrtc7.0_7.0.28-4_amd64.deb | ||
| + | libnvtoolsext1_7.0.28-4_amd64.deb | ||
| + | libnvvm3_7.0.28-4_amd64.deb | ||
| + | nvidia-cuda-dev_7.0.28-4_amd64.deb | ||
| + | nvidia-cuda-doc_7.0.28-4_all.deb | ||
| + | nvidia-cuda-gdb_7.0.28-4_amd64.deb | ||
| + | nvidia-cuda-toolkit_7.0.28-4_amd64.deb | ||
| + | nvidia-nsight_7.0.28-4_amd64.deb | ||
| + | nvidia-opencl-dev_7.0.28-4_amd64.deb | ||
| + | nvidia-profiler_7.0.28-4_amd64.deb | ||
| + | nvidia-visual-profiler_7.0.28-4_amd64.deb | ||
| </ | </ | ||
| Ligne 234: | Ligne 263: | ||
| apt-get install -y opencl-headers ocl-icd-opencl-dev | apt-get install -y opencl-headers ocl-icd-opencl-dev | ||
| cd / | cd / | ||
| - | ls *6.5.19*deb | grep -v opencl | xargs -I ' | + | ls *7.0.28*deb | grep -v opencl | xargs -I ' |
| # Il arrive que l' | # Il arrive que l' | ||
| apt-get -f install | apt-get -f install | ||
| Ligne 243: | Ligne 272: | ||
| < | < | ||
| cd / | cd / | ||
| - | apt-get -y source python-pyopencl | + | apt-get -y build-dep pycuda |
| - | apt-get -y build-dep | + | apt-get -y install |
| - | cd pyopencl-* | + | wget http:// |
| + | wget http:// | ||
| + | wget http:// | ||
| + | tar Jxf pyopencl_2015.1.orig.tar.xz | ||
| + | cd pyopencl-*/ | ||
| + | tar Jxf ../ | ||
| debuild | debuild | ||
| cd .. | cd .. | ||
| Ligne 254: | Ligne 288: | ||
| Les paquets créés sont les suivants : | Les paquets créés sont les suivants : | ||
| < | < | ||
| - | python3-pyopencl_2015.1-1_amd64.deb | + | python3-pyopencl_2015.1-2_amd64.deb |
| - | python3-pyopencl-dbg_2015.1-1_amd64.deb | + | python3-pyopencl-dbg_2015.1-2_amd64.deb |
| - | python-pyopencl_2015.1-1_amd64.deb | + | python-pyopencl_2015.1-2_amd64.deb |
| - | python-pyopencl-dbg_2015.1-1_amd64.deb | + | python-pyopencl-dbg_2015.1-2_amd64.deb |
| - | python-pyopencl-doc_2015.1-1_all.deb | + | python-pyopencl-doc_2015.1-2_all.deb |
| </ | </ | ||
| Ligne 269: | Ligne 303: | ||
| </ | </ | ||
| + | Il n'est pas possible de rétroporter la dernière version de pycuda en Jessie à cause des dépendances entre PyCUDA et d' | ||
| < | < | ||
| cd / | cd / | ||
| - | apt-get source -y pycuda | ||
| apt-get -y build-dep pycuda | apt-get -y build-dep pycuda | ||
| + | apt-get -y install python-setuptools python3-setuptools | ||
| + | wget http:// | ||
| + | wget http:// | ||
| + | wget http:// | ||
| + | tar Jxf pycuda_2015.1.2.orig.tar.xz | ||
| cd pycuda-*/ | cd pycuda-*/ | ||
| + | tar Jxf ../ | ||
| debuild | debuild | ||
| cd .. | cd .. | ||
| Ligne 302: | Ligne 342: | ||
| < | < | ||
| cd / | cd / | ||
| - | apt-get install -y python-pytest python3-pytest | + | apt-get install -y python-pytest python3-pytest |
| dpkg -i python-pycuda*deb python3-pycuda*deb | dpkg -i python-pycuda*deb python3-pycuda*deb | ||
| </ | </ | ||
| Ligne 308: | Ligne 348: | ||
| ==== Exécution des exemples ==== | ==== Exécution des exemples ==== | ||
| - | < | + | Sur une machine équipée de 3 cartes vidéo et 3 implémentations d' |
| + | |||
| + | < | ||
| python / | python / | ||
| </ | </ | ||
| - | Sur des cartes Tesla C1060 & Quadro FX 580 (et un Dell Precision 3500):< | + | < |
| - | (' | + | |
| =============================================================== | =============================================================== | ||
| - | ('Platform name:', ' | + | Platform name: AMD Accelerated Parallel Processing |
| - | ('Platform profile:', 'FULL_PROFILE') | + | Platform profile: FULL_PROFILE |
| - | ('Platform vendor:', ' | + | Platform vendor: |
| - | ('Platform version:', 'OpenCL | + | Platform version: OpenCL |
| --------------------------------------------------------------- | --------------------------------------------------------------- | ||
| - | ('Device name:', 'Tesla C1060' | + | Device name: Fiji |
| - | ('Device type:', 'GPU') | + | Device type: GPU |
| - | ('Device memory: | + | Device memory: |
| - | ('Device max clock speed:', 1296, 'MHz') | + | Device max clock speed: |
| - | ('Device compute units:', 30) | + | Device compute units: |
| - | Execution time of test: 0.00188525 | + | Device max work group size: 256 |
| + | Device max work item sizes: [256, 256, 256] | ||
| + | Data points: 8388608 | ||
| + | Workers: 256 | ||
| + | Preferred work group size multiple: 64 | ||
| + | Execution time of test: 0.00037168 | ||
| Results OK | Results OK | ||
| =============================================================== | =============================================================== | ||
| - | ('Platform name:', ' | + | Platform name: AMD Accelerated Parallel Processing |
| - | ('Platform profile:', 'FULL_PROFILE') | + | Platform profile: FULL_PROFILE |
| - | ('Platform vendor:', ' | + | Platform vendor: |
| - | ('Platform version:', 'OpenCL | + | Platform version: OpenCL |
| --------------------------------------------------------------- | --------------------------------------------------------------- | ||
| - | ('Device name:', ' | + | Device name: Intel(R) Xeon(R) CPU E5-2665 0 @ 2.40GHz |
| - | ('Device type:', ' | + | Device type: CPU |
| - | ('Device memory: | + | Device memory: |
| - | ('Device max clock speed:', 1125, 'MHz') | + | Device max clock speed: |
| - | ('Device compute units:', 4) | + | Device compute units: |
| - | Execution time of test: 0.0126466 | + | Device max work group size: 1024 |
| + | Device max work item sizes: [1024, 1024, 1024] | ||
| + | Data points: 8388608 | ||
| + | Workers: 256 | ||
| + | Preferred work group size multiple: 1 | ||
| + | Execution time of test: 0.0192504 | ||
| Results OK | Results OK | ||
| =============================================================== | =============================================================== | ||
| - | ('Platform name:', 'AMD Accelerated Parallel Processing' | + | Platform name: Intel(R) OpenCL |
| - | ('Platform profile:', 'FULL_PROFILE') | + | Platform profile: FULL_PROFILE |
| - | ('Platform vendor:', ' | + | Platform vendor: |
| - | ('Platform version:', 'OpenCL 1.2 AMD-APP (938.2)' | + | Platform version: OpenCL 1.2 LINUX |
| --------------------------------------------------------------- | --------------------------------------------------------------- | ||
| - | ('Device name:', 'Intel(R) Xeon(R) CPU W3565 | + | Device name: Intel(R) Xeon(R) CPU E5-2665 0 @ 2.40GHz |
| - | ('Device type:', 'CPU') | + | Device type: CPU |
| - | ('Device memory: | + | Device memory: |
| - | ('Device max clock speed:', 3199, ' | + | Device max clock speed: |
| - | ('Device compute units:', 4) | + | Device compute units: 32 |
| - | Execution time of test: 0.00191834 | + | Device max work group size: 8192 |
| + | Device max work item sizes: [8192, 8192, 8192] | ||
| + | / | ||
| + | "to see more.", | ||
| + | Data points: 8388608 | ||
| + | Workers: 256 | ||
| + | Preferred work group size multiple: 128 | ||
| + | Execution time of test: 0.00310517 s | ||
| + | Results OK | ||
| + | =============================================================== | ||
| + | Platform name: Portable Computing Language | ||
| + | Platform profile: FULL_PROFILE | ||
| + | Platform vendor: The pocl project | ||
| + | Platform version: OpenCL 1.2 pocl 0.10 | ||
| + | --------------------------------------------------------------- | ||
| + | Device name: pthread-Intel(R) Xeon(R) CPU E5-2665 0 @ 2.40GHz | ||
| + | Device type: CPU | ||
| + | Device memory: | ||
| + | Device max clock speed: 3100 MHz | ||
| + | Device compute units: | ||
| + | Device max work group size: 1024 | ||
| + | Device max work item sizes: [1024, 1024, 1024] | ||
| + | Data points: 8388608 | ||
| + | Workers: 256 | ||
| + | Preferred work group size multiple: 8 | ||
| + | Execution time of test: 0.007638 | ||
| Results OK | Results OK | ||
| - | </ | ||
| - | |||
| - | Sur une carte GT650M (et un Mac Book Pro):< | ||
| - | (' | ||
| =============================================================== | =============================================================== | ||
| - | ('Platform name:', 'NVIDIA CUDA') | + | Platform name: NVIDIA CUDA |
| - | ('Platform profile:', 'FULL_PROFILE') | + | Platform profile: FULL_PROFILE |
| - | ('Platform vendor:', 'NVIDIA Corporation') | + | Platform vendor: NVIDIA Corporation |
| - | ('Platform version:', 'OpenCL 1.1 CUDA 6.0.1') | + | Platform version: OpenCL 1.2 CUDA 7.5.20 |
| --------------------------------------------------------------- | --------------------------------------------------------------- | ||
| - | ('Device name:', 'GeForce | + | Device name: GeForce |
| - | ('Device type:', 'GPU') | + | Device type: GPU |
| - | ('Device memory: | + | Device memory: |
| - | ('Device max clock speed:', 405, 'MHz') | + | Device max clock speed: |
| - | ('Device compute units:', 2) | + | Device compute units: |
| - | Execution time of test: 0.0011792 | + | Device max work group size: 1024 |
| + | Device max work item sizes: [1024, 1024, 64] | ||
| + | Data points: 8388608 | ||
| + | Workers: 256 | ||
| + | Preferred work group size multiple: 32 | ||
| + | Execution time of test: 0.000522592 | ||
| Results OK | Results OK | ||
| =============================================================== | =============================================================== | ||
| - | ('Platform name:', 'AMD Accelerated Parallel Processing' | + | Platform name: NVIDIA CUDA |
| - | ('Platform profile:', 'FULL_PROFILE') | + | Platform profile: FULL_PROFILE |
| - | ('Platform vendor:', ' | + | Platform vendor: |
| - | ('Platform version:', 'OpenCL 1.2 AMD-APP (938.2)') | + | Platform version: OpenCL 1.2 CUDA 7.5.20 |
| --------------------------------------------------------------- | --------------------------------------------------------------- | ||
| - | ('Device name:', ' | + | Device name: Quadro 600 |
| - | ('Device type:', ' | + | Device type: GPU |
| - | ('Device memory: | + | Device memory: |
| - | ('Device max clock speed:', 1388, 'MHz') | + | Device max clock speed: |
| - | ('Device compute units:', 8) | + | Device compute units: |
| - | Execution time of test: 0.00280508 | + | Device max work group size: 1024 |
| + | Device max work item sizes: [1024, 1024, 64] | ||
| + | Data points: 8388608 | ||
| + | Workers: 256 | ||
| + | Preferred work group size multiple: 32 | ||
| + | Execution time of test: 0.00468445 | ||
| Results OK | Results OK | ||
| </ | </ | ||
| - | Vous aurez noter que l' | ||
| - | ====== Installation de PyFFT ====== | ||
| - | [[http:// | ||
| - | Pour son installation, | ||