SlideShare une entreprise Scribd logo
1  sur  165
Télécharger pour lire hors ligne
Revis˜o CUDA
                         a
         Avalia¸˜o de Desempenho
               ca
   Execu¸˜o Concorrente Ass´
        ca                 ıncrona
                        Conclus˜o
                                a
                       Referˆncias
                             e




Considera¸oes de Desempenho em CUDA
         c˜
                           (Parte 1/3)


                     Th´rsis T. P. Souza
                       a
                          t.souza@usp.br

              Instituto de Matem´tica e Estat´
                                  a           ıstica
                    Universidade de S˜o Paulo
                                     a


                     29 de abril de 2011



         Th´rsis T. P. Souza (USP)
           a                         Considera¸˜es de Desempenho em CUDA
                                              co
Revis˜o CUDA
                                    a
                    Avalia¸˜o de Desempenho
                          ca
              Execu¸˜o Concorrente Ass´
                   ca                 ıncrona
                                   Conclus˜o
                                           a
                                  Referˆncias
                                        e


Configura¸˜o de Ambiente
        ca



  Enquanto n˜o for dito o contr´rio ou citada respectiva referˆncia,
              a                  a                            e
  neste trabalho, considera-se a seguinte configura¸˜o:
                                                  ca
      Sistema Operacional Ubuntu Linux 10.04
      CUDA Toolkit vers˜o 3.2
                       a
      Arquitetura NVIDIA Fermi




                    Th´rsis T. P. Souza (USP)
                      a                         Considera¸˜es de Desempenho em CUDA
                                                         co
Revis˜o CUDA
                                     a
                     Avalia¸˜o de Desempenho
                           ca
               Execu¸˜o Concorrente Ass´
                    ca                 ıncrona
                                    Conclus˜o
                                            a
                                   Referˆncias
                                         e


Agenda

  1   Revis˜o CUDA
           a
  2   Avalia¸˜o de Desempenho
            ca
        M´tricas de Desempenho
          e
        Tempo em CUDA
        Largura de Banda em GPU
  3   Execu¸˜o Concorrente Ass´
           ca                  ıncrona
        Transferˆncia de Dados Host-Device
                e
        Kernels Paralelos
  4   Conclus˜o
             a
  5   Referˆncias
           e

                     Th´rsis T. P. Souza (USP)
                       a                         Considera¸oes de Desempenho em CUDA
                                                          c˜
Revis˜o CUDA
                                     a
                     Avalia¸˜o de Desempenho
                           ca
               Execu¸˜o Concorrente Ass´
                    ca                 ıncrona
                                    Conclus˜o
                                            a
                                   Referˆncias
                                         e


Agenda

  1   Revis˜o CUDA
           a
  2   Avalia¸˜o de Desempenho
            ca
        M´tricas de Desempenho
          e
        Tempo em CUDA
        Largura de Banda em GPU
  3   Execu¸˜o Concorrente Ass´
           ca                  ıncrona
        Transferˆncia de Dados Host-Device
                e
        Kernels Paralelos
  4   Conclus˜o
             a
  5   Referˆncias
           e

                     Th´rsis T. P. Souza (USP)
                       a                         Considera¸oes de Desempenho em CUDA
                                                          c˜
Revis˜o CUDA
                                 a
                 Avalia¸˜o de Desempenho
                       ca
           Execu¸˜o Concorrente Ass´
                ca                 ıncrona
                                Conclus˜o
                                        a
                               Referˆncias
                                     e


Arquitetura Fermi




                 Th´rsis T. P. Souza (USP)
                   a                         Considera¸˜es de Desempenho em CUDA
                                                      co
Revis˜o CUDA
                                a
                Avalia¸˜o de Desempenho
                      ca
          Execu¸˜o Concorrente Ass´
               ca                 ıncrona
                               Conclus˜o
                                       a
                              Referˆncias
                                    e


Tipos de Mem´ria
            o




                Th´rsis T. P. Souza (USP)
                  a                         Considera¸˜es de Desempenho em CUDA
                                                     co
Revis˜o CUDA
                                 a
                 Avalia¸˜o de Desempenho
                       ca
           Execu¸˜o Concorrente Ass´
                ca                 ıncrona
                                Conclus˜o
                                        a
                               Referˆncias
                                     e


Hierarquia de Threads




                 Th´rsis T. P. Souza (USP)
                   a                         Considera¸˜es de Desempenho em CUDA
                                                      co
Revis˜o CUDA
                               a
               Avalia¸˜o de Desempenho
                     ca
         Execu¸˜o Concorrente Ass´
              ca                 ıncrona
                              Conclus˜o
                                      a
                             Referˆncias
                                   e


CUDA C




               Th´rsis T. P. Souza (USP)
                 a                         Considera¸˜es de Desempenho em CUDA
                                                    co
Revis˜o CUDA
                                a
                Avalia¸˜o de Desempenho
                      ca
          Execu¸˜o Concorrente Ass´
               ca                 ıncrona
                               Conclus˜o
                                       a
                              Referˆncias
                                    e


Modelo Heterogˆneo de Computa¸˜o
              e              ca




                      Figura: Fluxo de execu¸˜o CUDA
                                            ca



                Th´rsis T. P. Souza (USP)
                  a                         Considera¸˜es de Desempenho em CUDA
                                                     co
Revis˜o CUDA
                                     a
                     Avalia¸˜o de Desempenho
                           ca                    M´tricas de Desempenho
                                                   e
               Execu¸˜o Concorrente Ass´
                    ca                 ıncrona   Tempo em CUDA
                                    Conclus˜o
                                            a    Largura de Banda em GPU
                                   Referˆncias
                                         e


Agenda

  1   Revis˜o CUDA
           a
  2   Avalia¸˜o de Desempenho
            ca
        M´tricas de Desempenho
          e
        Tempo em CUDA
        Largura de Banda em GPU
  3   Execu¸˜o Concorrente Ass´
           ca                  ıncrona
        Transferˆncia de Dados Host-Device
                e
        Kernels Paralelos
  4   Conclus˜o
             a
  5   Referˆncias
           e

                     Th´rsis T. P. Souza (USP)
                       a                         Considera¸oes de Desempenho em CUDA
                                                          c˜
Revis˜o CUDA
                                   a
                   Avalia¸˜o de Desempenho
                         ca                    M´tricas de Desempenho
                                                 e
             Execu¸˜o Concorrente Ass´
                  ca                 ıncrona   Tempo em CUDA
                                  Conclus˜o
                                          a    Largura de Banda em GPU
                                 Referˆncias
                                       e


Desempenho Sequencial x Paralelo
  Tempo de execu¸˜o sequencial ´ fun¸˜o de
                ca             e    ca




                   Th´rsis T. P. Souza (USP)
                     a                         Considera¸˜es de Desempenho em CUDA
                                                        co
Revis˜o CUDA
                                   a
                   Avalia¸˜o de Desempenho
                         ca                    M´tricas de Desempenho
                                                 e
             Execu¸˜o Concorrente Ass´
                  ca                 ıncrona   Tempo em CUDA
                                  Conclus˜o
                                          a    Largura de Banda em GPU
                                 Referˆncias
                                       e


Desempenho Sequencial x Paralelo
  Tempo de execu¸˜o sequencial ´ fun¸˜o de
                ca             e    ca
      tamanho da entrada




                   Th´rsis T. P. Souza (USP)
                     a                         Considera¸˜es de Desempenho em CUDA
                                                        co
Revis˜o CUDA
                                   a
                   Avalia¸˜o de Desempenho
                         ca                    M´tricas de Desempenho
                                                 e
             Execu¸˜o Concorrente Ass´
                  ca                 ıncrona   Tempo em CUDA
                                  Conclus˜o
                                          a    Largura de Banda em GPU
                                 Referˆncias
                                       e


Desempenho Sequencial x Paralelo
  Tempo de execu¸˜o sequencial ´ fun¸˜o de
                ca             e    ca
      tamanho da entrada
      espa¸o (mem´ria)
          c      o




                   Th´rsis T. P. Souza (USP)
                     a                         Considera¸˜es de Desempenho em CUDA
                                                        co
Revis˜o CUDA
                                   a
                   Avalia¸˜o de Desempenho
                         ca                    M´tricas de Desempenho
                                                 e
             Execu¸˜o Concorrente Ass´
                  ca                 ıncrona   Tempo em CUDA
                                  Conclus˜o
                                          a    Largura de Banda em GPU
                                 Referˆncias
                                       e


Desempenho Sequencial x Paralelo
  Tempo de execu¸˜o sequencial ´ fun¸˜o de
                ca             e    ca
      tamanho da entrada
      espa¸o (mem´ria)
          c      o
  Tempo de execu¸˜o paralela ´ fun¸˜o de
                ca           e    ca




                   Th´rsis T. P. Souza (USP)
                     a                         Considera¸˜es de Desempenho em CUDA
                                                        co
Revis˜o CUDA
                                   a
                   Avalia¸˜o de Desempenho
                         ca                    M´tricas de Desempenho
                                                 e
             Execu¸˜o Concorrente Ass´
                  ca                 ıncrona   Tempo em CUDA
                                  Conclus˜o
                                          a    Largura de Banda em GPU
                                 Referˆncias
                                       e


Desempenho Sequencial x Paralelo
  Tempo de execu¸˜o sequencial ´ fun¸˜o de
                ca             e    ca
      tamanho da entrada
      espa¸o (mem´ria)
          c      o
  Tempo de execu¸˜o paralela ´ fun¸˜o de
                ca           e    ca
      tamanho da entrada
      espa¸o (mem´ria)
          c      o




                   Th´rsis T. P. Souza (USP)
                     a                         Considera¸˜es de Desempenho em CUDA
                                                        co
Revis˜o CUDA
                                   a
                   Avalia¸˜o de Desempenho
                         ca                    M´tricas de Desempenho
                                                 e
             Execu¸˜o Concorrente Ass´
                  ca                 ıncrona   Tempo em CUDA
                                  Conclus˜o
                                          a    Largura de Banda em GPU
                                 Referˆncias
                                       e


Desempenho Sequencial x Paralelo
  Tempo de execu¸˜o sequencial ´ fun¸˜o de
                ca             e    ca
      tamanho da entrada
      espa¸o (mem´ria)
          c      o
  Tempo de execu¸˜o paralela ´ fun¸˜o de
                ca           e    ca
      tamanho da entrada
      espa¸o (mem´ria)
          c      o
      n´mero de processadores
       u




                   Th´rsis T. P. Souza (USP)
                     a                         Considera¸˜es de Desempenho em CUDA
                                                        co
Revis˜o CUDA
                                   a
                   Avalia¸˜o de Desempenho
                         ca                    M´tricas de Desempenho
                                                 e
             Execu¸˜o Concorrente Ass´
                  ca                 ıncrona   Tempo em CUDA
                                  Conclus˜o
                                          a    Largura de Banda em GPU
                                 Referˆncias
                                       e


Desempenho Sequencial x Paralelo
  Tempo de execu¸˜o sequencial ´ fun¸˜o de
                ca             e    ca
      tamanho da entrada
      espa¸o (mem´ria)
          c      o
  Tempo de execu¸˜o paralela ´ fun¸˜o de
                ca           e    ca
      tamanho da entrada
      espa¸o (mem´ria)
          c      o
      n´mero de processadores
       u
      parˆmetros de comunica¸˜o da arquitetura alvo
         a                  ca




                   Th´rsis T. P. Souza (USP)
                     a                         Considera¸˜es de Desempenho em CUDA
                                                        co
Revis˜o CUDA
                                      a
                      Avalia¸˜o de Desempenho
                            ca                    M´tricas de Desempenho
                                                    e
                Execu¸˜o Concorrente Ass´
                     ca                 ıncrona   Tempo em CUDA
                                     Conclus˜o
                                             a    Largura de Banda em GPU
                                    Referˆncias
                                          e


Desempenho Sequencial x Paralelo
  Tempo de execu¸˜o sequencial ´ fun¸˜o de
                ca             e    ca
      tamanho da entrada
      espa¸o (mem´ria)
          c      o
  Tempo de execu¸˜o paralela ´ fun¸˜o de
                ca           e    ca
      tamanho da entrada
      espa¸o (mem´ria)
          c      o
      n´mero de processadores
       u
      parˆmetros de comunica¸˜o da arquitetura alvo
         a                  ca
  Implica¸˜es
         co




                      Th´rsis T. P. Souza (USP)
                        a                         Considera¸˜es de Desempenho em CUDA
                                                           co
Revis˜o CUDA
                                      a
                      Avalia¸˜o de Desempenho
                            ca                    M´tricas de Desempenho
                                                    e
                Execu¸˜o Concorrente Ass´
                     ca                 ıncrona   Tempo em CUDA
                                     Conclus˜o
                                             a    Largura de Banda em GPU
                                    Referˆncias
                                          e


