• Obtenir le support des images avec opencl

    From benoit@21:1/5 to All on Mon Aug 9 15:40:02 2021
    This is a multi-part message in MIME format.

    Qm9uam91ciDDoCB0b3V0ZXMgZXQgdG91cywKCkVuIGJyZWYgdm9pY2kgbW9uIHByb2Jsw6htZSA6 CgpjbGluZm8gfCBncmVwIEltYWdlCgpJbWFnZSBzdXBwb3J0Li4uLi4uLi4uLi4uLi4uLi4uLi4u IE5vCgpFbiBkw6l0YWlsIDoKClF1YW5kIGplIGxhbmNlIGRhcmt0YWJsZSBhdmVjIGNlcyBvcHRp b25zIHBvdXIgY29tcHJlbmRyZSBwb3VycXVvaSBpbCBu4oCZdXRpbGlzZSBwYXMgb3BlbmNsIHBv dXJ0YW50IGluc3RhbGzDqSwgaWwgbWUgZGl0IGNlY2kgOgoKJCBkYXJrdGFibGUgLWQgb3BlbmNs IC1kIHBlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tODwtLQoKMC4wODE5NDAgW29w ZW5jbF9pbml0XSBkaXNjYXJkaW5nIGRldmljZSAwIGBBTUQgUmFkZW9uKFRNKSBWZWdhIDggR3Jh cGhpY3MgKFJBVkVOLCBEUk0gMy40MC4wLCA1LjEwLjAtNy1hbWQ2NCwgTExWTSAxMS4wLjEpJyAt IFRoZSBPcGVuQ0wgZHJpdmVyIGRvZXNuJ3QgcHJvdmlkZSBpbWFnZSBzdXBwb3J0LiBTZWUgYWxz byAnY2xpbmZvJyBvdXRwdXQuCgowLjA4MTk0NSBbb3BlbmNsX2luaXRdIG5vIHN1aXRhYmxlIGRl dmljZXMgZm91bmQuCgowLjA4MTk0OCBbb3BlbmNsX2luaXRdIEZJTkFMTFk6IG9wZW5jbCBpcyBO T1QgQVZBSUxBQkxFIG9uIHRoaXMgc3lzdGVtLgoKMC4wODE5NDkgW29wZW5jbF9pbml0XSBpbml0 aWFsIHN0YXR1cyBvZiBvcGVuY2wgZW5hYmxlZCBmbGFnIGlzIE9GRi4KCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCgpEdSBjb3VwIGplIGZhaXMgY2UgcXXigJlpbCBkaXQsIGplIGxhbmNlIGNsaW5m byBldCBqZSBjaGVyY2hlIMOgIEltYWdlIDoKCmNsaW5mbyB8IGdyZXAgSW1hZ2UKCkltYWdlIHN1 cHBvcnQuLi4uLi4uLi4uLi4uLi4uLi4uLi4gTm8KCkNvbW1lbnQgeSByZW3DqWRpZXIgPwoKTWVy Y2kgZCdhdmFuY2UKCi0tCkJlbm/DrnQ=

    PGRpdj5Cb25qb3VyIMOgIHRvdXRlcyBldCB0b3VzLDxicj48L2Rpdj48ZGl2Pjxicj48L2Rpdj48 ZGl2PkVuIGJyZWYgdm9pY2kgbW9uIHByb2Jsw6htZSA6PGJyPjwvZGl2PjxwPmNsaW5mbyB8IGdy ZXAgSW1hZ2U8YnI+PC9wPjxwPkltYWdlIHN1cHBvcnQuLi4uLi4uLi4uLi4uLi4uLi4uLi4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vPGJyPjwvcD48ZGl2PkVuIGTDqXRhaWwg Ojxicj48L2Rpdj48cD5RdWFuZCBqZSBsYW5jZSBkYXJrdGFibGUgYXZlYyBjZXMNCm9wdGlvbnMg cG91ciBjb21wcmVuZHJlIHBvdXJxdW9pIGlsIG7igJl1dGlsaXNlIHBhcyBvcGVuY2wgcG91cnRh bnQNCmluc3RhbGzDqSwgaWwgbWUgZGl0IGNlY2kmbmJzcDs6PGJyPjwvcD48cD4kIGRhcmt0YWJs ZSAtZCBvcGVuY2wgLWQgcGVyPGJyPjwvcD48cD4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS04Jmx0Oy0tPGJyPjwvcD48cD4wLjA4MTk0MCBbb3BlbmNsX2luaXRdIGRpc2NhcmRpbmcgZGV2 aWNlIDAgYEFNRCBSYWRlb24oVE0pIFZlZ2EgOA0KR3JhcGhpY3MgKFJBVkVOLCBEUk0gMy40MC4w LCA1LjEwLjAtNy1hbWQ2NCwgTExWTSAxMS4wLjEpJyAtIFRoZQ0KT3BlbkNMIGRyaXZlciBkb2Vz bid0IHByb3ZpZGUgaW1hZ2Ugc3VwcG9ydC4gU2VlIGFsc28gJ2NsaW5mbycNCm91dHB1dC48YnI+ PC9wPjxwPjAuMDgxOTQ1IFtvcGVuY2xfaW5pdF0gbm8gc3VpdGFibGUgZGV2aWNlcyBmb3VuZC48 YnI+PC9wPjxwPjAuMDgxOTQ4IFtvcGVuY2xfaW5pdF0gRklOQUxMWTogb3BlbmNsIGlzIE5PVCBB VkFJTEFCTEUgb24gdGhpcw0Kc3lzdGVtLjxicj48L3A+PHA+MC4wODE5NDkgW29wZW5jbF9pbml0 XSBpbml0aWFsIHN0YXR1cyBvZiBvcGVuY2wgZW5hYmxlZCBmbGFnIGlzDQpPRkYuPGJyPjwvcD48 ZGl2Pi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPGJyPjwvZGl2PjxwPkR1IGNvdXAgamUgZmFpcyBj ZSBxdeKAmWlsIGRpdCwgamUNCmxhbmNlIGNsaW5mbyBldCBqZSBjaGVyY2hlIMOgIEltYWdlJm5i c3A7Ojxicj48L3A+PHA+Y2xpbmZvIHwgZ3JlcCBJbWFnZTxicj48L3A+PHA+SW1hZ2Ugc3VwcG9y dC4uLi4uLi4uLi4uLi4uLi4uLi4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Tm88YnI+PC9wPjxkaXY+Q29tbWVudCB5IHJlbcOpZGllciA/PGJyPjwvZGl2PjxkaXY+PGJyPjwv ZGl2PjxkaXY+TWVyY2kgZCdhdmFuY2U8YnI+PC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj4tLTxi cj48L2Rpdj48ZGl2PkJlbm/DrnQ8YnI+PC9kaXY+

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From didier gaumet@21:1/5 to All on Mon Aug 9 22:00:01 2021
    Bonjour,

    Je n'ai jamais expérimenté OpenCL, donc mes commentaires sont à prendre avec précaution

    De ce que je comprends (de travers?), à l'heure actuelle la seule implémentation d'OpenCL qui prendrait en charge le support des images serait ROCm à partir de la version 3.7 (on en est à 4.3). En tout cas pour de l'AMD/ATI, tu peux utiliser Mesa
    mais le support des images ne semble pas encore d'actualité.

    Je n'ai trouvé trace de ROCm dans Debian qu'en version 3.3 de mai 2020 dans le repo experimental donc je suppose que c'est abandonné. Je n'ai trouvé de trace de ROCm dans aucun autre package (mais j'ai peut-être mal cherché)

    Tu peux peut-être t'en sortir en installant un paquetage Ubuntu (module ROCm DKMS) à partir des dépôts AMD, ça ne coûte rien de lire leur page de doc.

    https://wiki.archlinux.org/title/GPGPU https://www.phoronix.com/scan.php?page=news_item&px=ROCm-3.7-OpenCL-Image https://rocmdocs.amd.com/en/latest/Installation_Guide/Installation-Guide.html

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Polyna-Maude Racicot-Summerside@21:1/5 to didier gaumet on Tue Aug 10 00:40:01 2021
    This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --qlpKulKaGUgM4SG8dpCU9AikyMkh5IaiL
    Content-Type: text/plain; charset=utf-8
    Content-Language: en-US
    Content-Transfer-Encoding: quoted-printable

    Bonjour Didier,
    On 2021-08-09 3:37 p.m., didier gaumet wrote:
    Bonjour,

    Je n'ai jamais expérimenté OpenCL, donc mes commentaires sont à prendre avec précaution

    De ce que je comprends (de travers?), à l'heure actuelle la seule implémentation d'OpenCL qui prendrait en charge le support des images serait ROCm à partir de la version 3.7 (on en est à 4.3). En tout cas pour de l'AMD/ATI, tu peux utiliser Mesa
    mais le support des images ne semble pas encore d'actualité.

    Je n'ai trouvé trace de ROCm dans Debian qu'en version 3.3 de mai 2020 dans le repo experimental donc je suppose que c'est abandonné. Je n'ai trouvé de trace de ROCm dans aucun autre package (mais j'ai peut-être mal cherché)

    Tu peux peut-être t'en sortir en installant un paquetage Ubuntu (module ROCm DKMS) à partir des dépôts AMD, ça ne coûte rien de lire leur page de doc.

    https://wiki.archlinux.org/title/GPGPU https://www.phoronix.com/scan.php?page=news_item&px=ROCm-3.7-OpenCL-Image https://rocmdocs.amd.com/en/latest/Installation_Guide/Installation-Guide.html

    Je ne sais pas trop exactement et avec précision ce que tu veux dire par "support des images" parce que déjà OpenCL permet grace à la parallélisation de traiter sur le GPU des images.

    Exemple ceci qui est du code Python : https://towardsdatascience.com/get-started-with-gpu-image-processing-15e34b787480

    Déjà Darktable utilise le GPU pour traiter des images, donc je ne crois
    pas que l'on peut dire que c'est absent de Debian.

    Il faut faire attention entre implémentation et implémentation de référence.

    Par exemple dans le cas de Java, peut-on dire que Debian inclus Java ?
    Il n'inclus pas la version de référence de Java tel que produit par
    Oracle mais il inclus une version aux fonctionnalités et à la
    compatibilité identique nommé OpenJDK (qui est en partie produite par
    Oracle à ce que j'en comprends).

    Si tu regardes la page de ArchLinux, tu veras dans le haut plusieurs gestionnaire (driver) pour OpenCL.

    *rocm* est l'un d'eux
    Tout comme *opencl-amd* et *opencl-mesa*
    De ce que je comprend de ArchLinux, le package opencl-amd est équivalent
    à ce qui se trouve actuellement dans *non-free*.

    https://aur.archlinux.org/packages/opencl-amd/

    Solidairement,
    --
    Polyna-Maude R.-Summerside
    -Be smart, Be wise, Support opensource development


    --qlpKulKaGUgM4SG8dpCU9AikyMkh5IaiL--

    -----BEGIN PGP SIGNATURE-----

    wsF5BAABCAAjFiEElxOPFqFt1Wj+LmZjS1zCmZZxgEYFAmERraMFAwAAAAAACgkQS1zCmZZxgEbx dw/+M7mg7iNsIlqqRCsdQ51eyu/212IZPEX1cpCG5HNkJFmv3vaXDO49OjbxVoJqBBoVUu5XBBPm cG6YgoKpEVFllJp5sFbSmEPQ+Pt58xuUMWVYoV/y9f7z9WX2ZdZl6KpKbgN5PXLXBWRTHyhB4Bqw 4YX8h6/PSIZmGtJcdfvQ0BB2Dc3uKl18Z51uSluQr3a4qqc4RDt9IY9TSrkixYj+3n5L+c5We3FN w82PLDatC35i0QAhOy4Auf/Z4A2UX2e4AakuTI8nspxEToWWre1124YOjQBMlCPTJL4fYaqMsL2K pu4oXAIzZdqwAJ2jUTL3I1rUQf/l8Q/tTC6AQMue5ukN++uqu8UzzxXHmAP+4DokrQUn43lQBm70 PElIiqzO5lrr7QGWA0oJPPDFUbCyFRatR1P+kqfB5t/StqEthVayxWfQHwMKf56LsD+bgnyzN/41 yO3wlhpjA0FKFt00GZW/APqFCPLf6YC9sSbdLgc4njxbhqA2bnli1F7z+/Jtgw1V2cuyWJ70FlOT HVpqOqUmNbAnCSMu3NGQG/eJirhs9iI9eSYO3Kn2Gq7fjwXxcWgTWb9EHhVuQqJ2bMZjkmo2aAaT wSbw/VNr1tCYyugBL0aZSnTH5RjBgVMJdko8zBR0l/paUs7aDC9Zi2LV6NyvHlt0piAGhdZd3x8Q 1sI=
    =KiCH
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin:
  • From didier gaumet@21:1/5 to All on Tue Aug 10 09:50:01 2021
    Alors, clairement, je suis ignorant en tout ce qui touche traitement d'image, délégation de calculs à un processeur graphique, parallélisation. Donc Darktable, OpenCL, ROCm, qui rentrent à divers titres dans cette liste me sont étrangers

    Ce que j'ai déduit (peut-être à tort) c'est que ROCm est une couche open-source proposée par AMD, utilisant et implémentant OpenCL pour déléguer, de manière parallélisée le cas échéant, des calculs à des processeurs graphiques AMD/ATI (et
    Intel aussi, a priori)

    Que personne ne me demande d'élaborer, je serais bien en peine de le faire, mais le standard OpenCL 2.0 introduit la prise en compte des images (MESA implémente OpenCL 1.2, ROCm récent implémente OpenCL 2.2). (cf page Wikipedia en anglais d'OpenCL)
    Pure *spéculation* de ma part, vu que je n'y connais vraiment rien: peut-être que "prise en charge des images" signifie ici "prise en charge des calculs sur images directement dans un format natif comme raw ou jpeg plutôt que comme des flots de donné
    es numériques génériques"

    Pour ce qui est de Debian non-free, j'ai l'*impression* que ROCm est purement libre, donc n'y figurerait pas. Et que depuis que fglrx a été abandonné au profit de amdgpu-pro, il n'y a plus rien concernant les GPU AMD dans non-free

    Pour les implémentations de drivers (ICD) OpenCL dans debian, le paquet virtuel opencl-icd liste des solutions Mesa, Intel, Nvidia et Pocl (pour les CPU apparemment même si on doit pouvoir adapter pour les GPU). Rien concernant AMD.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?utf-8?Q?=C3=89tienne?= Mollier@21:1/5 to All on Tue Aug 10 21:50:01 2021
    Bonjour Benoît, Bonjour Didier,

    didier gaumet, on 2021-08-09:
    Je n'ai jamais expérimenté OpenCL, donc mes commentaires sont à prendre avec précaution

    De ce que je comprends (de travers?), à l'heure actuelle la seule implémentation d'OpenCL qui prendrait en charge le support des images serait ROCm à partir de la version 3.7 (on en est à 4.3). En tout cas pour de l'AMD/ATI, tu peux utiliser Mesa
    mais le support des images ne semble pas encore d'actualité.

    Je confirme les élucubrations par mes observations…
    L'implémentation OpenCL 1.2 de Mesa, fournie par le paquet
    Debian mesa-opencl-icd, ne prend pas en charge le "Image
    support", du moins pas sur ma carte RX560 :

    $ clinfo | grep Image
    Image support No

    Un moyen de tricher est d'utiliser le paquet pocl-opencl-icd ;
    c'est la version portable d'OpenCL. Mais bon, l'intérêt est
    limité, on ne tourne que sur le processeur, pas sur la puce
    d'accélération graphique :

    $ clinfo
    […]
    Platform Name Portable Computing Language
    Number of devices 1
    Device Name pthread-AMD Ryzen 5 3600 6-Core Processor
    […]
    Image support Yes
    Max number of samplers per kernel 16
    Max size for 1D images from buffer 1073741824 pixels
    Max 1D or 2D image array size 2048 images
    Max 2D image size 32768x32768 pixels
    Max 3D image size 2048x2048x2048 pixels
    Max number of read image args 128
    Max number of write image args 128
    […]

    Je confirme également que l'implémentation d'OpenCL 2.0 dans
    ROCm 4.3 prend en charge le "Image support":

    $ /opt/rocm-4.3.0/opencl/bin/clinfo | grep Image
    Image support: Yes

    J'ignore toutefois si ROCm 4.3 va supporter la puce Vega 8.

    Je n'ai trouvé trace de ROCm dans Debian qu'en version 3.3 de mai 2020 dans le repo experimental donc je suppose que c'est abandonné. Je n'ai trouvé de trace de ROCm dans aucun autre package (mais j'ai peut-être mal cherché)

    Effectivement, les travaux d'empaquetage sont en cours [1]. Il
    y encore eu des discussions ces derniers mois sur l'ordre dans
    lequel compiler les différents composants. La période de gel a
    pas mal ralenti l'ensemble des projets en cours ces sept
    derniers mois, et peut-être que l'empaquetage de ROCm en a aussi
    fait les frais (ça et la nécessité d'avoir du matériel adéquat à
    portée de main : les GPU AMD sont devenus subitement assez rares
    de nos jours).

    [1] : https://salsa.debian.org/rocm-team

    Tu peux peut-être t'en sortir en installant un paquetage Ubuntu (module ROCm DKMS) à partir des dépôts AMD, ça ne coûte rien de lire leur page de doc.

    https://wiki.archlinux.org/title/GPGPU https://www.phoronix.com/scan.php?page=news_item&px=ROCm-3.7-OpenCL-Image https://rocmdocs.amd.com/en/latest/Installation_Guide/Installation-Guide.html

    J'ai eu un peu de mal à déployer les binaires ROCm 4.3 fournis
    par AMD pour Ubuntu dans un environnement de test minimal en
    Bullseye. J'ai l'impression qu'il manque des dépendances. Il
    m'a fallu un peu de temps pour identifier qu'il me manquait
    libtinfo5 sur ma machine par exemple. Astuce : le programme /opt/rocm-4.3.0/bin/hipconfig, du paquet hip-base, permet
    d'obtenir un bilan assez détaillé de ce qu'il peut manquer dans l'installation, ou ce qui casse.

    Bonne journée, :)
    --
    Étienne Mollier <emollier@emlwks999.eu>
    Fingerprint: 8f91 b227 c7d6 f2b1 948c 8236 793c f67e 8f0d 11da
    Sent from /dev/pts/4, please excuse my verbosity.

    -----BEGIN PGP SIGNATURE-----

    iQIzBAABCgAdFiEEj5GyJ8fW8rGUjII2eTz2fo8NEdoFAmES2AcACgkQeTz2fo8N EdoCWhAAuZFIpO4xB67QJTRgftZqS9pCG/Z7bMunIzfUqPUQBu5XGnlb7h4ckP7J Z+jPfl1qZqsSTSC1Mmw8mm0thqIC4U4dkg9rdyTEpIqs9akDaovYTvnrGimEoWuO FSt6SqLiNMuSRt7/jSWfY3ZJc1PiMSFI+55PgWFzaPC4QlCPw13qXyZcJi/WbUHi yBsFbyIgHaY+WRiCl+j4RdHiFsL41iIonIOQK+cNfq5qqSB4fdF4cPqnQ2ehtKYB srZwjnz/H5ZXwGcKY2NNncu93HakUdDGjYJzJKU/aex0VbL73F12+bJ+npsDrlZA cU1FqFv2x4gzI0cgmeuWUGCJqGdsWPOz8NNEAQwGp1jlnCYtgEVxUQWYF9F2LX95 j2J5l4iB/VWiVPiv8uevdn5IBC5mXNY7tLTx7s5dUJzRvzdJoL0Z4JrMuRkEjTRb +fS+8Z9d/dS2B5ZSHfyNgTCJCgFQOiarUES1FOcAo4lvxbZTbHhIlwVuZqiuOm/p slIHK9UaIA2pe0tw6Lmx5FX5Wr9ciM0RxmP1AmA1pvFydpDq/FtQEIusZg4/+xHr Y4NnSIjcn+ZdckxjaGi7swegNFbhykuO14o0643Ke4FYTHOcN0pvfwldTzGR+E6P NnwKmixn0544B+tIKt7E9pUoEzGLmrmNEC6o9cTGH3UARGpYPaA=
    =kAOC
    -----END PGP SIGNATURE-----

    --- Sou
  • From didier gaumet@21:1/5 to All on Wed Aug 11 10:10:02 2021
    Le mardi 10 août 2021 à 21:48 +0200, Étienne Mollier a écrit :
    [...]
    Un moyen de tricher est d'utiliser le paquet pocl-opencl-icd
    [...]

    il y aurait certains cas où pocl ne gère pas que les CPU:
    ça ne te concerne pas personnellement (GPU) mais ça pourrait intéresser ceux équipés d'APU (CPU+GPU intégrés) AMD: il semble que certains d'entre eux soient gérés via HSA, auquel cas la partie graphique du chipset serait utilisée:
    http://portablecl.org/docs/html/hsa.html

    Ceci dit la doc semble vieille de 5 ans et parle d'état relativement expérimental...

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)