Bon… je suis pas mal occupé en ce moment et du coup pas trop par là ces derniers temps…
Cependant, je suis tombé sur le problème suivant l’autre jour et j’ai trouvé de quoi le corriger temporairement.

À savoir que rocm (GPGPU pour les AMD/ATI Radeon) en version 5.5 pour Fedora 38 ne fonctionne pas. Cela retourne ce qui suit :

$ clpeak

Platform: Clover
 Device: AMD Radeon RX 5700 XT (navi10, LLVM 16.0.2, DRM 3.52, 6.3.3-200.fc38.x86_64)
   Driver version  : 23.2.0-devel (Linux x64)
   Compute units   : 40
   Clock frequency : 2100 MHz
   Build Log: fatal error: cannot open file '/usr/lib64/clc/gfx1010-amdgcn-mesa-mesa3d.bc': No such file or directory

Platform: AMD Accelerated Parallel Processing
 Device: gfx1010:xnack-
   Driver version  : 3558.0 (HSA1.1,LC) (Linux x64)
   Compute units   : 20
   Clock frequency : 2100 MHz
   Build Log: ERROR: linking module flags 'amdgpu_code_object_version': IDs have conflicting values in '' and 'llvm-link'
Error: Linking bitcode failed: linking source & IR libraries.

L’opencl de Mesa ne semble pas accepter les RX 5700 XT et même la RX 6500 XT (GFX 1010 et GFX 1030).

Pour Rocm il faut faire un :

sudo dnf downgrade --releasever 37 rocm-opencl

Pour revenir à la version 5.4 qui fonctionne :

$ clpeak

Platform: Clover
 Device: AMD Radeon RX 5700 XT (navi10, LLVM 16.0.2, DRM 3.52, 6.3.3-200.fc38.x86_64)
   Driver version  : 23.2.0-devel (Linux x64)
   Compute units   : 40
   Clock frequency : 2100 MHz
   Build Log: fatal error: cannot open file '/usr/lib64/clc/gfx1010-amdgcn-mesa-mesa3d.bc': No such file or directory

Platform: AMD Accelerated Parallel Processing
 Device: gfx1010:xnack-
   Driver version  : 3513.0 (HSA1.1,LC) (Linux x64)
   Compute units   : 20
   Clock frequency : 2100 MHz

Global memory bandwidth (GBPS)
     float   : 386.54
     float2  : 389.83
     float4  : 372.14
     float8  : 346.61
     float16 : 303.89

Single-precision compute (GFLOPS)
     float   : 10029.50
     float2  : 9699.49
     float4  : 9667.04
     float8  : 9600.62
     float16 : 9521.66

Half-precision compute (GFLOPS)
     half   : 10003.50
     half2  : 19481.25
     half4  : 19367.05
     half8  : 19119.62
     half16 : 7308.14

Double-precision compute (GFLOPS)
     double   : 621.49
     double2  : 627.84
     double4  : 618.78
     double8  : 618.74
     double16 : 624.45

Integer compute (GIOPS)
     int   : 2034.89
     int2  : 2026.16
     int4  : 2018.37
     int8  : 2020.17
     int16 : 2006.15

Integer compute Fast 24bit (GIOPS)
     int   : 9108.25
     int2  : 8931.97
     int4  : 8887.61
     int8  : 8703.54
     int16 : 7878.36

Transfer bandwidth (GBPS)
     enqueueWriteBuffer              : 20.62
     enqueueReadBuffer               : 6.22
     enqueueWriteBuffer non-blocking : 20.75
     enqueueReadBuffer non-blocking  : 6.16
     enqueueMapBuffer(for read)      : 715827.88
     memcpy from mapped ptr        : 6.08
     enqueueUnmap(after write)       : 998829.56
     memcpy to mapped ptr          : 18.54

Kernel launch latency : -722547456.00 us

À voir si cela va être corrigé ou non.

Il faudra exclure le paquet rocm-opencl des mises à jours, sinon il remettra celle pour Fedora 38.