Desempenho Sequencial x Paralelo
  Tempo de execu¸˜o sequencial ´ fun¸˜o de
                ca             e    ca
      tamanho da entrada
      espa¸o (mem´ria)
          c      o
  Tempo de execu¸˜o paralela ´ fun¸˜o de
                ca           e    ca
      tamanho da entrada
      espa¸o (mem´ria)
          c      o
      n´mero de processadores
       u
      parˆmetros de comunica¸˜o da arquitetura alvo
         a                  ca
  Implica¸˜es
         co
      necess´rio analisar algoritmos paralelos para uma arquitetura
            a
      alvo particular

                      Th´rsis T. P. Souza (USP)
                        a                         Considera¸˜es de Desempenho em CUDA
                                                           co
Revis˜o CUDA
                                      a
                      Avalia¸˜o de Desempenho
                            ca                    M´tricas de Desempenho
                                                    e
                Execu¸˜o Concorrente Ass´
                     ca                 ıncrona   Tempo em CUDA
                                     Conclus˜o
                                             a    Largura de Banda em GPU
                                    Referˆncias
                                          e


Desempenho Sequencial x Paralelo
  Tempo de execu¸˜o sequencial ´ fun¸˜o de
                ca             e    ca
      tamanho da entrada
      espa¸o (mem´ria)
          c      o
  Tempo de execu¸˜o paralela ´ fun¸˜o de
                ca           e    ca
      tamanho da entrada
      espa¸o (mem´ria)
          c      o
      n´mero de processadores
       u
      parˆmetros de comunica¸˜o da arquitetura alvo
         a                  ca
  Implica¸˜es
         co
      necess´rio analisar algoritmos paralelos para uma arquitetura
            a
      alvo particular
      sistema paralelo = algoritmo paralelo + arquitetura
                      Th´rsis T. P. Souza (USP)
                        a                         Considera¸˜es de Desempenho em CUDA
                                                           co
Revis˜o CUDA
                                     a
                     Avalia¸˜o de Desempenho
                           ca                    M´tricas de Desempenho
                                                   e
               Execu¸˜o Concorrente Ass´
                    ca                 ıncrona   Tempo em CUDA
                                    Conclus˜o
                                            a    Largura de Banda em GPU
                                   Referˆncias
                                         e


Agenda

  1   Revis˜o CUDA
           a
  2   Avalia¸˜o de Desempenho
            ca
        M´tricas de Desempenho
          e
        Tempo em CUDA
        Largura de Banda em GPU
  3   Execu¸˜o Concorrente Ass´
           ca                  ıncrona
        Transferˆncia de Dados Host-Device
                e
        Kernels Paralelos
  4   Conclus˜o
             a
  5   Referˆncias
           e

                     Th´rsis T. P. Souza (USP)
                       a                         Considera¸oes de Desempenho em CUDA
                                                          c˜
Revis˜o CUDA
                                  a
                  Avalia¸˜o de Desempenho
                        ca                    M´tricas de Desempenho
                                                e
            Execu¸˜o Concorrente Ass´
                 ca                 ıncrona   Tempo em CUDA
                                 Conclus˜o
                                         a    Largura de Banda em GPU
                                Referˆncias
                                      e


M´tricas de Desempenho
 e



  M´tricas de Desempenho mais comuns :
   e




                  Th´rsis T. P. Souza (USP)
                    a                         Considera¸˜es de Desempenho em CUDA
                                                       co
Revis˜o CUDA
                                  a
                  Avalia¸˜o de Desempenho
                        ca                    M´tricas de Desempenho
                                                e
            Execu¸˜o Concorrente Ass´
                 ca                 ıncrona   Tempo em CUDA
                                 Conclus˜o
                                         a    Largura de Banda em GPU
                                Referˆncias
                                      e


M´tricas de Desempenho
 e



  M´tricas de Desempenho mais comuns :
   e
      speedup




                  Th´rsis T. P. Souza (USP)
                    a                         Considera¸˜es de Desempenho em CUDA
                                                       co
Revis˜o CUDA
                                  a
                  Avalia¸˜o de Desempenho
                        ca                    M´tricas de Desempenho
                                                e
            Execu¸˜o Concorrente Ass´
                 ca                 ıncrona   Tempo em CUDA
                                 Conclus˜o
                                         a    Largura de Banda em GPU
                                Referˆncias
                                      e


M´tricas de Desempenho
 e



  M´tricas de Desempenho mais comuns :
   e
      speedup
      efficiency




                  Th´rsis T. P. Souza (USP)
                    a                         Considera¸˜es de Desempenho em CUDA
                                                       co
Revis˜o CUDA
                                    a
                    Avalia¸˜o de Desempenho
                          ca                    M´tricas de Desempenho
                                                  e
              Execu¸˜o Concorrente Ass´
                   ca                 ıncrona   Tempo em CUDA
                                   Conclus˜o
                                           a    Largura de Banda em GPU
                                  Referˆncias
                                        e


M´tricas de Desempenho
 e



  M´tricas de Desempenho mais comuns :
   e
      speedup
      efficiency
      scalability




                    Th´rsis T. P. Souza (USP)
                      a                         Considera¸˜es de Desempenho em CUDA
                                                         co
Revis˜o CUDA
                                    a
                    Avalia¸˜o de Desempenho
                          ca                    M´tricas de Desempenho
                                                  e
              Execu¸˜o Concorrente Ass´
                   ca                 ıncrona   Tempo em CUDA
                                   Conclus˜o
                                           a    Largura de Banda em GPU
                                  Referˆncias
                                        e


M´tricas de Desempenho
 e



  M´tricas de Desempenho mais comuns :
   e
      speedup
      efficiency
      scalability
      sustained FLOPS rates




                    Th´rsis T. P. Souza (USP)
                      a                         Considera¸˜es de Desempenho em CUDA
                                                         co
Revis˜o CUDA
                                   a
                   Avalia¸˜o de Desempenho
                         ca                    M´tricas de Desempenho
                                                 e
             Execu¸˜o Concorrente Ass´
                  ca                 ıncrona   Tempo em CUDA
                                  Conclus˜o
                                          a    Largura de Banda em GPU
                                 Referˆncias
                                       e


Speedup

  Raz˜o entre o tempo da solu¸˜o do algoritmo executado em um
      a                      ca
  unico processador e o tempo da solu¸˜o do mesmo algoritmo em
  ´                                  ca
  m´ltiplos processadores:
    u




                   Th´rsis T. P. Souza (USP)
                     a                         Considera¸˜es de Desempenho em CUDA
                                                        co
Revis˜o CUDA
                                   a
                   Avalia¸˜o de Desempenho
                         ca                    M´tricas de Desempenho
                                                 e
             Execu¸˜o Concorrente Ass´
                  ca                 ıncrona   Tempo em CUDA
                                  Conclus˜o
                                          a    Largura de Banda em GPU
                                 Referˆncias
                                       e


Speedup

  Raz˜o entre o tempo da solu¸˜o do algoritmo executado em um
      a                      ca
  unico processador e o tempo da solu¸˜o do mesmo algoritmo em
  ´                                  ca
  m´ltiplos processadores:
    u


                                     Sp = T1 /Tp




                   Th´rsis T. P. Souza (USP)
                     a                         Considera¸˜es de Desempenho em CUDA
                                                        co
Revis˜o CUDA
                                   a
                   Avalia¸˜o de Desempenho
                         ca                    M´tricas de Desempenho
                                                 e
             Execu¸˜o Concorrente Ass´
                  ca                 ıncrona   Tempo em CUDA
                                  Conclus˜o
                                          a    Largura de Banda em GPU
                                 Referˆncias
                                       e


Speedup

  Raz˜o entre o tempo da solu¸˜o do algoritmo executado em um
      a                      ca
  unico processador e o tempo da solu¸˜o do mesmo algoritmo em
  ´                                  ca
  m´ltiplos processadores:
    u


                                     Sp = T1 /Tp

  onde,
      p corresponde ao n´mero de processadores
                        u




                   Th´rsis T. P. Souza (USP)
                     a                         Considera¸˜es de Desempenho em CUDA
                                                        co
Revis˜o CUDA
                                   a
                   Avalia¸˜o de Desempenho
                         ca                    M´tricas de Desempenho
                                                 e
             Execu¸˜o Concorrente Ass´
                  ca                 ıncrona   Tempo em CUDA
                                  Conclus˜o
                                          a    Largura de Banda em GPU
                                 Referˆncias
                                       e


Speedup

  Raz˜o entre o tempo da solu¸˜o do algoritmo executado em um
      a                      ca
  unico processador e o tempo da solu¸˜o do mesmo algoritmo em
  ´                                  ca
  m´ltiplos processadores:
    u


                                     Sp = T1 /Tp

  onde,
      p corresponde ao n´mero de processadores
                        u
      T1 ´ o tempo de execu¸˜o do algoritmo sequencial
         e                 ca




                   Th´rsis T. P. Souza (USP)
                     a                         Considera¸˜es de Desempenho em CUDA
                                                        co
Revis˜o CUDA
                                   a
                   Avalia¸˜o de Desempenho
                         ca                    M´tricas de Desempenho
                                                 e
             Execu¸˜o Concorrente Ass´
                  ca                 ıncrona   Tempo em CUDA
                                  Conclus˜o
                                          a    Largura de Banda em GPU
                                 Referˆncias
                                       e


Speedup

  Raz˜o entre o tempo da solu¸˜o do algoritmo executado em um
      a                      ca
  unico processador e o tempo da solu¸˜o do mesmo algoritmo em
  ´                                  ca
  m´ltiplos processadores:
    u


                                     Sp = T1 /Tp

  onde,
      p corresponde ao n´mero de processadores
                        u
      T1 ´ o tempo de execu¸˜o do algoritmo sequencial
         e                 ca
      Tp ´ o tempo do algoritmo paralelo em p processadores
         e


                   Th´rsis T. P. Souza (USP)
                     a                         Considera¸˜es de Desempenho em CUDA
                                                        co
Revis˜o CUDA
                                 a
                 Avalia¸˜o de Desempenho
                       ca                    M´tricas de Desempenho
                                               e
           Execu¸˜o Concorrente Ass´
                ca                 ıncrona   Tempo em CUDA
                                Conclus˜o
                                        a    Largura de Banda em GPU
                               Referˆncias
                                     e


Speedup




     Sp = p, Linear speedup




                 Th´rsis T. P. Souza (USP)
                   a                         Considera¸˜es de Desempenho em CUDA
                                                      co
Revis˜o CUDA
                                  a
                  Avalia¸˜o de Desempenho
                        ca                    M´tricas de Desempenho
                                                e
            Execu¸˜o Concorrente Ass´
                 ca                 ıncrona   Tempo em CUDA
                                 Conclus˜o
                                         a    Largura de Banda em GPU
                                Referˆncias
                                      e


Speedup




     Sp = p, Linear speedup
     Sp < p, Sub-linear speedup




                  Th´rsis T. P. Souza (USP)
                    a                         Considera¸˜es de Desempenho em CUDA
                                                       co
Revis˜o CUDA
                                  a
                  Avalia¸˜o de Desempenho
                        ca                    M´tricas de Desempenho
                                                e
            Execu¸˜o Concorrente Ass´
                 ca                 ıncrona   Tempo em CUDA
                                 Conclus˜o
                                         a    Largura de Banda em GPU
                                Referˆncias
                                      e


Speedup




     Sp = p, Linear speedup
     Sp < p, Sub-linear speedup
     Sp > p, Super-linear speedup




                  Th´rsis T. P. Souza (USP)
                    a                         Considera¸˜es de Desempenho em CUDA
                                                       co
Revis˜o CUDA
                                   a
                   Avalia¸˜o de Desempenho
                         ca                    M´tricas de Desempenho
                                                 e
             Execu¸˜o Concorrente Ass´
                  ca                 ıncrona   Tempo em CUDA
                                  Conclus˜o
                                          a    Largura de Banda em GPU
                                 Referˆncias
                                       e


Lei de Amdahl


  M´ximo speedup (S) esperado ao paralelizar uma certa por¸˜o de
   a                                                      ca
  um programa sequencial:

                                             1
                                S=                    P
                                        (1 − P) +     N

  onde, P ´ a fra¸˜o do tempo gasto pelo programa serial da parte
          e      ca
  do c´digo que pode ser paralelizado e N ´ o n´mero de
      o                                    e     u
  processadores sobre o qual o c´digo paraleliz´vel roda.
                                o              a




                   Th´rsis T. P. Souza (USP)
                     a                         Considera¸˜es de Desempenho em CUDA
                                                        co
Revis˜o CUDA
                                a
                Avalia¸˜o de Desempenho
                      ca                    M´tricas de Desempenho
                                              e
          Execu¸˜o Concorrente Ass´
               ca                 ıncrona   Tempo em CUDA
                               Conclus˜o
                                       a    Largura de Banda em GPU
                              Referˆncias
                                    e


