Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
atelier:chantier:opencl-avec-amd [11/04/2020 20:11] Debian Alain [Préambule] |
atelier:chantier:opencl-avec-amd [18/10/2021 11:50] Debian Alain [Introduction] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== openCL avec carte graphique AMD ====== | ||
- | |||
- | * Objet : installer openCL sur debian carte AMD | ||
- | * Niveau requis : débutant avisé | ||
- | * Commentaires : //installation du pilote openCL pour carte AMD et BLENDER 2.82a sur DEBIAN TESTING BULLSEYE // | ||
- | * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser NU/Linux en ligne de commande, tout commence là !.]] :-) | ||
- | * Suivi : {{tag>en-chantier à-tester à-placer}} - FIXME Pour choisir, voir les autres Tags possibles dans [[:atelier:#tags|l'Atelier]]. | ||
- | * Création par [[user>Debian Alain]] 11/04/2020 | ||
- | * co créé par Plop6 (irc) un grand merci ! :) | ||
- | * Testé par <...> le <...> FIXME | ||
- | * Commentaires sur le forum : [[:url-invalide | Lien vers le forum concernant ce tuto]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) FIXME | ||
- | |||
- | **Nota :** | ||
- | |||
- | Contributeurs, les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli ! | ||
- | |||
===== Introduction ===== | ===== Introduction ===== | ||
- | ce petit tuto reprend les étapes d'installation du pilote openCL sur carte AMD (RX 550 4GB) | ||
- | |||
- | le tout , fait sur linux debian testing bullseye , | ||
- | |||
- | X.org GNOME 3.34.2 , blender 2.82a | ||
- | |||
- | et processeur AMD RYZEN 7 1700 X | ||
- | |||
- | un grand merci à PLOP6 (irc) sans qui rien n'aurai été possible . | ||
- | |||
- | ===== Historique ===== | ||
- | |||
- | openCL , à l'origine , a été créé pour uniformiser les programmes de calcul "massivement" parallèles . | ||
- | |||
- | au départ , son emploi s'étendait aussi bien aux calculs fait par les CPU que ceux faits par les GPU . | ||
- | |||
- | possibilité que l'on retrouve aujourd'hui dans blender . | ||
- | |||
- | openCL donne la possibilité d'utiliser ou / et le CPU ou / et le GPU . | ||
- | |||
- | en règle générale , aujourd'hui , openCL est de plus en plus utilisé pour employer la puissance de calcul des cartes graphiques . | ||
- | |||
- | petite bibliographie openCL : | ||
- | |||
- | [[https://en.wikipedia.org/wiki/OpenCL#Overview|en.wikipedia : openCL ]] | ||
- | |||
- | [[http://igm.univ-mlv.fr/~dr/XPOSE2011/openclgpucomputing/historique.php|OpenCL et Programmation Générique sur GPU]] | ||
- | |||
- | [[https://www.hardware.fr/articles/744-1/opencl-gpu-computing-enfin-democratise.html|OpenCL : le GPU Computing enfin démocratisé ?]] | ||
- | |||
- | [[https://doc.ubuntu-fr.org/opencl|openCL - ubuntu.fr (résumé) ]] | ||
- | |||
- | petite bibliographie dtrx : | ||
- | |||
- | [[https://memo-linux.com/dtrx-ou-la-decompression-facile-en-ligne-de-commande-sous-gnulinux/| dtrx ou la décompression facile en ligne de commande]] | ||
- | |||
- | [[https://packages.debian.org/fr/buster/dtrx|Paquet : dtrx (buster)]] | ||
- | |||
- | ===== Préambule ===== | ||
- | |||
- | <note important>Un conseil : travaillez dans le répertoire ~/Téléchargements , c'est plus sûr .</note> | ||
- | |||
- | d'abord , télécharger l'archive du pilote amdgpu-pro (version 19.50 pour ubuntu 18.04 LTS) : | ||
- | |||
- | <code user>cd ~/Téléchargements/</code> | ||
- | |||
- | <code user>wget -P $HOME/Téléchargements/ https://drivers.amd.com/drivers/linux/19.50/amdgpu-pro-19.50-967956-ubuntu-18.04.tar.xz</code> | ||
- | |||
- | <note important>au cas où ce lien ne fonctionne pas , vous pouvez essayer de vous connecter en graphique là : | ||
- | |||
- | <code>https://www.amd.com/fr/support/graphics/radeon-500-series/radeon-rx-500-series/radeon-rx-550</code> | ||
- | |||
- | cherchez la ligne <code>Ubuntu X86 64-bit</code>et trouvez la case <code>Téléchargement*</code>sur la quelle vous cliquerez . | ||
- | |||
- | vous téléchargerez ensuite l'archive dans le répertoire ~/Téléchargements de votre Debian .</note> | ||
- | |||
- | et installer dtrx (stable) : | ||
- | |||
- | <code user>sudo apt install dtrx </code> | ||
- | |||
- | créer les scripts suivants : | ||
- | |||
- | <code user> sudo nano ~/Téléchargements/Arborescence.sh</code> | ||
- | <code>#!/bin/bash | ||
- | |||
- | mkdir -p /opt/amdgpu-pro/lib/x86_64-linux-gnu | ||
- | mkdir -p /etc/OpenCL/vendors</code> | ||
- | |||
- | <code user>sudo nano ~/Téléchargements/Extraction.sh</code> | ||
- | <code>#!/bin/bash | ||
- | |||
- | if ! which dtrx > /dev/null; then | ||
- | echo -e "le paquet dtrx n'est pas installé. Install it and re-run script!" | ||
- | echo "Error No PAckage dtrx" >> error_OnExtraitToutD1coup | ||
- | exit 1 | ||
- | fi | ||
- | dtrx -r -q amdgpu-pro-*.tar.xz</code> | ||
- | |||
- | <code user>sudo nano ~/Téléchargements/Copie.sh</code> | ||
- | |||
- | <code>#!/bin/bash | ||
- | |||
- | LibDir="/opt/amdgpu-pro/lib/x86_64-linux-gnu/" | ||
- | VendorsDir="/etc/OpenCL/vendors/" | ||
- | DriversDir="amdgpu-pro-*/" | ||
- | |||
- | # on Copie les libs orca: | ||
- | CustDir="${DriversDir}opencl-orca-amdgpu-pro-icd_*/opt/amdgpu-pro/lib/x86_64-linux-gnu/" | ||
- | for libso in libamdocl12cl64.so libamdocl-orca64.so; do | ||
- | cp ${CustDir}${libso} ${LibDir} | ||
- | done | ||
- | |||
- | # on Copie les libs Opencl: | ||
- | CustDir="${DriversDir}libopencl1-amdgpu-pro_*/opt/amdgpu-pro/lib/x86_64-linux-gnu/" | ||
- | for libso in libOpenCL.so libOpenCL.so.1;do | ||
- | cp ${CustDir}${libso} ${LibDir} | ||
- | done | ||
- | |||
- | # On copie libcltrace | ||
- | CustDir="${DriversDir}opencl-amdgpu-pro-dev_*/opt/amdgpu-pro/lib/x86_64-linux-gnu/" | ||
- | cp ${CustDir}libcltrace.so ${LibDir} | ||
- | |||
- | # On Copie libamdocl64 | ||
- | CustDir="${DriversDir}opencl-amdgpu-pro-icd_*/opt/amdgpu-pro/lib/x86_64-linux-gnu/" | ||
- | cp ${CustDir}libamdocl64.so ${LibDir} | ||
- | |||
- | # On copie les Fichiers ICD | ||
- | CustDir="${DriversDir}opencl-orca-amdgpu-pro-icd_*/etc/OpenCL/vendors/" | ||
- | cp ${CustDir}amdocl-orca64.icd ${VendorsDir} | ||
- | CustDir="${DriversDir}opencl-amdgpu-pro-icd_*/etc/OpenCL/vendors/" | ||
- | cp ${CustDir}amdocl64.icd ${VendorsDir}</code> | ||
- | |||
- | <code user>sudo nano ~/Téléchargements/maj.sh</code> | ||
- | <code>#!/bin/bash | ||
- | |||
- | echo "/opt/amdgpu-pro/lib/x86_64-linux-gnu" > /etc/ld.so.conf.d/amdgpu-pro_custom-opencl.conf | ||
- | |||
- | ldconfig</code> | ||
- | |||
- | <code user>sudo nano ~/Téléchargements/raz.sh</code> | ||
- | |||
- | <code>#!/bin/bash | ||
- | |||
- | rm -rf /etc/OpenCL | ||
- | rm -rf /opt/amdgpu-pro | ||
- | rm /etc/ld.so.conf.d/amdgpu-pro_custom-opencl.conf | ||
- | ldconfig</code> | ||
- | |||
- | |||
- | ===== Installation ===== | ||
- | |||
- | <note warning>commencer par se placer dans le répertoire Téléchargements</note> | ||
- | |||
- | <code user>cd ~/Téléchargements/</code> | ||
- | |||
- | on commence par créer l'arborescence : | ||
- | |||
- | <code user>sudo bash Arborescence.sh </code> | ||
- | |||
- | on décompacte les deb : | ||
- | |||
- | <code user>sudo bash Extraction.sh </code> | ||
- | |||
- | on copie les bons fichiers : | ||
- | |||
- | <code user>sudo bash Copie.sh</code> | ||
- | |||
- | on met à jour : | ||
- | |||
- | <code user>sudo bash maj.sh</code> | ||
- | |||
- | en cas de doute ou de besoin , on peut tout virer : | ||
- | |||
- | <code user>sudo bash raz.sh </code> | ||
- | |||
- | |||
- | ===== Utilisation ===== | ||
- | |||
- | pour tester blender avec openCL , on peut télécharger des exemples ici : | ||
- | |||
- | [[https://www.blender.org/download/demo-files/|exemples blender ]] | ||
- | |||
- | dans Edit / Preferences / System / OpenCL , | ||
- | |||
- | vous pourrez choisir votre carte graphique (ici AMD Radeon RX 550 / 550 Series) | ||
- | et / ou votre processeur (AMD RYZEN 7 1700X , ici) | ||
- | |||
- | un grand merci à plop6 (irc) sans qui rien n'aurai été possible ... | ||
- | |||
- | ===== Post Scriptum ===== | ||
- | |||
- | la carte est montée en pointe , à 75 °C | ||
- | |||
- | voici quelques écrans que vous obtiendrez peut être à la fin de l'installation : | ||
- | |||
- | ma carte graphique : | ||
- | <code user>lspci -nnkd::0300</code> | ||
- | <code>0a:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Lexa PRO [Radeon 540/540X/550/550X / RX 540X/550/550X] [1002:699f] (rev c7) | ||
- | Subsystem: Sapphire Technology Limited Lexa PRO [Radeon RX 550] [1da2:e367] | ||
- | Kernel driver in use: amdgpu | ||
- | Kernel modules: amdgpu</code> | ||
- | |||
- | pilote amdgpu : | ||
- | <code user>glxinfo -B</code> | ||
- | <code>name of display: :0 | ||
- | display: :0 screen: 0 | ||
- | direct rendering: Yes | ||
- | Extended renderer info (GLX_MESA_query_renderer): | ||
- | Vendor: X.Org (0x1002) | ||
- | Device: Radeon RX550/550 Series (POLARIS12, DRM 3.35.0, 5.4.0-4-amd64, LLVM 9.0.1) (0x699f) | ||
- | Version: 19.3.3 | ||
- | Accelerated: yes | ||
- | Video memory: 4096MB | ||
- | Unified memory: no | ||
- | Preferred profile: core (0x1) | ||
- | Max core profile version: 4.5 | ||
- | Max compat profile version: 4.5 | ||
- | Max GLES1 profile version: 1.1 | ||
- | Max GLES[23] profile version: 3.2 | ||
- | Memory info (GL_ATI_meminfo): | ||
- | VBO free memory - total: 3648 MB, largest block: 3648 MB | ||
- | VBO free aux. memory - total: 3577 MB, largest block: 3577 MB | ||
- | Texture free memory - total: 3648 MB, largest block: 3648 MB | ||
- | Texture free aux. memory - total: 3577 MB, largest block: 3577 MB | ||
- | Renderbuffer free memory - total: 3648 MB, largest block: 3648 MB | ||
- | Renderbuffer free aux. memory - total: 3577 MB, largest block: 3577 MB | ||
- | Memory info (GL_NVX_gpu_memory_info): | ||
- | Dedicated video memory: 4096 MB | ||
- | Total available memory: 8192 MB | ||
- | Currently available dedicated video memory: 3648 MB | ||
- | OpenGL vendor string: X.Org | ||
- | OpenGL renderer string: Radeon RX550/550 Series (POLARIS12, DRM 3.35.0, 5.4.0-4-amd64, LLVM 9.0.1) | ||
- | OpenGL core profile version string: 4.5 (Core Profile) Mesa 19.3.3 | ||
- | OpenGL core profile shading language version string: 4.50 | ||
- | OpenGL core profile context flags: (none) | ||
- | OpenGL core profile profile mask: core profile | ||
- | |||
- | OpenGL version string: 4.5 (Compatibility Profile) Mesa 19.3.3 | ||
- | OpenGL shading language version string: 4.50 | ||
- | OpenGL context flags: (none) | ||
- | OpenGL profile mask: compatibility profile | ||
- | |||
- | OpenGL ES profile version string: OpenGL ES 3.2 Mesa 19.3.3 | ||
- | OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20</code> | ||
- | pilote openCL : | + | Ce petit tuto reprend les étapes d'installation du pilote openCL sur ces matériels et système : |
- | <code user>clinfo</code> | + | * carte AMD RX 550 4GB |
- | <code>Number of platforms 1 | + | * carte AMD RX 570 8GB ITX |
- | Platform Name AMD Accelerated Parallel Processing | + | * carte AMD RX 6800 16GB |
- | Platform Vendor Advanced Micro Devices, Inc. | + | le tout , fait sur linux [[doc:systeme:apt:sources.list:testing|debian testing bullseye]] / debian bookworm sid et avec |
- | Platform Version OpenCL 2.1 AMD-APP (3004.6) | + | * X.org GNOME 3.34.2 , 3.36.2 , 40.4 et 41 |
- | Platform Profile FULL_PROFILE | + | * blender 2.82a et 2.93.4 |
- | Platform Extensions cl_khr_icd cl_amd_event_callback cl_amd_offline_devices | + | * processeur AMD RYZEN 7 1700 X et AMD RYZEN 9 3900 X |
- | Platform Host timer resolution 1ns | + | |
- | Platform Extensions function suffix AMD | + | |
- | Platform Name AMD Accelerated Parallel Processing | + | Un grand merci à **PLOP6** via ([[doc:reseau:freenode|irc]]) sans qui rien de ce tuto n'aurait été possible. |
- | Number of devices 1 | + | |
- | Device Name gfx804 | + | |
- | Device Vendor Advanced Micro Devices, Inc. | + | |
- | Device Vendor ID 0x1002 | + | |
- | Device Version OpenCL 1.2 AMD-APP (3004.6) | + | |
- | Driver Version 3004.6 | + | |
- | Device OpenCL C Version OpenCL C 1.2 | + | |
- | Device Type GPU | + | |
- | Device Board Name (AMD) Radeon RX550/550 Series | + | |
- | Device Topology (AMD) PCI-E, 0a:00.0 | + | |
- | Device Profile FULL_PROFILE | + | |
- | Device Available Yes | + | |
- | Compiler Available Yes | + | |
- | Linker Available Yes | + | |
- | Max compute units 8 | + | |
- | SIMD per compute unit (AMD) 4 | + | |
- | SIMD width (AMD) 16 | + | |
- | SIMD instruction width (AMD) 1 | + | |
- | Max clock frequency 1206MHz | + | |
- | Graphics IP (AMD) 8.0 | + | |
- | Device Partition (core) | + | |
- | Max number of sub-devices 8 | + | |
- | Supported partition types None | + | |
- | Supported affinity domains (n/a) | + | |
- | Max work item dimensions 3 | + | |
- | Max work item sizes 1024x1024x1024 | + | |
- | Max work group size 256 | + | |
- | Preferred work group size (AMD) 256 | + | |
- | Max work group size (AMD) 1024 | + | |
- | Preferred work group size multiple 64 | + | |
- | Wavefront width (AMD) 64 | + | |
- | Preferred / native vector sizes | + | |
- | char 4 / 4 | + | |
- | short 2 / 2 | + | |
- | int 1 / 1 | + | |
- | long 1 / 1 | + | |
- | half 1 / 1 (cl_khr_fp16) | + | |
- | float 1 / 1 | + | |
- | double 1 / 1 (cl_khr_fp64) | + | |
- | Half-precision Floating-point support (cl_khr_fp16) | + | |
- | Denormals No | + | |
- | Infinity and NANs No | + | |
- | Round to nearest No | + | |
- | Round to zero No | + | |
- | Round to infinity No | + | |
- | IEEE754-2008 fused multiply-add No | + | |
- | Support is emulated in software No | + | |
- | Single-precision Floating-point support (core) | + | |
- | Denormals No | + | |
- | Infinity and NANs Yes | + | |
- | Round to nearest Yes | + | |
- | Round to zero Yes | + | |
- | Round to infinity Yes | + | |
- | IEEE754-2008 fused multiply-add Yes | + | |
- | Support is emulated in software No | + | |
- | Correctly-rounded divide and sqrt operations Yes | + | |
- | Double-precision Floating-point support (cl_khr_fp64) | + | |
- | Denormals Yes | + | |
- | Infinity and NANs Yes | + | |
- | Round to nearest Yes | + | |
- | Round to zero Yes | + | |
- | Round to infinity Yes | + | |
- | IEEE754-2008 fused multiply-add Yes | + | |
- | Support is emulated in software No | + | |
- | Address bits 64, Little-Endian | + | |
- | Global memory size 3816013824 (3.554GiB) | + | |
- | Global free memory (AMD) 3706992 (3.535GiB) | + | |
- | Global memory channels (AMD) 4 | + | |
- | Global memory banks per channel (AMD) 16 | + | |
- | Global memory bank width (AMD) 256 bytes | + | |
- | Error Correction support No | + | |
- | Max memory allocation 3054000332 (2.844GiB) | + | |
- | Unified memory for Host and Device No | + | |
- | Minimum alignment for any data type 128 bytes | + | |
- | Alignment of base address 2048 bits (256 bytes) | + | |
- | Global Memory cache type Read/Write | + | |
- | Global Memory cache size 16384 (16KiB) | + | |
- | Global Memory cache line size 64 bytes | + | |
- | Image support Yes | + | |
- | Max number of samplers per kernel 16 | + | |
- | Max size for 1D images from buffer 134217728 pixels | + | |
- | Max 1D or 2D image array size 2048 images | + | |
- | Base address alignment for 2D image buffers 256 bytes | + | |
- | Pitch alignment for 2D image buffers 256 pixels | + | |
- | Max 2D image size 16384x16384 pixels | + | |
- | Max 3D image size 2048x2048x2048 pixels | + | |
- | Max number of read image args 128 | + | |
- | Max number of write image args 8 | + | |
- | Local memory type Local | + | |
- | Local memory size 32768 (32KiB) | + | |
- | Local memory syze per CU (AMD) 65536 (64KiB) | + | |
- | Local memory banks (AMD) 32 | + | |
- | Max number of constant args 8 | + | |
- | Max constant buffer size 3054000332 (2.844GiB) | + | |
- | Preferred constant buffer size (AMD) 16384 (16KiB) | + | |
- | Max size of kernel argument 1024 | + | |
- | Queue properties | + | |
- | Out-of-order execution No | + | |
- | Profiling Yes | + | |
- | Prefer user sync for interop Yes | + | |
- | Profiling timer resolution 1ns | + | |
- | Profiling timer offset since Epoch (AMD) 1586590360034232392ns (Sat Apr 11 09:32:40 2020) | + | |
- | Execution capabilities | + | |
- | Run OpenCL kernels Yes | + | |
- | Run native kernels No | + | |
- | Thread trace supported (AMD) Yes | + | |
- | Number of async queues (AMD) 2 | + | |
- | Max real-time compute queues (AMD) 0 | + | |
- | Max real-time compute units (AMD) 0 | + | |
- | SPIR versions 1.2 | + | |
- | printf() buffer size 4194304 (4MiB) | + | |
- | Built-in kernels (n/a) | + | |
- | Device Extensions cl_khr_fp64 cl_amd_fp64 cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_fp16 cl_khr_gl_sharing cl_amd_device_attribute_query cl_amd_vec3 cl_amd_printf cl_amd_media_ops cl_amd_media_ops2 cl_amd_popcnt cl_khr_image2d_from_buffer cl_khr_spir cl_khr_gl_event | + | |
- | NULL platform behavior | ||
- | clGetPlatformInfo(NULL, CL_PLATFORM_NAME, ...) No platform | ||
- | clGetDeviceIDs(NULL, CL_DEVICE_TYPE_ALL, ...) No platform | ||
- | clCreateContext(NULL, ...) [default] No platform | ||
- | clCreateContext(NULL, ...) [other] Success [AMD] | ||
- | clCreateContextFromType(NULL, CL_DEVICE_TYPE_DEFAULT) Success (1) | ||
- | Platform Name AMD Accelerated Parallel Processing | ||
- | Device Name gfx804 | ||
- | clCreateContextFromType(NULL, CL_DEVICE_TYPE_CPU) No devices found in platform | ||
- | clCreateContextFromType(NULL, CL_DEVICE_TYPE_GPU) Success (1) | ||
- | Platform Name AMD Accelerated Parallel Processing | ||
- | Device Name gfx804 | ||
- | clCreateContextFromType(NULL, CL_DEVICE_TYPE_ACCELERATOR) No devices found in platform | ||
- | clCreateContextFromType(NULL, CL_DEVICE_TYPE_CUSTOM) No devices found in platform | ||
- | clCreateContextFromType(NULL, CL_DEVICE_TYPE_ALL) Success (1) | ||
- | Platform Name AMD Accelerated Parallel Processing | ||
- | Device Name gfx804</code> | ||
- | | ||
- | |