Reste à pouvoir utiliser le HIP pour pouvoir utiliser le GPGPU sous blender par exemple.

    VINDICATORs a renommé le titre en Rocm (GPGPU Radeon) et Fedora 38 le .

    VINDICATORs Pour moi c’est bon, voici quelques infos pour aiguiller au pire mais je n’ai pas de cartes aussi récentes.

    $ lspci -nnk | grep -iA3 "VGA"
    01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Curacao XT / Trinidad XT [Radeon R7 370 / R9 270X/370X] [1002:6810]
    	Subsystem: PC Partner Limited / Sapphire Technology Device [174b:e270]
    	Kernel driver in use: radeon
    	Kernel modules: radeon, amdgpu
    $ rpm -qa rocm-opencl
    rocm-opencl-5.5.0-1.fc38.x86_64
    $ clpeak 
    
    Platform: Clover
      Device: PITCAIRN (, LLVM 16.0.1, DRM 2.50, 6.3.3-200.fc38.x86_64)
        Driver version  : 23.0.3 (Linux x64)
        Compute units   : 20
        Clock frequency : 1100 MHz
    
        Global memory bandwidth (GBPS)
          float   : 140.63
          float2  : 148.91
          float4  : 151.36
          float8  : 142.34
          float16 : 68.74
    
        Single-precision compute (GFLOPS)
          float   : 346.98
          float2  : 346.92
          float4  : 346.34
          float8  : 345.06
          float16 : 343.73
    
        No half precision support! Skipped
    
        Double-precision compute (GFLOPS)
          double   : 173.84
          double2  : 173.66
          double4  : 173.40
          double8  : 172.85
          double16 : 172.34
    
        Integer compute (GIOPS)
          int   : 138.96
          int2  : 138.87
          int4  : 138.65
          int8  : 138.22
          int16 : 139.07
    
        Integer compute Fast 24bit (GIOPS)
          int   : 686.73
          int2  : 684.34
          int4  : 679.20
          int8  : 668.99
          int16 : 649.53
    
        Transfer bandwidth (GBPS)
          enqueueWriteBuffer              : 5.27
          enqueueReadBuffer               : 4.63
          enqueueWriteBuffer non-blocking : 5.23
          enqueueReadBuffer non-blocking  : 4.69
          enqueueMapBuffer(for read)      : 2514.62
          memcpy from mapped ptr        : 4.96
          enqueueUnmap(after write)       : 2118.67
          memcpy to mapped ptr          : 5.44
    
        Kernel launch latency : 97.40 us
    
    
    Platform: rusticl
    clCreateContextFromType (-1)

    Yep faudrait que je m’y remette.

    Même sur la doc du propriétaire (bien que franchement y a plus trop l’utilité) faudrait revoir si c’est enfin possible de le faire fonctionner vu que le blob noyau est le même.

    Reste à faire fonctionner ce HIP, mais les paquets ne sont pas dispo 🙁 .

    Après là c’est un problème de version… (bogue ou incompatibilité) Avec ceci :

    IDs have conflicting values in '' and 'llvm-link' Error: Linking bitcode failed: linking source & IR libraries.

    Peut être un souci avec la version de MESA Git… (J’ai un souci avec les freeworld de mesa en cours de correction pour la prochaine livraison soit dit en passant… en rebranchant avec le .SPEC officiel j’ai supprimé une partie qui est utile pour les empaqueter)

    4 jours plus tard

    Bon la version 5.5.1 corrige le problème 🙂.

    Par contre toujours pas de possibilité pour utiliser HIP avec blender 😢 .

    Et bien… notre amis mystro256 à ajouté HIP dans les dépendances et du coup cela… FONCTIONNE 🙂

    https://copr.fedorainfracloud.org/coprs/mystro256/rocm-opencl/

    Blender voit bien HIP pour la carte graphique et le processeur avec le pilote libre 🙂 .

    Reste à voir si cela apporte quelque chose (la RX5700XT n’est pas connue pour ces performance en GPGPU… A voir avec la RX6500XT de l’autre PC en attendant mieux… voir avec la R290x sur mon ancienne machine).

    Je laisse le sujet ouvert pour le moment, vu qu’il peut être générique.

    Je vais aussi reprendre la doc sur le sujet pour l’installation et l’exploitation de ROCM avec le pilote libre (cela m’emballe plus les prises de tête avec le pilote “propriétaire” adapté au distributions à “longue durée de vie”).

      VINDICATORs (cela m’emballe plus les prises de tête avec le “propriétaire” adapté au distributions à “longue durée de vie”)

      J’ai lu et relu et je ne comprends rien à çà. Tu peux traduire stp ?

      J’ai ajouté “pilote”. Pour les "" de propriétaire c’est qu’il ne l’est pas à 100%.

      Bon et bien la RX5700XT n’est pas si mauvaise que cela en GPGPU.

      1 minutes 28s en GPU, contre 9 minutes 36s en CPU (toujours avec HIP) sur le même rendu 🙂.

      Dsl pour le rose, mais il manque des matériaux/textures…

      5 jours plus tard

      Je vais reprendre la procédure d’installation, les urls et la configuration, car ce qui est décrit sur le lien n’est pas ce que j’ai utilisé au final.

      Je compléterai la doc histoire d’être à jour sur le sujet et sur d’autres.

      Par contre le GPGPU avec la RX5700XT reste quand même bien pauvre par rapport à son équivalent en RDNA2 (RX6700XT). Mais bon dans la moyenne haute, de mon coté, d’après les nombreux retour.

      Je n’ai pas testé avec la RX6500XT car je n’avais pas le bon dépôt.

        2 mois plus tard

        rocm-hip est dispo dans les dépôts :

        rocm-hip.x86_64                                               5.5.1-8.fc38                                   updates

        En test sur mon autre PC avec la RX 6500 XT. Doc à jour dès que c’est confirmé.

        Édit : Bon c’est confirmé, c’est fonctionnel directement avec les paquets des dépôts officiels (actuellement dans “updates”). Du coup je vais mettre le dépôt tiers à part si nécessaire…