Lei de Amdahl




                Th´rsis T. P. Souza (USP)
                  a                         Considera¸˜es de Desempenho em CUDA
                                                     co
Revis˜o CUDA
                                   a
                   Avalia¸˜o de Desempenho
                         ca                    M´tricas de Desempenho
                                                 e
             Execu¸˜o Concorrente Ass´
                  ca                 ıncrona   Tempo em CUDA
                                  Conclus˜o
                                          a    Largura de Banda em GPU
                                 Referˆncias
                                       e


Lei de Amdahl




  Boa pr´tica
        a
  Para maximizar desempenho, antes de mais nada, busque formas
  de paralelizar o c´digo sequencial.
                    o




                   Th´rsis T. P. Souza (USP)
                     a                         Considera¸˜es de Desempenho em CUDA
                                                        co
Revis˜o CUDA
                                   a
                   Avalia¸˜o de Desempenho
                         ca                    M´tricas de Desempenho
                                                 e
             Execu¸˜o Concorrente Ass´
                  ca                 ıncrona   Tempo em CUDA
                                  Conclus˜o
                                          a    Largura de Banda em GPU
                                 Referˆncias
                                       e


Efficiency



  Raz˜o entre o speedup e o n´mero de processadores:
     a                       u




                   Th´rsis T. P. Souza (USP)
                     a                         Considera¸˜es de Desempenho em CUDA
                                                        co
Revis˜o CUDA
                                   a
                   Avalia¸˜o de Desempenho
                         ca                    M´tricas de Desempenho
                                                 e
             Execu¸˜o Concorrente Ass´
                  ca                 ıncrona   Tempo em CUDA
                                  Conclus˜o
                                          a    Largura de Banda em GPU
                                 Referˆncias
                                       e


Efficiency



  Raz˜o entre o speedup e o n´mero de processadores:
     a                       u


                                                    T1
                                Ep = Sp /p =
                                                   pTp




                   Th´rsis T. P. Souza (USP)
                     a                         Considera¸˜es de Desempenho em CUDA
                                                        co
Revis˜o CUDA
                                   a
                   Avalia¸˜o de Desempenho
                         ca                    M´tricas de Desempenho
                                                 e
             Execu¸˜o Concorrente Ass´
                  ca                 ıncrona   Tempo em CUDA
                                  Conclus˜o
                                          a    Largura de Banda em GPU
                                 Referˆncias
                                       e


Efficiency



  Raz˜o entre o speedup e o n´mero de processadores:
     a                       u


                                                    T1
                                Ep = Sp /p =
                                                   pTp

  Estima qu˜o bem os processadores est˜o sendo utilizados, tendo
            a                         a
  em vista o tempo gasto em overhead como: sincroniza¸˜o e troca
                                                       ca
  de mensagens.




                   Th´rsis T. P. Souza (USP)
                     a                         Considera¸˜es de Desempenho em CUDA
                                                        co
Revis˜o CUDA
                                    a
                    Avalia¸˜o de Desempenho
                          ca                    M´tricas de Desempenho
                                                  e
              Execu¸˜o Concorrente Ass´
                   ca                 ıncrona   Tempo em CUDA
                                   Conclus˜o
                                           a    Largura de Banda em GPU
                                  Referˆncias
                                        e


Scalability



  Capacidade do algoritmo de resolver um problema n vezes maior
  em n vezes mais processadores [Gray, 1992]:




                    Th´rsis T. P. Souza (USP)
                      a                         Considera¸˜es de Desempenho em CUDA
                                                         co
Revis˜o CUDA
                                      a
                      Avalia¸˜o de Desempenho
                            ca                     M´tricas de Desempenho
                                                     e
                Execu¸˜o Concorrente Ass´
                     ca                 ıncrona    Tempo em CUDA
                                     Conclus˜o
                                             a     Largura de Banda em GPU
                                    Referˆncias
                                          e


Scalability



  Capacidade do algoritmo de resolver um problema n vezes maior
  em n vezes mais processadores [Gray, 1992]:

                     Tempo para resolver um problema de tamanho m em p processadores
  Scaleup(p, n) =
                    Tempo para resolver um problema de tamanho nm em np processadores




                       Th´rsis T. P. Souza (USP)
                         a                         Considera¸˜es de Desempenho em CUDA
                                                            co
Revis˜o CUDA
                                 a
                 Avalia¸˜o de Desempenho
                       ca                    M´tricas de Desempenho
                                               e
           Execu¸˜o Concorrente Ass´
                ca                 ıncrona   Tempo em CUDA
                                Conclus˜o
                                        a    Largura de Banda em GPU
                               Referˆncias
                                     e


Sustained FLOPS rates




     FLOPS: Floating-point Operations per Second




                 Th´rsis T. P. Souza (USP)
                   a                         Considera¸˜es de Desempenho em CUDA
                                                      co
Revis˜o CUDA
                                  a
                  Avalia¸˜o de Desempenho
                        ca                    M´tricas de Desempenho
                                                e
            Execu¸˜o Concorrente Ass´
                 ca                 ıncrona   Tempo em CUDA
                                 Conclus˜o
                                         a    Largura de Banda em GPU
                                Referˆncias
                                      e


Sustained FLOPS rates




     FLOPS: Floating-point Operations per Second
     A taxa sustentada de FLOPS mede qu˜o bem uma
                                           a
     implementa¸˜o espec´
                ca       ıfica explora a arquitetura alvo




                  Th´rsis T. P. Souza (USP)
                    a                         Considera¸˜es de Desempenho em CUDA
                                                       co
Revis˜o CUDA
                                  a
                  Avalia¸˜o de Desempenho
                        ca                    M´tricas de Desempenho
                                                e
            Execu¸˜o Concorrente Ass´
                 ca                 ıncrona   Tempo em CUDA
                                 Conclus˜o
                                         a    Largura de Banda em GPU
                                Referˆncias
                                      e


FLOPS




 Fal´cia: FLOPS ´ uma boa m´trica de desempenho
    a            e             e
      Essa m´trica n˜o indica necessariamente que um algoritmo ´
             e      a                                          e
      eficiente




                  Th´rsis T. P. Souza (USP)
                    a                         Considera¸˜es de Desempenho em CUDA
                                                       co
Revis˜o CUDA
                                  a
                  Avalia¸˜o de Desempenho
                        ca                    M´tricas de Desempenho
                                                e
            Execu¸˜o Concorrente Ass´
                 ca                 ıncrona   Tempo em CUDA
                                 Conclus˜o
                                         a    Largura de Banda em GPU
                                Referˆncias
                                      e


FLOPS




 Fal´cia: FLOPS ´ uma boa m´trica de desempenho
    a            e             e
      Essa m´trica n˜o indica necessariamente que um algoritmo ´
             e      a                                          e
      eficiente
     Um algoritmo alternativo com menor FLOPS pode resolver
     um problema mais rapidamente




                  Th´rsis T. P. Souza (USP)
                    a                         Considera¸˜es de Desempenho em CUDA
                                                       co
Revis˜o CUDA
                                 a
                 Avalia¸˜o de Desempenho
                       ca                    M´tricas de Desempenho
                                               e
           Execu¸˜o Concorrente Ass´
                ca                 ıncrona   Tempo em CUDA
                                Conclus˜o
                                        a    Largura de Banda em GPU
                               Referˆncias
                                     e


Conclus˜o M´tricas de Desempenho
       a   e


     Cuidado ao estender erradamente m´tricas que valem para um
                                       e
     contexto espec´
                   ıficos. Ex.: microbenchmarks, FLOPS de pico




                 Th´rsis T. P. Souza (USP)
                   a                         Considera¸˜es de Desempenho em CUDA
                                                      co
Revis˜o CUDA
                                 a
                 Avalia¸˜o de Desempenho
                       ca                    M´tricas de Desempenho
                                               e
           Execu¸˜o Concorrente Ass´
                ca                 ıncrona   Tempo em CUDA
                                Conclus˜o
                                        a    Largura de Banda em GPU
                               Referˆncias
                                     e


Conclus˜o M´tricas de Desempenho
       a   e


     Cuidado ao estender erradamente m´tricas que valem para um
                                       e
     contexto espec´
                   ıficos. Ex.: microbenchmarks, FLOPS de pico
     Tempo de execu¸˜o ´ a unica medida v´lida para desempenho
                     ca e ´              a
     [Hennessy, 2004]




                 Th´rsis T. P. Souza (USP)
                   a                         Considera¸˜es de Desempenho em CUDA
                                                      co
Revis˜o CUDA
                                 a
                 Avalia¸˜o de Desempenho
                       ca                    M´tricas de Desempenho
                                               e
           Execu¸˜o Concorrente Ass´
                ca                 ıncrona   Tempo em CUDA
                                Conclus˜o
                                        a    Largura de Banda em GPU
                               Referˆncias
                                     e


Conclus˜o M´tricas de Desempenho
       a   e


     Cuidado ao estender erradamente m´tricas que valem para um
                                       e
     contexto espec´
                   ıficos. Ex.: microbenchmarks, FLOPS de pico
     Tempo de execu¸˜o ´ a unica medida v´lida para desempenho
                     ca e ´              a
     [Hennessy, 2004]
     Qualquer m´trica deve estar vinculada ao tempo de execu¸˜o
               e                                            ca




                 Th´rsis T. P. Souza (USP)
                   a                         Considera¸˜es de Desempenho em CUDA
                                                      co
Revis˜o CUDA
                                   a
                   Avalia¸˜o de Desempenho
                         ca                    M´tricas de Desempenho
                                                 e
             Execu¸˜o Concorrente Ass´
                  ca                 ıncrona   Tempo em CUDA
                                  Conclus˜o
                                          a    Largura de Banda em GPU
                                 Referˆncias
                                       e


Conclus˜o M´tricas de Desempenho
       a   e


      Cuidado ao estender erradamente m´tricas que valem para um
                                        e
      contexto espec´
                    ıficos. Ex.: microbenchmarks, FLOPS de pico
      Tempo de execu¸˜o ´ a unica medida v´lida para desempenho
                      ca e ´              a
      [Hennessy, 2004]
      Qualquer m´trica deve estar vinculada ao tempo de execu¸˜o
                e                                            ca

  Boa pr´tica
         a
  Utilize o tempo de execu¸˜o como medida de desempenho.
                          ca




                   Th´rsis T. P. Souza (USP)
                     a                         Considera¸˜es de Desempenho em CUDA
                                                        co
Revis˜o CUDA
                                     a
                     Avalia¸˜o de Desempenho
                           ca                    M´tricas de Desempenho
                                                   e
               Execu¸˜o Concorrente Ass´
                    ca                 ıncrona   Tempo em CUDA
                                    Conclus˜o
                                            a    Largura de Banda em GPU
                                   Referˆncias
                                         e


Agenda

  1   Revis˜o CUDA
           a
  2   Avalia¸˜o de Desempenho
            ca
        M´tricas de Desempenho
          e
        Tempo em CUDA
        Largura de Banda em GPU
  3   Execu¸˜o Concorrente Ass´
           ca                  ıncrona
        Transferˆncia de Dados Host-Device
                e
        Kernels Paralelos
  4   Conclus˜o
             a
  5   Referˆncias
           e

                     Th´rsis T. P. Souza (USP)
                       a                         Considera¸oes de Desempenho em CUDA
                                                          c˜
Revis˜o CUDA
                                   a
                   Avalia¸˜o de Desempenho
                         ca                    M´tricas de Desempenho
                                                 e
             Execu¸˜o Concorrente Ass´
                  ca                 ıncrona   Tempo em CUDA
                                  Conclus˜o
                                          a    Largura de Banda em GPU
                                 Referˆncias
                                       e


Medindo Tempo

  Podemos medir tempos de execu¸˜o em CUDA utilizando tanto
                                  ca
  m´todos tradicionais de CPU quanto GPU timers. Entretanto, h´
    e                                                         a
  alguns aspectos a serem levados em considera¸˜o:
                                              ca




                   Th´rsis T. P. Souza (USP)
                     a                         Considera¸˜es de Desempenho em CUDA
                                                        co
Revis˜o CUDA
                                   a
                   Avalia¸˜o de Desempenho
                         ca                    M´tricas de Desempenho
                                                 e
             Execu¸˜o Concorrente Ass´
                  ca                 ıncrona   Tempo em CUDA
                                  Conclus˜o
                                          a    Largura de Banda em GPU
                                 Referˆncias
                                       e


Medindo Tempo

  Podemos medir tempos de execu¸˜o em CUDA utilizando tanto
                                  ca
  m´todos tradicionais de CPU quanto GPU timers. Entretanto, h´
    e                                                         a
  alguns aspectos a serem levados em considera¸˜o:
                                              ca
      Chamadas a CUDA API podem ser ass´      ıncronas. Ex.:
      lan¸amento de kernels. Neste caso ´ necess´rio garantir a
         c                                e        a
      sincronia de threads ao utilizar temporizadores em CPU.




                   Th´rsis T. P. Souza (USP)
                     a                         Considera¸˜es de Desempenho em CUDA
                                                        co
