Partage
  • Partager sur Facebook
  • Partager sur Twitter

Lancement d'un thread au niveau du GPU.

    8 avril 2019 à 15:06:47

    Salut! Tout d'abord je tiens à préciser que je ne savais pas très bien ou poster ce sujet.

    Je voudrais lancer un programme que j'ai compilé avec mon propre compilateur pour le GPU.

    Mais je ne sais pas de trop comment m'y prendre et apparemment ça ne fonctionne pas comme je le pense.

    -Je pensais qu'il fallait écrire à un endroit précis dans la VRAM, envoyer l'id tu thread avec une instruction marche/arrêt et puis l'adresse de la fonction qui doit être appelée par le thread. Mais ça n'a pas l'air d'être commce ça d'après le code source de mesa 3D trouvé ici :

    https://github.com/mesa3d/mesa

    Apparemment il utilise les threads de c11 pour lancer des threads au niveau du GPU, pourtant g++ et gcc ne peuvent pas générer de code binaire pour des GPU. 

    Alors je ne sais pas très bien comment dois je m'y prendre.

    Merci.

    • Partager sur Facebook
    • Partager sur Twitter
      8 avril 2019 à 17:16:03

      Ca ne marche effectivement pas du tout comme ca.

      Ca depend de ce que tu veux faire. Si c'est du rendu -> OpenGL, Vulkan, Metal, DirectX, etc. Si c'est du calcul -> CUDA, OpenCL, DirectCompute, etc.

      Et plus généralement, fais une recherche sur "GPU computing"

      -
      Edité par gbdivers 8 avril 2019 à 17:16:44

      • Partager sur Facebook
      • Partager sur Twitter
        8 avril 2019 à 20:39:01

        Oui je sais, c'est du rendu, j'ai des bugs d'affichage avec openGL alors j'essaye de comprendre pourquoi, j'essaie de comprendre comment un GPU fonctionne, mais je n'y comprend rien, apparemment il faut envoyer des commandes pour charger des données depuis la RAM et chargé un registre pour démarrer le GPU et il distribue les tâches entre les différent threads.

        • Partager sur Facebook
        • Partager sur Twitter
          8 avril 2019 à 21:05:08

          Lu',

          c'est un peu hors sujet, mais si tu as des bugs d'afffichage avec openGL, il y'a de fortes chances que le problème ne vienne pas d'openGL, mais de toi même.

          C'est un peu comme si parceque ton code ne compile pas, tu essayais de by-passer le compilateur pour envoyer directement des opcodes au CPU...

          -
          Edité par eugchriss 8 avril 2019 à 21:06:18

          • Partager sur Facebook
          • Partager sur Twitter

          Eug

            8 avril 2019 à 21:11:35

            Ce n'est pas une chose que tu pourras comprendre sans étudier un vrai cours.
            • Partager sur Facebook
            • Partager sur Twitter
              8 avril 2019 à 21:16:18

              Oui je sais que le problème vient de moi même mais je n'arrive pas à trouver pourquoi.

              Enfin bref, je vais ouvrir un autre sujet avec le problème pour voir.

              Ps : enfin bref, je ne trouve juste pas les noms des fonctions c++ et des commandes pour charger le binaire dans la VRAM et puis l'exécuter.

              -
              Edité par OmbreNoire 8 avril 2019 à 21:20:14

              • Partager sur Facebook
              • Partager sur Twitter
                11 avril 2019 à 5:56:30

                Je n'avais pas vu ton "PS".

                1. il n'y a pas de fonctions C++ pour accéder directement au GPU, que ce soit la VRAM ou les threads.

                2. un binaire n'est généralement portable d'un type de CPU à un autre. Alors penser qu'on peut passer un binaire d'un CPU à un GPU, bof bof.

                Je crois que tu ne sais pas du tout ce que tu fais, que tu n'as pas les bases suffisantes en C++, en GPU et plus générlament en informatique pour faire un tel projet.

                • Partager sur Facebook
                • Partager sur Twitter
                  11 avril 2019 à 16:12:09

                  J'ai trouvé le problème, c'est glMemoryBarrier qui ne fonctionne pas..., maintenant, reste à savoir, pourquoi ...

                  • Partager sur Facebook
                  • Partager sur Twitter
                    11 avril 2019 à 16:27:54

                    >maintenant, reste à savoir, pourquoi ...

                    @Lolilolight, comme toujours RTFM.

                    • Partager sur Facebook
                    • Partager sur Twitter
                    Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                      11 avril 2019 à 17:33:20

                      La demarche est etrange... tu n'arrives pas a faire fonctionner glMemoryBarrier, donc tu essaies de passer directement à des accès bas niveau sur le GPU ? C'est violent comme démarche, ça manque un peu de juste milieu.
                      • Partager sur Facebook
                      • Partager sur Twitter
                        11 avril 2019 à 17:38:52

                        Bon hé bien voilà, problème résolu! (Même si je ne comprend pas pourquoi)

                        • Partager sur Facebook
                        • Partager sur Twitter

                        Lancement d'un thread au niveau du GPU.

                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                        • Editeur
                        • Markdown