Revis˜o CUDA
                                   a
                   Avalia¸˜o de Desempenho
                         ca                    M´tricas de Desempenho
                                                 e
             Execu¸˜o Concorrente Ass´
                  ca                 ıncrona   Tempo em CUDA
                                  Conclus˜o
                                          a    Largura de Banda em GPU
                                 Referˆncias
                                       e


Medindo Tempo

  Podemos medir tempos de execu¸˜o em CUDA utilizando tanto
                                  ca
  m´todos tradicionais de CPU quanto GPU timers. Entretanto, h´
    e                                                         a
  alguns aspectos a serem levados em considera¸˜o:
                                              ca
      Chamadas a CUDA API podem ser ass´      ıncronas. Ex.:
      lan¸amento de kernels. Neste caso ´ necess´rio garantir a
         c                                e        a
      sincronia de threads ao utilizar temporizadores em CPU.
      Deve-se tomar cuidado ao criar pontos de sincroniza¸˜o em
                                                         ca
      CPU. Isso pode causar stall em GPU.




                   Th´rsis T. P. Souza (USP)
                     a                         Considera¸˜es de Desempenho em CUDA
                                                        co
Revis˜o CUDA
                                   a
                   Avalia¸˜o de Desempenho
                         ca                    M´tricas de Desempenho
                                                 e
             Execu¸˜o Concorrente Ass´
                  ca                 ıncrona   Tempo em CUDA
                                  Conclus˜o
                                          a    Largura de Banda em GPU
                                 Referˆncias
                                       e


Medindo Tempo

  Podemos medir tempos de execu¸˜o em CUDA utilizando tanto
                                  ca
  m´todos tradicionais de CPU quanto GPU timers. Entretanto, h´
    e                                                         a
  alguns aspectos a serem levados em considera¸˜o:
                                              ca
      Chamadas a CUDA API podem ser ass´      ıncronas. Ex.:
      lan¸amento de kernels. Neste caso ´ necess´rio garantir a
         c                                e        a
      sincronia de threads ao utilizar temporizadores em CPU.
      Deve-se tomar cuidado ao criar pontos de sincroniza¸˜o em
                                                         ca
      CPU. Isso pode causar stall em GPU.
      Temporiza¸˜o em GPU ´ tipicamente realizada utilizando
               ca         e
      GPU Events.


                   Th´rsis T. P. Souza (USP)
                     a                         Considera¸˜es de Desempenho em CUDA
                                                        co
Revis˜o CUDA
                                   a
                   Avalia¸˜o de Desempenho
                         ca                    M´tricas de Desempenho
                                                 e
             Execu¸˜o Concorrente Ass´
                  ca                 ıncrona   Tempo em CUDA
                                  Conclus˜o
                                          a    Largura de Banda em GPU
                                 Referˆncias
                                       e


CPU Timer
  Ao utilizar temporizadores de CPU, para medir corretamente o
  tempo transcorrido em uma chamada ou sequˆncia de chamadas
                                              e
  em CUDA, ´ necess´rio sincronizar a thread da CPU com a GPU
               e       a
  chamando cudaThreadSynchronize() imediatamente antes e
  depois de iniciar o temporizador na CPU.




                   Th´rsis T. P. Souza (USP)
                     a                         Considera¸˜es de Desempenho em CUDA
                                                        co
Revis˜o CUDA
                                   a
                   Avalia¸˜o de Desempenho
                         ca                    M´tricas de Desempenho
                                                 e
             Execu¸˜o Concorrente Ass´
                  ca                 ıncrona   Tempo em CUDA
                                  Conclus˜o
                                          a    Largura de Banda em GPU
                                 Referˆncias
                                       e


CPU Timer
  Ao utilizar temporizadores de CPU, para medir corretamente o
  tempo transcorrido em uma chamada ou sequˆncia de chamadas
                                              e
  em CUDA, ´ necess´rio sincronizar a thread da CPU com a GPU
               e       a
  chamando cudaThreadSynchronize() imediatamente antes e
  depois de iniciar o temporizador na CPU.




                   Th´rsis T. P. Souza (USP)
                     a                         Considera¸˜es de Desempenho em CUDA
                                                        co
Revis˜o CUDA
                                  a
                  Avalia¸˜o de Desempenho
                        ca                    M´tricas de Desempenho
                                                e
            Execu¸˜o Concorrente Ass´
                 ca                 ıncrona   Tempo em CUDA
                                 Conclus˜o
                                         a    Largura de Banda em GPU
                                Referˆncias
                                      e


CUDA Events
  Exemplo utilizando CUDA Events:




                  Th´rsis T. P. Souza (USP)
                    a                         Considera¸˜es de Desempenho em CUDA
                                                       co
Revis˜o CUDA
                                     a
                     Avalia¸˜o de Desempenho
                           ca                    M´tricas de Desempenho
                                                   e
               Execu¸˜o Concorrente Ass´
                    ca                 ıncrona   Tempo em CUDA
                                    Conclus˜o
                                            a    Largura de Banda em GPU
                                   Referˆncias
                                         e


Agenda

  1   Revis˜o CUDA
           a
  2   Avalia¸˜o de Desempenho
            ca
        M´tricas de Desempenho
          e
        Tempo em CUDA
        Largura de Banda em GPU
  3   Execu¸˜o Concorrente Ass´
           ca                  ıncrona
        Transferˆncia de Dados Host-Device
                e
        Kernels Paralelos
  4   Conclus˜o
             a
  5   Referˆncias
           e

                     Th´rsis T. P. Souza (USP)
                       a                         Considera¸oes de Desempenho em CUDA
                                                          c˜
Revis˜o CUDA
                                  a
                  Avalia¸˜o de Desempenho
                        ca                    M´tricas de Desempenho
                                                e
            Execu¸˜o Concorrente Ass´
                 ca                 ıncrona   Tempo em CUDA
                                 Conclus˜o
                                         a    Largura de Banda em GPU
                                Referˆncias
                                      e


Considera¸oes de Throughput
         c˜




     Transferˆncia de dados entre host e device ´ custosa.
             e                                  e




                  Th´rsis T. P. Souza (USP)
                    a                         Considera¸˜es de Desempenho em CUDA
                                                       co
Revis˜o CUDA
                                  a
                  Avalia¸˜o de Desempenho
                        ca                    M´tricas de Desempenho
                                                e
            Execu¸˜o Concorrente Ass´
                 ca                 ıncrona   Tempo em CUDA
                                 Conclus˜o
                                         a    Largura de Banda em GPU
                                Referˆncias
                                      e


Considera¸oes de Throughput
         c˜




     Transferˆncia de dados entre host e device ´ custosa.
             e                                  e
     A complexidade das opera¸˜es deve justificar o custo da
                             co
     transferˆncia via PCIe.
             e




                  Th´rsis T. P. Souza (USP)
                    a                         Considera¸˜es de Desempenho em CUDA
                                                       co
Revis˜o CUDA
                                  a
                  Avalia¸˜o de Desempenho
                        ca                    M´tricas de Desempenho
                                                e
            Execu¸˜o Concorrente Ass´
                 ca                 ıncrona   Tempo em CUDA
                                 Conclus˜o
                                         a    Largura de Banda em GPU
                                Referˆncias
                                      e


Considera¸oes de Throughput
         c˜




     Transferˆncia de dados entre host e device ´ custosa.
             e                                  e
     A complexidade das opera¸˜es deve justificar o custo da
                             co
     transferˆncia via PCIe.
             e
     Dados devem ser mantidos em device o m´ximo poss´ para
                                           a         ıvel
     evitar retransmiss˜o.
                       a




                  Th´rsis T. P. Souza (USP)
                    a                         Considera¸˜es de Desempenho em CUDA
                                                       co
Revis˜o CUDA
                                   a
                   Avalia¸˜o de Desempenho
                         ca                    M´tricas de Desempenho
                                                 e
             Execu¸˜o Concorrente Ass´
                  ca                 ıncrona   Tempo em CUDA
                                  Conclus˜o
                                          a    Largura de Banda em GPU
                                 Referˆncias
                                       e


M´trica de Throughput
 e


  De modo geral, para aumento de desempenho, deseja-se maximar
  a rela¸˜o: n´mero de opera¸˜es de ponto flutuante em GPU por
        ca    u              co
  elemento de dado transferido via PCIe.




                   Th´rsis T. P. Souza (USP)
                     a                         Considera¸˜es de Desempenho em CUDA
                                                        co
Revis˜o CUDA
                                   a
                   Avalia¸˜o de Desempenho
                         ca                    M´tricas de Desempenho
                                                 e
             Execu¸˜o Concorrente Ass´
                  ca                 ıncrona   Tempo em CUDA
                                  Conclus˜o
                                          a    Largura de Banda em GPU
                                 Referˆncias
                                       e


M´trica de Throughput
 e


  De modo geral, para aumento de desempenho, deseja-se maximar
  a rela¸˜o: n´mero de opera¸˜es de ponto flutuante em GPU por
        ca    u              co
  elemento de dado transferido via PCIe.
  Ex.: Para soma de duas matrizes N × N, h´ 3N 2 transferˆncias de
                                          a              e
  dados e N 2 opera¸˜es.
                   co




                   Th´rsis T. P. Souza (USP)
                     a                         Considera¸˜es de Desempenho em CUDA
                                                        co
Revis˜o CUDA
                                   a
                   Avalia¸˜o de Desempenho
                         ca                    M´tricas de Desempenho
                                                 e
             Execu¸˜o Concorrente Ass´
                  ca                 ıncrona   Tempo em CUDA
                                  Conclus˜o
                                          a    Largura de Banda em GPU
                                 Referˆncias
                                       e


M´trica de Throughput
 e


  De modo geral, para aumento de desempenho, deseja-se maximar
  a rela¸˜o: n´mero de opera¸˜es de ponto flutuante em GPU por
        ca    u              co
  elemento de dado transferido via PCIe.
  Ex.: Para soma de duas matrizes N × N, h´ 3N 2 transferˆncias de
                                             a            e
  dados e N 2 opera¸˜es. Portanto, a rela¸˜o ´ de apenas 1:3 ou
                   co                    ca e
  O(1).




                   Th´rsis T. P. Souza (USP)
                     a                         Considera¸˜es de Desempenho em CUDA
                                                        co
Revis˜o CUDA
                                   a
                   Avalia¸˜o de Desempenho
                         ca                    M´tricas de Desempenho
                                                 e
             Execu¸˜o Concorrente Ass´
                  ca                 ıncrona   Tempo em CUDA
                                  Conclus˜o
                                          a    Largura de Banda em GPU
                                 Referˆncias
                                       e


M´trica de Throughput
 e


  De modo geral, para aumento de desempenho, deseja-se maximar
  a rela¸˜o: n´mero de opera¸˜es de ponto flutuante em GPU por
        ca    u              co
  elemento de dado transferido via PCIe.
  Ex.: Para soma de duas matrizes N × N, h´ 3N 2 transferˆncias de
                                             a             e
  dados e N 2 opera¸˜es. Portanto, a rela¸˜o ´ de apenas 1:3 ou
                   co                    ca e
  O(1). Para uma multiplica¸˜o das mesmas matrizes, ter´
                            ca                           ıamos uma
  rela¸˜o O(N).
      ca




                   Th´rsis T. P. Souza (USP)
                     a                         Considera¸˜es de Desempenho em CUDA
                                                        co
Revis˜o CUDA
                                   a
                   Avalia¸˜o de Desempenho
                         ca                    M´tricas de Desempenho
                                                 e
             Execu¸˜o Concorrente Ass´
                  ca                 ıncrona   Tempo em CUDA
                                  Conclus˜o
                                          a    Largura de Banda em GPU
                                 Referˆncias
                                       e


M´trica de Throughput
 e


  De modo geral, para aumento de desempenho, deseja-se maximar
  a rela¸˜o: n´mero de opera¸˜es de ponto flutuante em GPU por
        ca    u              co
  elemento de dado transferido via PCIe.
  Ex.: Para soma de duas matrizes N × N, h´ 3N 2 transferˆncias de
                                             a             e
  dados e N 2 opera¸˜es. Portanto, a rela¸˜o ´ de apenas 1:3 ou
                   co                    ca e
  O(1). Para uma multiplica¸˜o das mesmas matrizes, ter´
                            ca                           ıamos uma
  rela¸˜o O(N).
      ca
  Boa pr´tica
        a
  Minimizar transferˆncia de dados entre Host e Device.
                    e



                   Th´rsis T. P. Souza (USP)
                     a                         Considera¸˜es de Desempenho em CUDA
                                                        co
Revis˜o CUDA
                                     a
                     Avalia¸˜o de Desempenho
                           ca
                                                 Transferˆncia de Dados Host-Device
                                                         e
               Execu¸˜o Concorrente Ass´
                    ca                 ıncrona
                                                 Kernels Paralelos
                                    Conclus˜o
                                            a
                                   Referˆncias
                                         e


Agenda

  1   Revis˜o CUDA
           a
  2   Avalia¸˜o de Desempenho
            ca
        M´tricas de Desempenho
          e
        Tempo em CUDA
        Largura de Banda em GPU
  3   Execu¸˜o Concorrente Ass´
           ca                  ıncrona
        Transferˆncia de Dados Host-Device
                e
        Kernels Paralelos
  4   Conclus˜o
             a
  5   Referˆncias
           e

                     Th´rsis T. P. Souza (USP)
                       a                         Considera¸oes de Desempenho em CUDA
                                                          c˜
Revis˜o CUDA
                                    a
                    Avalia¸˜o de Desempenho
                          ca
                                                Transferˆncia de Dados Host-Device
                                                        e
              Execu¸˜o Concorrente Ass´
                   ca                 ıncrona
                                                Kernels Paralelos
                                   Conclus˜o
                                           a
                                  Referˆncias
                                        e


Execu¸˜o Concorrente Host-Device
     ca

  Para facilitar execu¸˜o concorrente entre host e device, algumas
                      ca
  chamadas de fun¸˜o s˜o ass´
                    ca a      ıncronas: controle ´ retornado para
                                                 e
  thread do host antes que o device complete as tarefas requisitadas.




                    Th´rsis T. P. Souza (USP)
                      a                         Considera¸˜es de Desempenho em CUDA
                                                         co
Revis˜o CUDA
                                    a
                    Avalia¸˜o de Desempenho
                          ca
                                                Transferˆncia de Dados Host-Device
                                                        e
              Execu¸˜o Concorrente Ass´
                   ca                 ıncrona
                                                Kernels Paralelos
                                   Conclus˜o
                                           a
                                  Referˆncias
                                        e


Execu¸˜o Concorrente Host-Device
     ca

  Para facilitar execu¸˜o concorrente entre host e device, algumas
                      ca
  chamadas de fun¸˜o s˜o ass´
                    ca a      ıncronas: controle ´ retornado para
                                                 e
  thread do host antes que o device complete as tarefas requisitadas.
  Dois tipos de execu¸˜o concorrente s˜o particurlamente
                      ca               a
  importantes de serem analisadas:




                    Th´rsis T. P. Souza (USP)
                      a                         Considera¸˜es de Desempenho em CUDA
                                                         co
Revis˜o CUDA
                                    a
                    Avalia¸˜o de Desempenho
                          ca
                                                Transferˆncia de Dados Host-Device
                                                        e
              Execu¸˜o Concorrente Ass´
                   ca                 ıncrona
                                                Kernels Paralelos
                                   Conclus˜o
                                           a
                                  Referˆncias
                                        e


Execu¸˜o Concorrente Host-Device
     ca

  Para facilitar execu¸˜o concorrente entre host e device, algumas
                      ca
  chamadas de fun¸˜o s˜o ass´
                    ca a      ıncronas: controle ´ retornado para
                                                 e
  thread do host antes que o device complete as tarefas requisitadas.
  Dois tipos de execu¸˜o concorrente s˜o particurlamente
                      ca               a
  importantes de serem analisadas:
      Overlap em transferˆncia de dados
                         e




                    Th´rsis T. P. Souza (USP)
                      a                         Considera¸˜es de Desempenho em CUDA
                                                         co
Revis˜o CUDA
                                    a
                    Avalia¸˜o de Desempenho
                          ca
                                                Transferˆncia de Dados Host-Device
                                                        e
              Execu¸˜o Concorrente Ass´
                   ca                 ıncrona
                                                Kernels Paralelos
                                   Conclus˜o
                                           a
                                  Referˆncias
                                        e


Execu¸˜o Concorrente Host-Device
     ca

  Para facilitar execu¸˜o concorrente entre host e device, algumas
                      ca
  chamadas de fun¸˜o s˜o ass´
                    ca a      ıncronas: controle ´ retornado para
                                                 e
  thread do host antes que o device complete as tarefas requisitadas.
  Dois tipos de execu¸˜o concorrente s˜o particurlamente
                      ca               a
  importantes de serem analisadas:
      Overlap em transferˆncia de dados
                         e
      Execu¸˜o de Kernels paralelos
           ca




                    Th´rsis T. P. Souza (USP)
                      a                         Considera¸˜es de Desempenho em CUDA
                                                         co
Revis˜o CUDA
                                    a
                    Avalia¸˜o de Desempenho
                          ca
                                                Transferˆncia de Dados Host-Device
                                                        e
              Execu¸˜o Concorrente Ass´
                   ca                 ıncrona
                                                Kernels Paralelos
                                   Conclus˜o
                                           a
                                  Referˆncias
                                        e


Execu¸˜o Concorrente Host-Device
     ca

  Para facilitar execu¸˜o concorrente entre host e device, algumas
                      ca
  chamadas de fun¸˜o s˜o ass´
                    ca a      ıncronas: controle ´ retornado para
                                                 e
  thread do host antes que o device complete as tarefas requisitadas.
  Dois tipos de execu¸˜o concorrente s˜o particurlamente
                      ca               a
  importantes de serem analisadas:
      Overlap em transferˆncia de dados
                         e
      Execu¸˜o de Kernels paralelos
           ca
  Para verificar se o device permite tais tipos de concorrˆncia,
                                                         e
  deve-se executar a chamada cudaGetDeviceProperties() e checar
  os atributos deviceOverlap e concurrentKernels.


                    Th´rsis T. P. Souza (USP)
                      a                         Considera¸˜es de Desempenho em CUDA
                                                         co
Revis˜o CUDA
                                     a
                     Avalia¸˜o de Desempenho
                           ca
                                                 Transferˆncia de Dados Host-Device
                                                         e
               Execu¸˜o Concorrente Ass´
                    ca                 ıncrona
                                                 Kernels Paralelos
                                    Conclus˜o
                                            a
                                   Referˆncias
                                         e


Agenda

  1   Revis˜o CUDA
           a
  2   Avalia¸˜o de Desempenho
            ca
        M´tricas de Desempenho
          e
        Tempo em CUDA
        Largura de Banda em GPU
  3   Execu¸˜o Concorrente Ass´
           ca                  ıncrona
        Transferˆncia de Dados Host-Device
                e
        Kernels Paralelos
  4   Conclus˜o
             a
  5   Referˆncias
           e

                     Th´rsis T. P. Souza (USP)
                       a                         Considera¸oes de Desempenho em CUDA
                                                          c˜
Revis˜o CUDA
                                   a
                   Avalia¸˜o de Desempenho
                         ca
                                               Transferˆncia de Dados Host-Device
                                                       e
             Execu¸˜o Concorrente Ass´
                  ca                 ıncrona
                                               Kernels Paralelos
                                  Conclus˜o
                                          a
                                 Referˆncias
                                       e


Transferˆncia de Dados Host-Device
        e



  O maior gargalo em processamento em GPU ´ a transferˆncia via
                                          e           e
  PCIe.




                   Th´rsis T. P. Souza (USP)
                     a                         Considera¸˜es de Desempenho em CUDA
                                                        co
Revis˜o CUDA
                                   a
                   Avalia¸˜o de Desempenho
                         ca
                                               Transferˆncia de Dados Host-Device
                                                       e
             Execu¸˜o Concorrente Ass´
                  ca                 ıncrona
                                               Kernels Paralelos
                                  Conclus˜o
                                          a
                                 Referˆncias
                                       e


Transferˆncia de Dados Host-Device
        e



  O maior gargalo em processamento em GPU ´ a transferˆncia via
                                          e           e
  PCIe.
  Ao alocar mem´ria em CPU que vai ser utilizado para transferir
               o
  dados para GPU, h´ dois tipos de mem´ria poss´
                   a                  o        ıveis:




                   Th´rsis T. P. Souza (USP)
                     a                         Considera¸˜es de Desempenho em CUDA
                                                        co
Revis˜o CUDA
                                   a
                   Avalia¸˜o de Desempenho
                         ca
                                               Transferˆncia de Dados Host-Device
                                                       e
             Execu¸˜o Concorrente Ass´
                  ca                 ıncrona
                                               Kernels Paralelos
                                  Conclus˜o
                                          a
                                 Referˆncias
                                       e


Transferˆncia de Dados Host-Device
        e



  O maior gargalo em processamento em GPU ´ a transferˆncia via
                                          e           e
  PCIe.
  Ao alocar mem´ria em CPU que vai ser utilizado para transferir
               o
  dados para GPU, h´ dois tipos de mem´ria poss´
                   a                  o        ıveis:
      pinned memory (page-locked memory )




                   Th´rsis T. P. Souza (USP)
                     a                         Considera¸˜es de Desempenho em CUDA
                                                        co
Revis˜o CUDA
                                   a
                   Avalia¸˜o de Desempenho
                         ca
                                               Transferˆncia de Dados Host-Device
                                                       e
             Execu¸˜o Concorrente Ass´
                  ca                 ıncrona
                                               Kernels Paralelos
                                  Conclus˜o
                                          a
                                 Referˆncias
                                       e


Transferˆncia de Dados Host-Device
        e



  O maior gargalo em processamento em GPU ´ a transferˆncia via
                                          e           e
  PCIe.
  Ao alocar mem´ria em CPU que vai ser utilizado para transferir
               o
  dados para GPU, h´ dois tipos de mem´ria poss´
                   a                  o        ıveis:
      pinned memory (page-locked memory )
      non-pinned memory (pageable memory )




                   Th´rsis T. P. Souza (USP)
                     a                         Considera¸˜es de Desempenho em CUDA
                                                        co
Revis˜o CUDA
                                a
                Avalia¸˜o de Desempenho
                      ca
                                            Transferˆncia de Dados Host-Device
                                                    e
          Execu¸˜o Concorrente Ass´
               ca                 ıncrona
                                            Kernels Paralelos
                               Conclus˜o
                                       a
                              Referˆncias
                                    e


non-Pinned Memory




              Figura: C´pia tradicional host-device via PCIe.
                       o




                Th´rsis T. P. Souza (USP)
                  a                         Considera¸˜es de Desempenho em CUDA
                                                     co
Revis˜o CUDA
                                 a
                 Avalia¸˜o de Desempenho
                       ca
                                             Transferˆncia de Dados Host-Device
                                                     e
           Execu¸˜o Concorrente Ass´
                ca                 ıncrona
                                             Kernels Paralelos
                                Conclus˜o
                                        a
                               Referˆncias
                                     e


non-Pinned Memory




               Figura: C´pia tradicional host-device via PCIe.
                        o



     malloc / free s˜o fun¸˜es que utilizam non-pinned memory
                    a     co




                 Th´rsis T. P. Souza (USP)
                   a                         Considera¸˜es de Desempenho em CUDA
                                                      co
Revis˜o CUDA
                                  a
                  Avalia¸˜o de Desempenho
                        ca
                                              Transferˆncia de Dados Host-Device
                                                      e
            Execu¸˜o Concorrente Ass´
                 ca                 ıncrona
                                              Kernels Paralelos
                                 Conclus˜o
                                         a
                                Referˆncias
                                      e


non-Pinned Memory




                Figura: C´pia tradicional host-device via PCIe.
                         o



     malloc / free s˜o fun¸˜es que utilizam non-pinned memory
                    a     co
     transferˆncia host-device ´ relativamente lenta
             e                 e




                  Th´rsis T. P. Souza (USP)
                    a                         Considera¸˜es de Desempenho em CUDA
                                                       co
Revis˜o CUDA
                                   a
                   Avalia¸˜o de Desempenho
                         ca
                                               Transferˆncia de Dados Host-Device
                                                       e
             Execu¸˜o Concorrente Ass´
                  ca                 ıncrona
                                               Kernels Paralelos
                                  Conclus˜o
                                          a
                                 Referˆncias
                                       e


Pinned Memory




     Figura: C´pia host-device utlizando via PCIe em buffer pinned-memory
              o




                   Th´rsis T. P. Souza (USP)
                     a                         Considera¸˜es de Desempenho em CUDA
                                                        co
Revis˜o CUDA
                                   a
                   Avalia¸˜o de Desempenho
                         ca
                                               Transferˆncia de Dados Host-Device
                                                       e
             Execu¸˜o Concorrente Ass´
                  ca                 ıncrona
                                               Kernels Paralelos
                                  Conclus˜o
                                          a
                                 Referˆncias
                                       e


Pinned Memory




     Figura: C´pia host-device utlizando via PCIe em buffer pinned-memory
              o



     Pinned Memory possibilita




                   Th´rsis T. P. Souza (USP)
                     a                         Considera¸˜es de Desempenho em CUDA
                                                        co
Revis˜o CUDA
                                   a
                   Avalia¸˜o de Desempenho
                         ca
                                               Transferˆncia de Dados Host-Device
                                                       e
             Execu¸˜o Concorrente Ass´
                  ca                 ıncrona
                                               Kernels Paralelos
                                  Conclus˜o
                                          a
                                 Referˆncias
                                       e


Pinned Memory




     Figura: C´pia host-device utlizando via PCIe em buffer pinned-memory
              o



     Pinned Memory possibilita
         c´pia via PCIe mais r´pidas ( 2x)
          o                   a




                   Th´rsis T. P. Souza (USP)
                     a                         Considera¸˜es de Desempenho em CUDA
                                                        co
Revis˜o CUDA
                                   a
                   Avalia¸˜o de Desempenho
                         ca
                                               Transferˆncia de Dados Host-Device
                                                       e
             Execu¸˜o Concorrente Ass´
                  ca                 ıncrona
                                               Kernels Paralelos
                                  Conclus˜o
                                          a
                                 Referˆncias
                                       e


Pinned Memory




     Figura: C´pia host-device utlizando via PCIe em buffer pinned-memory
              o



     Pinned Memory possibilita
         c´pia via PCIe mais r´pidas ( 2x)
          o                   a
         c´pias ass´
          o        ıncronas de mem´ria
                                   o




                   Th´rsis T. P. Souza (USP)
                     a                         Considera¸˜es de Desempenho em CUDA
                                                        co
Revis˜o CUDA
                                   a
                   Avalia¸˜o de Desempenho
                         ca
                                               Transferˆncia de Dados Host-Device
                                                       e
             Execu¸˜o Concorrente Ass´
                  ca                 ıncrona
                                               Kernels Paralelos
                                  Conclus˜o
                                          a
                                 Referˆncias
                                       e


Pinned Memory




     Figura: C´pia host-device utlizando via PCIe em buffer pinned-memory
              o



     Pinned Memory possibilita
         c´pia via PCIe mais r´pidas ( 2x)
          o                   a
         c´pias ass´
          o        ıncronas de mem´ria
                                   o
     Uso via RunTime API




                   Th´rsis T. P. Souza (USP)
                     a                         Considera¸˜es de Desempenho em CUDA
                                                        co
Revis˜o CUDA
                                   a
                   Avalia¸˜o de Desempenho
                         ca
                                               Transferˆncia de Dados Host-Device
                                                       e
             Execu¸˜o Concorrente Ass´
                  ca                 ıncrona
                                               Kernels Paralelos
                                  Conclus˜o
                                          a
                                 Referˆncias
                                       e


Pinned Memory




     Figura: C´pia host-device utlizando via PCIe em buffer pinned-memory
              o



     Pinned Memory possibilita
         c´pia via PCIe mais r´pidas ( 2x)
          o                   a
         c´pias ass´
          o        ıncronas de mem´ria
                                   o
     Uso via RunTime API
         cudaHostAlloc (ou cudaMallocHost) / cudaFreeHost



                   Th´rsis T. P. Souza (USP)
                     a                         Considera¸˜es de Desempenho em CUDA
                                                        co
Revis˜o CUDA
                                   a
                   Avalia¸˜o de Desempenho
                         ca
                                               Transferˆncia de Dados Host-Device
                                                       e
             Execu¸˜o Concorrente Ass´
                  ca                 ıncrona
                                               Kernels Paralelos
                                  Conclus˜o
                                          a
                                 Referˆncias
                                       e


Pinned Memory




     Figura: C´pia host-device utlizando via PCIe em buffer pinned-memory
              o



     Pinned Memory possibilita
         c´pia via PCIe mais r´pidas ( 2x)
          o                   a
         c´pias ass´
          o        ıncronas de mem´ria
                                   o
     Uso via RunTime API
         cudaHostAlloc (ou cudaMallocHost) / cudaFreeHost
         em vez de malloc / free


                   Th´rsis T. P. Souza (USP)
                     a                         Considera¸˜es de Desempenho em CUDA
                                                        co
Revis˜o CUDA
                                      a
                      Avalia¸˜o de Desempenho
                            ca
                                                  Transferˆncia de Dados Host-Device
                                                          e
                Execu¸˜o Concorrente Ass´
                     ca                 ıncrona
                                                  Kernels Paralelos
                                     Conclus˜o
                                             a
                                    Referˆncias
                                          e


Pinned Memory x Non-Pinned Memory




  Figura: Tempo de transferˆncia de mem´ria em fun¸˜o de MegaBytes transferidos
                           e           o          ca
  [2].

                      Th´rsis T. P. Souza (USP)
                        a                         Considera¸˜es de Desempenho em CUDA
                                                           co
Revis˜o CUDA
                                   a
                   Avalia¸˜o de Desempenho
                         ca
                                               Transferˆncia de Dados Host-Device
                                                       e
             Execu¸˜o Concorrente Ass´
                  ca                 ıncrona
                                               Kernels Paralelos
                                  Conclus˜o
                                          a
                                 Referˆncias
                                       e


Pinned Memory x Non-Pinned Memory


  Fal´cia: Pinned Memory = Maior Desempenho
      a
  Uso de Pinned Memory acelera c´pia via PCIe, logo sempre devo
                                    o
  utilizar esse tipo de mem´ria visando a um aumento de
                           o
  desempenho. Errado!




                   Th´rsis T. P. Souza (USP)
                     a                         Considera¸˜es de Desempenho em CUDA
                                                        co
Revis˜o CUDA
                                   a
                   Avalia¸˜o de Desempenho
                         ca
                                               Transferˆncia de Dados Host-Device
                                                       e
             Execu¸˜o Concorrente Ass´
                  ca                 ıncrona
                                               Kernels Paralelos
                                  Conclus˜o
                                          a
                                 Referˆncias
                                       e


Pinned Memory x Non-Pinned Memory


  Fal´cia: Pinned Memory = Maior Desempenho
      a
  Uso de Pinned Memory acelera c´pia via PCIe, logo sempre devo
                                    o
  utilizar esse tipo de mem´ria visando a um aumento de
                           o
  desempenho. Errado!

      Pinned Memory n˜o deve ser super utilizada
                     a




                   Th´rsis T. P. Souza (USP)
                     a                         Considera¸˜es de Desempenho em CUDA
                                                        co
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA

Contenu connexe

En vedette

Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 

En vedette (20)

Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 

Otimização de Desempenho em GPGPU e CUDA

  • 1. Revis˜o CUDA a Avalia¸˜o de Desempenho ca Execu¸˜o Concorrente Ass´ ca ıncrona Conclus˜o a Referˆncias e Considera¸oes de Desempenho em CUDA c˜ (Parte 1/3) Th´rsis T. P. Souza a t.souza@usp.br Instituto de Matem´tica e Estat´ a ıstica Universidade de S˜o Paulo a 29 de abril de 2011 Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 2. Revis˜o CUDA a Avalia¸˜o de Desempenho ca Execu¸˜o Concorrente Ass´ ca ıncrona Conclus˜o a Referˆncias e Configura¸˜o de Ambiente ca Enquanto n˜o for dito o contr´rio ou citada respectiva referˆncia, a a e neste trabalho, considera-se a seguinte configura¸˜o: ca Sistema Operacional Ubuntu Linux 10.04 CUDA Toolkit vers˜o 3.2 a Arquitetura NVIDIA Fermi Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 3. Revis˜o CUDA a Avalia¸˜o de Desempenho ca Execu¸˜o Concorrente Ass´ ca ıncrona Conclus˜o a Referˆncias e Agenda 1 Revis˜o CUDA a 2 Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Tempo em CUDA Largura de Banda em GPU 3 Execu¸˜o Concorrente Ass´ ca ıncrona Transferˆncia de Dados Host-Device e Kernels Paralelos 4 Conclus˜o a 5 Referˆncias e Th´rsis T. P. Souza (USP) a Considera¸oes de Desempenho em CUDA c˜
  • 4. Revis˜o CUDA a Avalia¸˜o de Desempenho ca Execu¸˜o Concorrente Ass´ ca ıncrona Conclus˜o a Referˆncias e Agenda 1 Revis˜o CUDA a 2 Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Tempo em CUDA Largura de Banda em GPU 3 Execu¸˜o Concorrente Ass´ ca ıncrona Transferˆncia de Dados Host-Device e Kernels Paralelos 4 Conclus˜o a 5 Referˆncias e Th´rsis T. P. Souza (USP) a Considera¸oes de Desempenho em CUDA c˜
  • 5. Revis˜o CUDA a Avalia¸˜o de Desempenho ca Execu¸˜o Concorrente Ass´ ca ıncrona Conclus˜o a Referˆncias e Arquitetura Fermi Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 6. Revis˜o CUDA a Avalia¸˜o de Desempenho ca Execu¸˜o Concorrente Ass´ ca ıncrona Conclus˜o a Referˆncias e Tipos de Mem´ria o Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 7. Revis˜o CUDA a Avalia¸˜o de Desempenho ca Execu¸˜o Concorrente Ass´ ca ıncrona Conclus˜o a Referˆncias e Hierarquia de Threads Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 8. Revis˜o CUDA a Avalia¸˜o de Desempenho ca Execu¸˜o Concorrente Ass´ ca ıncrona Conclus˜o a Referˆncias e CUDA C Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 9. Revis˜o CUDA a Avalia¸˜o de Desempenho ca Execu¸˜o Concorrente Ass´ ca ıncrona Conclus˜o a Referˆncias e Modelo Heterogˆneo de Computa¸˜o e ca Figura: Fluxo de execu¸˜o CUDA ca Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 10. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e Agenda 1 Revis˜o CUDA a 2 Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Tempo em CUDA Largura de Banda em GPU 3 Execu¸˜o Concorrente Ass´ ca ıncrona Transferˆncia de Dados Host-Device e Kernels Paralelos 4 Conclus˜o a 5 Referˆncias e Th´rsis T. P. Souza (USP) a Considera¸oes de Desempenho em CUDA c˜
  • 11. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e Desempenho Sequencial x Paralelo Tempo de execu¸˜o sequencial ´ fun¸˜o de ca e ca Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 12. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e Desempenho Sequencial x Paralelo Tempo de execu¸˜o sequencial ´ fun¸˜o de ca e ca tamanho da entrada Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 13. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e Desempenho Sequencial x Paralelo Tempo de execu¸˜o sequencial ´ fun¸˜o de ca e ca tamanho da entrada espa¸o (mem´ria) c o Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 14. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e Desempenho Sequencial x Paralelo Tempo de execu¸˜o sequencial ´ fun¸˜o de ca e ca tamanho da entrada espa¸o (mem´ria) c o Tempo de execu¸˜o paralela ´ fun¸˜o de ca e ca Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 15. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e Desempenho Sequencial x Paralelo Tempo de execu¸˜o sequencial ´ fun¸˜o de ca e ca tamanho da entrada espa¸o (mem´ria) c o Tempo de execu¸˜o paralela ´ fun¸˜o de ca e ca tamanho da entrada espa¸o (mem´ria) c o Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 16. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e Desempenho Sequencial x Paralelo Tempo de execu¸˜o sequencial ´ fun¸˜o de ca e ca tamanho da entrada espa¸o (mem´ria) c o Tempo de execu¸˜o paralela ´ fun¸˜o de ca e ca tamanho da entrada espa¸o (mem´ria) c o n´mero de processadores u Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 17. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e Desempenho Sequencial x Paralelo Tempo de execu¸˜o sequencial ´ fun¸˜o de ca e ca tamanho da entrada espa¸o (mem´ria) c o Tempo de execu¸˜o paralela ´ fun¸˜o de ca e ca tamanho da entrada espa¸o (mem´ria) c o n´mero de processadores u parˆmetros de comunica¸˜o da arquitetura alvo a ca Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 18. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e Desempenho Sequencial x Paralelo Tempo de execu¸˜o sequencial ´ fun¸˜o de ca e ca tamanho da entrada espa¸o (mem´ria) c o Tempo de execu¸˜o paralela ´ fun¸˜o de ca e ca tamanho da entrada espa¸o (mem´ria) c o n´mero de processadores u parˆmetros de comunica¸˜o da arquitetura alvo a ca Implica¸˜es co Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 19. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e Desempenho Sequencial x Paralelo Tempo de execu¸˜o sequencial ´ fun¸˜o de ca e ca tamanho da entrada espa¸o (mem´ria) c o Tempo de execu¸˜o paralela ´ fun¸˜o de ca e ca tamanho da entrada espa¸o (mem´ria) c o n´mero de processadores u parˆmetros de comunica¸˜o da arquitetura alvo a ca Implica¸˜es co necess´rio analisar algoritmos paralelos para uma arquitetura a alvo particular Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 20. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e Desempenho Sequencial x Paralelo Tempo de execu¸˜o sequencial ´ fun¸˜o de ca e ca tamanho da entrada espa¸o (mem´ria) c o Tempo de execu¸˜o paralela ´ fun¸˜o de ca e ca tamanho da entrada espa¸o (mem´ria) c o n´mero de processadores u parˆmetros de comunica¸˜o da arquitetura alvo a ca Implica¸˜es co necess´rio analisar algoritmos paralelos para uma arquitetura a alvo particular sistema paralelo = algoritmo paralelo + arquitetura Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 21. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e Agenda 1 Revis˜o CUDA a 2 Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Tempo em CUDA Largura de Banda em GPU 3 Execu¸˜o Concorrente Ass´ ca ıncrona Transferˆncia de Dados Host-Device e Kernels Paralelos 4 Conclus˜o a 5 Referˆncias e Th´rsis T. P. Souza (USP) a Considera¸oes de Desempenho em CUDA c˜
  • 22. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e M´tricas de Desempenho e M´tricas de Desempenho mais comuns : e Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 23. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e M´tricas de Desempenho e M´tricas de Desempenho mais comuns : e speedup Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 24. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e M´tricas de Desempenho e M´tricas de Desempenho mais comuns : e speedup efficiency Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 25. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e M´tricas de Desempenho e M´tricas de Desempenho mais comuns : e speedup efficiency scalability Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 26. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e M´tricas de Desempenho e M´tricas de Desempenho mais comuns : e speedup efficiency scalability sustained FLOPS rates Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 27. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e Speedup Raz˜o entre o tempo da solu¸˜o do algoritmo executado em um a ca unico processador e o tempo da solu¸˜o do mesmo algoritmo em ´ ca m´ltiplos processadores: u Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 28. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e Speedup Raz˜o entre o tempo da solu¸˜o do algoritmo executado em um a ca unico processador e o tempo da solu¸˜o do mesmo algoritmo em ´ ca m´ltiplos processadores: u Sp = T1 /Tp Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 29. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e Speedup Raz˜o entre o tempo da solu¸˜o do algoritmo executado em um a ca unico processador e o tempo da solu¸˜o do mesmo algoritmo em ´ ca m´ltiplos processadores: u Sp = T1 /Tp onde, p corresponde ao n´mero de processadores u Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 30. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e Speedup Raz˜o entre o tempo da solu¸˜o do algoritmo executado em um a ca unico processador e o tempo da solu¸˜o do mesmo algoritmo em ´ ca m´ltiplos processadores: u Sp = T1 /Tp onde, p corresponde ao n´mero de processadores u T1 ´ o tempo de execu¸˜o do algoritmo sequencial e ca Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 31. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e Speedup Raz˜o entre o tempo da solu¸˜o do algoritmo executado em um a ca unico processador e o tempo da solu¸˜o do mesmo algoritmo em ´ ca m´ltiplos processadores: u Sp = T1 /Tp onde, p corresponde ao n´mero de processadores u T1 ´ o tempo de execu¸˜o do algoritmo sequencial e ca Tp ´ o tempo do algoritmo paralelo em p processadores e Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 32. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e Speedup Sp = p, Linear speedup Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 33. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e Speedup Sp = p, Linear speedup Sp < p, Sub-linear speedup Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 34. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e Speedup Sp = p, Linear speedup Sp < p, Sub-linear speedup Sp > p, Super-linear speedup Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 35. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e Lei de Amdahl M´ximo speedup (S) esperado ao paralelizar uma certa por¸˜o de a ca um programa sequencial: 1 S= P (1 − P) + N onde, P ´ a fra¸˜o do tempo gasto pelo programa serial da parte e ca do c´digo que pode ser paralelizado e N ´ o n´mero de o e u processadores sobre o qual o c´digo paraleliz´vel roda. o a Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 36. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e Lei de Amdahl Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 37. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e Lei de Amdahl Boa pr´tica a Para maximizar desempenho, antes de mais nada, busque formas de paralelizar o c´digo sequencial. o Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 38. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e Efficiency Raz˜o entre o speedup e o n´mero de processadores: a u Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 39. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e Efficiency Raz˜o entre o speedup e o n´mero de processadores: a u T1 Ep = Sp /p = pTp Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 40. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e Efficiency Raz˜o entre o speedup e o n´mero de processadores: a u T1 Ep = Sp /p = pTp Estima qu˜o bem os processadores est˜o sendo utilizados, tendo a a em vista o tempo gasto em overhead como: sincroniza¸˜o e troca ca de mensagens. Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 41. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e Scalability Capacidade do algoritmo de resolver um problema n vezes maior em n vezes mais processadores [Gray, 1992]: Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 42. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e Scalability Capacidade do algoritmo de resolver um problema n vezes maior em n vezes mais processadores [Gray, 1992]: Tempo para resolver um problema de tamanho m em p processadores Scaleup(p, n) = Tempo para resolver um problema de tamanho nm em np processadores Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 43. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e Sustained FLOPS rates FLOPS: Floating-point Operations per Second Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 44. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e Sustained FLOPS rates FLOPS: Floating-point Operations per Second A taxa sustentada de FLOPS mede qu˜o bem uma a implementa¸˜o espec´ ca ıfica explora a arquitetura alvo Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 45. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e FLOPS Fal´cia: FLOPS ´ uma boa m´trica de desempenho a e e Essa m´trica n˜o indica necessariamente que um algoritmo ´ e a e eficiente Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 46. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e FLOPS Fal´cia: FLOPS ´ uma boa m´trica de desempenho a e e Essa m´trica n˜o indica necessariamente que um algoritmo ´ e a e eficiente Um algoritmo alternativo com menor FLOPS pode resolver um problema mais rapidamente Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 47. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e Conclus˜o M´tricas de Desempenho a e Cuidado ao estender erradamente m´tricas que valem para um e contexto espec´ ıficos. Ex.: microbenchmarks, FLOPS de pico Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 48. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e Conclus˜o M´tricas de Desempenho a e Cuidado ao estender erradamente m´tricas que valem para um e contexto espec´ ıficos. Ex.: microbenchmarks, FLOPS de pico Tempo de execu¸˜o ´ a unica medida v´lida para desempenho ca e ´ a [Hennessy, 2004] Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 49. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e Conclus˜o M´tricas de Desempenho a e Cuidado ao estender erradamente m´tricas que valem para um e contexto espec´ ıficos. Ex.: microbenchmarks, FLOPS de pico Tempo de execu¸˜o ´ a unica medida v´lida para desempenho ca e ´ a [Hennessy, 2004] Qualquer m´trica deve estar vinculada ao tempo de execu¸˜o e ca Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 50. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e Conclus˜o M´tricas de Desempenho a e Cuidado ao estender erradamente m´tricas que valem para um e contexto espec´ ıficos. Ex.: microbenchmarks, FLOPS de pico Tempo de execu¸˜o ´ a unica medida v´lida para desempenho ca e ´ a [Hennessy, 2004] Qualquer m´trica deve estar vinculada ao tempo de execu¸˜o e ca Boa pr´tica a Utilize o tempo de execu¸˜o como medida de desempenho. ca Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 51. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e Agenda 1 Revis˜o CUDA a 2 Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Tempo em CUDA Largura de Banda em GPU 3 Execu¸˜o Concorrente Ass´ ca ıncrona Transferˆncia de Dados Host-Device e Kernels Paralelos 4 Conclus˜o a 5 Referˆncias e Th´rsis T. P. Souza (USP) a Considera¸oes de Desempenho em CUDA c˜
  • 52. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e Medindo Tempo Podemos medir tempos de execu¸˜o em CUDA utilizando tanto ca m´todos tradicionais de CPU quanto GPU timers. Entretanto, h´ e a alguns aspectos a serem levados em considera¸˜o: ca Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 53. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e Medindo Tempo Podemos medir tempos de execu¸˜o em CUDA utilizando tanto ca m´todos tradicionais de CPU quanto GPU timers. Entretanto, h´ e a alguns aspectos a serem levados em considera¸˜o: ca Chamadas a CUDA API podem ser ass´ ıncronas. Ex.: lan¸amento de kernels. Neste caso ´ necess´rio garantir a c e a sincronia de threads ao utilizar temporizadores em CPU. Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 54. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e Medindo Tempo Podemos medir tempos de execu¸˜o em CUDA utilizando tanto ca m´todos tradicionais de CPU quanto GPU timers. Entretanto, h´ e a alguns aspectos a serem levados em considera¸˜o: ca Chamadas a CUDA API podem ser ass´ ıncronas. Ex.: lan¸amento de kernels. Neste caso ´ necess´rio garantir a c e a sincronia de threads ao utilizar temporizadores em CPU. Deve-se tomar cuidado ao criar pontos de sincroniza¸˜o em ca CPU. Isso pode causar stall em GPU. Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 55. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e Medindo Tempo Podemos medir tempos de execu¸˜o em CUDA utilizando tanto ca m´todos tradicionais de CPU quanto GPU timers. Entretanto, h´ e a alguns aspectos a serem levados em considera¸˜o: ca Chamadas a CUDA API podem ser ass´ ıncronas. Ex.: lan¸amento de kernels. Neste caso ´ necess´rio garantir a c e a sincronia de threads ao utilizar temporizadores em CPU. Deve-se tomar cuidado ao criar pontos de sincroniza¸˜o em ca CPU. Isso pode causar stall em GPU. Temporiza¸˜o em GPU ´ tipicamente realizada utilizando ca e GPU Events. Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 56. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e CPU Timer Ao utilizar temporizadores de CPU, para medir corretamente o tempo transcorrido em uma chamada ou sequˆncia de chamadas e em CUDA, ´ necess´rio sincronizar a thread da CPU com a GPU e a chamando cudaThreadSynchronize() imediatamente antes e depois de iniciar o temporizador na CPU. Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 57. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e CPU Timer Ao utilizar temporizadores de CPU, para medir corretamente o tempo transcorrido em uma chamada ou sequˆncia de chamadas e em CUDA, ´ necess´rio sincronizar a thread da CPU com a GPU e a chamando cudaThreadSynchronize() imediatamente antes e depois de iniciar o temporizador na CPU. Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 58. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e CUDA Events Exemplo utilizando CUDA Events: Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 59. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e Agenda 1 Revis˜o CUDA a 2 Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Tempo em CUDA Largura de Banda em GPU 3 Execu¸˜o Concorrente Ass´ ca ıncrona Transferˆncia de Dados Host-Device e Kernels Paralelos 4 Conclus˜o a 5 Referˆncias e Th´rsis T. P. Souza (USP) a Considera¸oes de Desempenho em CUDA c˜
  • 60. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e Considera¸oes de Throughput c˜ Transferˆncia de dados entre host e device ´ custosa. e e Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 61. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e Considera¸oes de Throughput c˜ Transferˆncia de dados entre host e device ´ custosa. e e A complexidade das opera¸˜es deve justificar o custo da co transferˆncia via PCIe. e Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 62. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e Considera¸oes de Throughput c˜ Transferˆncia de dados entre host e device ´ custosa. e e A complexidade das opera¸˜es deve justificar o custo da co transferˆncia via PCIe. e Dados devem ser mantidos em device o m´ximo poss´ para a ıvel evitar retransmiss˜o. a Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 63. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e M´trica de Throughput e De modo geral, para aumento de desempenho, deseja-se maximar a rela¸˜o: n´mero de opera¸˜es de ponto flutuante em GPU por ca u co elemento de dado transferido via PCIe. Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 64. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e M´trica de Throughput e De modo geral, para aumento de desempenho, deseja-se maximar a rela¸˜o: n´mero de opera¸˜es de ponto flutuante em GPU por ca u co elemento de dado transferido via PCIe. Ex.: Para soma de duas matrizes N × N, h´ 3N 2 transferˆncias de a e dados e N 2 opera¸˜es. co Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 65. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e M´trica de Throughput e De modo geral, para aumento de desempenho, deseja-se maximar a rela¸˜o: n´mero de opera¸˜es de ponto flutuante em GPU por ca u co elemento de dado transferido via PCIe. Ex.: Para soma de duas matrizes N × N, h´ 3N 2 transferˆncias de a e dados e N 2 opera¸˜es. Portanto, a rela¸˜o ´ de apenas 1:3 ou co ca e O(1). Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 66. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e M´trica de Throughput e De modo geral, para aumento de desempenho, deseja-se maximar a rela¸˜o: n´mero de opera¸˜es de ponto flutuante em GPU por ca u co elemento de dado transferido via PCIe. Ex.: Para soma de duas matrizes N × N, h´ 3N 2 transferˆncias de a e dados e N 2 opera¸˜es. Portanto, a rela¸˜o ´ de apenas 1:3 ou co ca e O(1). Para uma multiplica¸˜o das mesmas matrizes, ter´ ca ıamos uma rela¸˜o O(N). ca Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 67. Revis˜o CUDA a Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Execu¸˜o Concorrente Ass´ ca ıncrona Tempo em CUDA Conclus˜o a Largura de Banda em GPU Referˆncias e M´trica de Throughput e De modo geral, para aumento de desempenho, deseja-se maximar a rela¸˜o: n´mero de opera¸˜es de ponto flutuante em GPU por ca u co elemento de dado transferido via PCIe. Ex.: Para soma de duas matrizes N × N, h´ 3N 2 transferˆncias de a e dados e N 2 opera¸˜es. Portanto, a rela¸˜o ´ de apenas 1:3 ou co ca e O(1). Para uma multiplica¸˜o das mesmas matrizes, ter´ ca ıamos uma rela¸˜o O(N). ca Boa pr´tica a Minimizar transferˆncia de dados entre Host e Device. e Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 68. Revis˜o CUDA a Avalia¸˜o de Desempenho ca Transferˆncia de Dados Host-Device e Execu¸˜o Concorrente Ass´ ca ıncrona Kernels Paralelos Conclus˜o a Referˆncias e Agenda 1 Revis˜o CUDA a 2 Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Tempo em CUDA Largura de Banda em GPU 3 Execu¸˜o Concorrente Ass´ ca ıncrona Transferˆncia de Dados Host-Device e Kernels Paralelos 4 Conclus˜o a 5 Referˆncias e Th´rsis T. P. Souza (USP) a Considera¸oes de Desempenho em CUDA c˜
  • 69. Revis˜o CUDA a Avalia¸˜o de Desempenho ca Transferˆncia de Dados Host-Device e Execu¸˜o Concorrente Ass´ ca ıncrona Kernels Paralelos Conclus˜o a Referˆncias e Execu¸˜o Concorrente Host-Device ca Para facilitar execu¸˜o concorrente entre host e device, algumas ca chamadas de fun¸˜o s˜o ass´ ca a ıncronas: controle ´ retornado para e thread do host antes que o device complete as tarefas requisitadas. Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 70. Revis˜o CUDA a Avalia¸˜o de Desempenho ca Transferˆncia de Dados Host-Device e Execu¸˜o Concorrente Ass´ ca ıncrona Kernels Paralelos Conclus˜o a Referˆncias e Execu¸˜o Concorrente Host-Device ca Para facilitar execu¸˜o concorrente entre host e device, algumas ca chamadas de fun¸˜o s˜o ass´ ca a ıncronas: controle ´ retornado para e thread do host antes que o device complete as tarefas requisitadas. Dois tipos de execu¸˜o concorrente s˜o particurlamente ca a importantes de serem analisadas: Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 71. Revis˜o CUDA a Avalia¸˜o de Desempenho ca Transferˆncia de Dados Host-Device e Execu¸˜o Concorrente Ass´ ca ıncrona Kernels Paralelos Conclus˜o a Referˆncias e Execu¸˜o Concorrente Host-Device ca Para facilitar execu¸˜o concorrente entre host e device, algumas ca chamadas de fun¸˜o s˜o ass´ ca a ıncronas: controle ´ retornado para e thread do host antes que o device complete as tarefas requisitadas. Dois tipos de execu¸˜o concorrente s˜o particurlamente ca a importantes de serem analisadas: Overlap em transferˆncia de dados e Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 72. Revis˜o CUDA a Avalia¸˜o de Desempenho ca Transferˆncia de Dados Host-Device e Execu¸˜o Concorrente Ass´ ca ıncrona Kernels Paralelos Conclus˜o a Referˆncias e Execu¸˜o Concorrente Host-Device ca Para facilitar execu¸˜o concorrente entre host e device, algumas ca chamadas de fun¸˜o s˜o ass´ ca a ıncronas: controle ´ retornado para e thread do host antes que o device complete as tarefas requisitadas. Dois tipos de execu¸˜o concorrente s˜o particurlamente ca a importantes de serem analisadas: Overlap em transferˆncia de dados e Execu¸˜o de Kernels paralelos ca Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 73. Revis˜o CUDA a Avalia¸˜o de Desempenho ca Transferˆncia de Dados Host-Device e Execu¸˜o Concorrente Ass´ ca ıncrona Kernels Paralelos Conclus˜o a Referˆncias e Execu¸˜o Concorrente Host-Device ca Para facilitar execu¸˜o concorrente entre host e device, algumas ca chamadas de fun¸˜o s˜o ass´ ca a ıncronas: controle ´ retornado para e thread do host antes que o device complete as tarefas requisitadas. Dois tipos de execu¸˜o concorrente s˜o particurlamente ca a importantes de serem analisadas: Overlap em transferˆncia de dados e Execu¸˜o de Kernels paralelos ca Para verificar se o device permite tais tipos de concorrˆncia, e deve-se executar a chamada cudaGetDeviceProperties() e checar os atributos deviceOverlap e concurrentKernels. Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 74. Revis˜o CUDA a Avalia¸˜o de Desempenho ca Transferˆncia de Dados Host-Device e Execu¸˜o Concorrente Ass´ ca ıncrona Kernels Paralelos Conclus˜o a Referˆncias e Agenda 1 Revis˜o CUDA a 2 Avalia¸˜o de Desempenho ca M´tricas de Desempenho e Tempo em CUDA Largura de Banda em GPU 3 Execu¸˜o Concorrente Ass´ ca ıncrona Transferˆncia de Dados Host-Device e Kernels Paralelos 4 Conclus˜o a 5 Referˆncias e Th´rsis T. P. Souza (USP) a Considera¸oes de Desempenho em CUDA c˜
  • 75. Revis˜o CUDA a Avalia¸˜o de Desempenho ca Transferˆncia de Dados Host-Device e Execu¸˜o Concorrente Ass´ ca ıncrona Kernels Paralelos Conclus˜o a Referˆncias e Transferˆncia de Dados Host-Device e O maior gargalo em processamento em GPU ´ a transferˆncia via e e PCIe. Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 76. Revis˜o CUDA a Avalia¸˜o de Desempenho ca Transferˆncia de Dados Host-Device e Execu¸˜o Concorrente Ass´ ca ıncrona Kernels Paralelos Conclus˜o a Referˆncias e Transferˆncia de Dados Host-Device e O maior gargalo em processamento em GPU ´ a transferˆncia via e e PCIe. Ao alocar mem´ria em CPU que vai ser utilizado para transferir o dados para GPU, h´ dois tipos de mem´ria poss´ a o ıveis: Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 77. Revis˜o CUDA a Avalia¸˜o de Desempenho ca Transferˆncia de Dados Host-Device e Execu¸˜o Concorrente Ass´ ca ıncrona Kernels Paralelos Conclus˜o a Referˆncias e Transferˆncia de Dados Host-Device e O maior gargalo em processamento em GPU ´ a transferˆncia via e e PCIe. Ao alocar mem´ria em CPU que vai ser utilizado para transferir o dados para GPU, h´ dois tipos de mem´ria poss´ a o ıveis: pinned memory (page-locked memory ) Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 78. Revis˜o CUDA a Avalia¸˜o de Desempenho ca Transferˆncia de Dados Host-Device e Execu¸˜o Concorrente Ass´ ca ıncrona Kernels Paralelos Conclus˜o a Referˆncias e Transferˆncia de Dados Host-Device e O maior gargalo em processamento em GPU ´ a transferˆncia via e e PCIe. Ao alocar mem´ria em CPU que vai ser utilizado para transferir o dados para GPU, h´ dois tipos de mem´ria poss´ a o ıveis: pinned memory (page-locked memory ) non-pinned memory (pageable memory ) Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 79. Revis˜o CUDA a Avalia¸˜o de Desempenho ca Transferˆncia de Dados Host-Device e Execu¸˜o Concorrente Ass´ ca ıncrona Kernels Paralelos Conclus˜o a Referˆncias e non-Pinned Memory Figura: C´pia tradicional host-device via PCIe. o Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 80. Revis˜o CUDA a Avalia¸˜o de Desempenho ca Transferˆncia de Dados Host-Device e Execu¸˜o Concorrente Ass´ ca ıncrona Kernels Paralelos Conclus˜o a Referˆncias e non-Pinned Memory Figura: C´pia tradicional host-device via PCIe. o malloc / free s˜o fun¸˜es que utilizam non-pinned memory a co Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 81. Revis˜o CUDA a Avalia¸˜o de Desempenho ca Transferˆncia de Dados Host-Device e Execu¸˜o Concorrente Ass´ ca ıncrona Kernels Paralelos Conclus˜o a Referˆncias e non-Pinned Memory Figura: C´pia tradicional host-device via PCIe. o malloc / free s˜o fun¸˜es que utilizam non-pinned memory a co transferˆncia host-device ´ relativamente lenta e e Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 82. Revis˜o CUDA a Avalia¸˜o de Desempenho ca Transferˆncia de Dados Host-Device e Execu¸˜o Concorrente Ass´ ca ıncrona Kernels Paralelos Conclus˜o a Referˆncias e Pinned Memory Figura: C´pia host-device utlizando via PCIe em buffer pinned-memory o Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 83. Revis˜o CUDA a Avalia¸˜o de Desempenho ca Transferˆncia de Dados Host-Device e Execu¸˜o Concorrente Ass´ ca ıncrona Kernels Paralelos Conclus˜o a Referˆncias e Pinned Memory Figura: C´pia host-device utlizando via PCIe em buffer pinned-memory o Pinned Memory possibilita Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 84. Revis˜o CUDA a Avalia¸˜o de Desempenho ca Transferˆncia de Dados Host-Device e Execu¸˜o Concorrente Ass´ ca ıncrona Kernels Paralelos Conclus˜o a Referˆncias e Pinned Memory Figura: C´pia host-device utlizando via PCIe em buffer pinned-memory o Pinned Memory possibilita c´pia via PCIe mais r´pidas ( 2x) o a Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 85. Revis˜o CUDA a Avalia¸˜o de Desempenho ca Transferˆncia de Dados Host-Device e Execu¸˜o Concorrente Ass´ ca ıncrona Kernels Paralelos Conclus˜o a Referˆncias e Pinned Memory Figura: C´pia host-device utlizando via PCIe em buffer pinned-memory o Pinned Memory possibilita c´pia via PCIe mais r´pidas ( 2x) o a c´pias ass´ o ıncronas de mem´ria o Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 86. Revis˜o CUDA a Avalia¸˜o de Desempenho ca Transferˆncia de Dados Host-Device e Execu¸˜o Concorrente Ass´ ca ıncrona Kernels Paralelos Conclus˜o a Referˆncias e Pinned Memory Figura: C´pia host-device utlizando via PCIe em buffer pinned-memory o Pinned Memory possibilita c´pia via PCIe mais r´pidas ( 2x) o a c´pias ass´ o ıncronas de mem´ria o Uso via RunTime API Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 87. Revis˜o CUDA a Avalia¸˜o de Desempenho ca Transferˆncia de Dados Host-Device e Execu¸˜o Concorrente Ass´ ca ıncrona Kernels Paralelos Conclus˜o a Referˆncias e Pinned Memory Figura: C´pia host-device utlizando via PCIe em buffer pinned-memory o Pinned Memory possibilita c´pia via PCIe mais r´pidas ( 2x) o a c´pias ass´ o ıncronas de mem´ria o Uso via RunTime API cudaHostAlloc (ou cudaMallocHost) / cudaFreeHost Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 88. Revis˜o CUDA a Avalia¸˜o de Desempenho ca Transferˆncia de Dados Host-Device e Execu¸˜o Concorrente Ass´ ca ıncrona Kernels Paralelos Conclus˜o a Referˆncias e Pinned Memory Figura: C´pia host-device utlizando via PCIe em buffer pinned-memory o Pinned Memory possibilita c´pia via PCIe mais r´pidas ( 2x) o a c´pias ass´ o ıncronas de mem´ria o Uso via RunTime API cudaHostAlloc (ou cudaMallocHost) / cudaFreeHost em vez de malloc / free Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 89. Revis˜o CUDA a Avalia¸˜o de Desempenho ca Transferˆncia de Dados Host-Device e Execu¸˜o Concorrente Ass´ ca ıncrona Kernels Paralelos Conclus˜o a Referˆncias e Pinned Memory x Non-Pinned Memory Figura: Tempo de transferˆncia de mem´ria em fun¸˜o de MegaBytes transferidos e o ca [2]. Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 90. Revis˜o CUDA a Avalia¸˜o de Desempenho ca Transferˆncia de Dados Host-Device e Execu¸˜o Concorrente Ass´ ca ıncrona Kernels Paralelos Conclus˜o a Referˆncias e Pinned Memory x Non-Pinned Memory Fal´cia: Pinned Memory = Maior Desempenho a Uso de Pinned Memory acelera c´pia via PCIe, logo sempre devo o utilizar esse tipo de mem´ria visando a um aumento de o desempenho. Errado! Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  • 91. Revis˜o CUDA a Avalia¸˜o de Desempenho ca Transferˆncia de Dados Host-Device e Execu¸˜o Concorrente Ass´ ca ıncrona Kernels Paralelos Conclus˜o a Referˆncias e Pinned Memory x Non-Pinned Memory Fal´cia: Pinned Memory = Maior Desempenho a Uso de Pinned Memory acelera c´pia via PCIe, logo sempre devo o utilizar esse tipo de mem´ria visando a um aumento de o desempenho. Errado! Pinned Memory n˜o deve ser super utilizada a Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co