Revis˜o CUDA                         a         Avalia¸˜o de Desempenho               ca   Execu¸˜o Concorrente Ass´       ...
Revis˜o CUDA                                    a                    Avalia¸˜o de Desempenho                          ca  ...
Revis˜o CUDA                                     a                     Avalia¸˜o de Desempenho                           c...
Revis˜o CUDA                                     a                     Avalia¸˜o de Desempenho                           c...
Revis˜o CUDA                                 a                 Avalia¸˜o de Desempenho                       ca           ...
Revis˜o CUDA                                a                Avalia¸˜o de Desempenho                      ca          Exec...
Revis˜o CUDA                                 a                 Avalia¸˜o de Desempenho                       ca           ...
Revis˜o CUDA                               a               Avalia¸˜o de Desempenho                     ca         Execu¸˜o...
Revis˜o CUDA                                a                Avalia¸˜o de Desempenho                      ca          Exec...
Revis˜o CUDA                                     a                     Avalia¸˜o de Desempenho                           c...
Revis˜o CUDA                                   a                   Avalia¸˜o de Desempenho                         ca     ...
Revis˜o CUDA                                   a                   Avalia¸˜o de Desempenho                         ca     ...
Revis˜o CUDA                                   a                   Avalia¸˜o de Desempenho                         ca     ...
Revis˜o CUDA                                   a                   Avalia¸˜o de Desempenho                         ca     ...
Revis˜o CUDA                                   a                   Avalia¸˜o de Desempenho                         ca     ...
Revis˜o CUDA                                   a                   Avalia¸˜o de Desempenho                         ca     ...
Revis˜o CUDA                                   a                   Avalia¸˜o de Desempenho                         ca     ...
Revis˜o CUDA                                      a                      Avalia¸˜o de Desempenho                          ...
Revis˜o CUDA                                      a                      Avalia¸˜o de Desempenho                          ...
Revis˜o CUDA                                      a                      Avalia¸˜o de Desempenho                          ...
Revis˜o CUDA                                     a                     Avalia¸˜o de Desempenho                           c...
Revis˜o CUDA                                  a                  Avalia¸˜o de Desempenho                        ca        ...
Revis˜o CUDA                                  a                  Avalia¸˜o de Desempenho                        ca        ...
Revis˜o CUDA                                  a                  Avalia¸˜o de Desempenho                        ca        ...
Revis˜o CUDA                                    a                    Avalia¸˜o de Desempenho                          ca  ...
Revis˜o CUDA                                    a                    Avalia¸˜o de Desempenho                          ca  ...
Revis˜o CUDA                                   a                   Avalia¸˜o de Desempenho                         ca     ...
Revis˜o CUDA                                   a                   Avalia¸˜o de Desempenho                         ca     ...
Revis˜o CUDA                                   a                   Avalia¸˜o de Desempenho                         ca     ...
Revis˜o CUDA                                   a                   Avalia¸˜o de Desempenho                         ca     ...
Revis˜o CUDA                                   a                   Avalia¸˜o de Desempenho                         ca     ...
Revis˜o CUDA                                 a                 Avalia¸˜o de Desempenho                       ca           ...
Revis˜o CUDA                                  a                  Avalia¸˜o de Desempenho                        ca        ...
Revis˜o CUDA                                  a                  Avalia¸˜o de Desempenho                        ca        ...
Revis˜o CUDA                                   a                   Avalia¸˜o de Desempenho                         ca     ...
Revis˜o CUDA                                a                Avalia¸˜o de Desempenho                      ca              ...
Revis˜o CUDA                                   a                   Avalia¸˜o de Desempenho                         ca     ...
Revis˜o CUDA                                   a                   Avalia¸˜o de Desempenho                         ca     ...
Revis˜o CUDA                                   a                   Avalia¸˜o de Desempenho                         ca     ...
Revis˜o CUDA                                   a                   Avalia¸˜o de Desempenho                         ca     ...
Revis˜o CUDA                                    a                    Avalia¸˜o de Desempenho                          ca  ...
Revis˜o CUDA                                      a                      Avalia¸˜o de Desempenho                          ...
Revis˜o CUDA                                 a                 Avalia¸˜o de Desempenho                       ca           ...
Revis˜o CUDA                                  a                  Avalia¸˜o de Desempenho                        ca        ...
Revis˜o CUDA                                  a                  Avalia¸˜o de Desempenho                        ca        ...
Revis˜o CUDA                                  a                  Avalia¸˜o de Desempenho                        ca        ...
Revis˜o CUDA                                 a                 Avalia¸˜o de Desempenho                       ca           ...
Revis˜o CUDA                                 a                 Avalia¸˜o de Desempenho                       ca           ...
Revis˜o CUDA                                 a                 Avalia¸˜o de Desempenho                       ca           ...
Revis˜o CUDA                                   a                   Avalia¸˜o de Desempenho                         ca     ...
Revis˜o CUDA                                     a                     Avalia¸˜o de Desempenho                           c...
Revis˜o CUDA                                   a                   Avalia¸˜o de Desempenho                         ca     ...
Revis˜o CUDA                                   a                   Avalia¸˜o de Desempenho                         ca     ...
Revis˜o CUDA                                   a                   Avalia¸˜o de Desempenho                         ca     ...
Revis˜o CUDA                                   a                   Avalia¸˜o de Desempenho                         ca     ...
Revis˜o CUDA                                   a                   Avalia¸˜o de Desempenho                         ca     ...
Revis˜o CUDA                                   a                   Avalia¸˜o de Desempenho                         ca     ...
Revis˜o CUDA                                  a                  Avalia¸˜o de Desempenho                        ca        ...
Revis˜o CUDA                                     a                     Avalia¸˜o de Desempenho                           c...
Revis˜o CUDA                                  a                  Avalia¸˜o de Desempenho                        ca        ...
Revis˜o CUDA                                  a                  Avalia¸˜o de Desempenho                        ca        ...
Revis˜o CUDA                                  a                  Avalia¸˜o de Desempenho                        ca        ...
Revis˜o CUDA                                   a                   Avalia¸˜o de Desempenho                         ca     ...
Revis˜o CUDA                                   a                   Avalia¸˜o de Desempenho                         ca     ...
Revis˜o CUDA                                   a                   Avalia¸˜o de Desempenho                         ca     ...
Revis˜o CUDA                                   a                   Avalia¸˜o de Desempenho                         ca     ...
Revis˜o CUDA                                   a                   Avalia¸˜o de Desempenho                         ca     ...
Revis˜o CUDA                                     a                     Avalia¸˜o de Desempenho                           c...
Revis˜o CUDA                                    a                    Avalia¸˜o de Desempenho                          ca  ...
Revis˜o CUDA                                    a                    Avalia¸˜o de Desempenho                          ca  ...
Revis˜o CUDA                                    a                    Avalia¸˜o de Desempenho                          ca  ...
Revis˜o CUDA                                    a                    Avalia¸˜o de Desempenho                          ca  ...
Revis˜o CUDA                                    a                    Avalia¸˜o de Desempenho                          ca  ...
Revis˜o CUDA                                     a                     Avalia¸˜o de Desempenho                           c...
Revis˜o CUDA                                   a                   Avalia¸˜o de Desempenho                         ca     ...
Revis˜o CUDA                                   a                   Avalia¸˜o de Desempenho                         ca     ...
Revis˜o CUDA                                   a                   Avalia¸˜o de Desempenho                         ca     ...
Revis˜o CUDA                                   a                   Avalia¸˜o de Desempenho                         ca     ...
Revis˜o CUDA                                a                Avalia¸˜o de Desempenho                      ca              ...
Revis˜o CUDA                                 a                 Avalia¸˜o de Desempenho                       ca           ...
Revis˜o CUDA                                  a                  Avalia¸˜o de Desempenho                        ca        ...
Revis˜o CUDA                                   a                   Avalia¸˜o de Desempenho                         ca     ...
Revis˜o CUDA                                   a                   Avalia¸˜o de Desempenho                         ca     ...
Revis˜o CUDA                                   a                   Avalia¸˜o de Desempenho                         ca     ...
Revis˜o CUDA                                   a                   Avalia¸˜o de Desempenho                         ca     ...
Revis˜o CUDA                                   a                   Avalia¸˜o de Desempenho                         ca     ...
Revis˜o CUDA                                   a                   Avalia¸˜o de Desempenho                         ca     ...
Revis˜o CUDA                                   a                   Avalia¸˜o de Desempenho                         ca     ...
Revis˜o CUDA                                      a                      Avalia¸˜o de Desempenho                          ...
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
Otimização de Desempenho em GPGPU e CUDA
Otimização de Desempenho em GPGPU e CUDA
Próximos SlideShares
Carregando em…5
×

Otimização de Desempenho em GPGPU e CUDA

452 visualizações

Publicada em

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
452
No SlideShare
0
A partir de incorporações
0
Número de incorporações
12
Ações
Compartilhamentos
0
Downloads
12
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Otimização de Desempenho em GPGPU e CUDA

  1. 1. Revis˜o CUDA a Avalia¸˜o de Desempenho ca Execu¸˜o Concorrente Ass´ ca ıncrona Conclus˜o a Referˆncias eConsidera¸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. 2. Revis˜o CUDA a Avalia¸˜o de Desempenho ca Execu¸˜o Concorrente Ass´ ca ıncrona Conclus˜o a Referˆncias eConfigura¸˜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. 3. Revis˜o CUDA a Avalia¸˜o de Desempenho ca Execu¸˜o Concorrente Ass´ ca ıncrona Conclus˜o a Referˆncias eAgenda 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. 4. Revis˜o CUDA a Avalia¸˜o de Desempenho ca Execu¸˜o Concorrente Ass´ ca ıncrona Conclus˜o a Referˆncias eAgenda 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. 5. Revis˜o CUDA a Avalia¸˜o de Desempenho ca Execu¸˜o Concorrente Ass´ ca ıncrona Conclus˜o a Referˆncias eArquitetura Fermi Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  6. 6. Revis˜o CUDA a Avalia¸˜o de Desempenho ca Execu¸˜o Concorrente Ass´ ca ıncrona Conclus˜o a Referˆncias eTipos de Mem´ria o Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  7. 7. Revis˜o CUDA a Avalia¸˜o de Desempenho ca Execu¸˜o Concorrente Ass´ ca ıncrona Conclus˜o a Referˆncias eHierarquia de Threads Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  8. 8. Revis˜o CUDA a Avalia¸˜o de Desempenho ca Execu¸˜o Concorrente Ass´ ca ıncrona Conclus˜o a Referˆncias eCUDA C Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  9. 9. Revis˜o CUDA a Avalia¸˜o de Desempenho ca Execu¸˜o Concorrente Ass´ ca ıncrona Conclus˜o a Referˆncias eModelo 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. 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 eAgenda 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. 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 eDesempenho 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. 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 eDesempenho 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. 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 eDesempenho 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. 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 eDesempenho 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. 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 eDesempenho 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. 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 eDesempenho 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. 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 eDesempenho 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. 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 eDesempenho 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. 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 eDesempenho 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. 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 eDesempenho 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. 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 eAgenda 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. 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 eM´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. 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 eM´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. 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 eM´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. 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 eM´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. 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 eM´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. 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 eSpeedup 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. 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 eSpeedup 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. 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 eSpeedup 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. 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 eSpeedup 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. 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 eSpeedup 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. 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 eSpeedup Sp = p, Linear speedup Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  33. 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 eSpeedup Sp = p, Linear speedup Sp < p, Sub-linear speedup Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  34. 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 eSpeedup 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. 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 eLei 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. 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 eLei de Amdahl Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  37. 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 eLei 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. 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 eEfficiency 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. 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 eEfficiency 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. 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 eEfficiency 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. 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 eScalability 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. 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 eScalability 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. 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 eSustained FLOPS rates FLOPS: Floating-point Operations per Second Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  44. 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 eSustained 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. 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 eFLOPS 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. 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 eFLOPS 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. 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 eConclus˜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. 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 eConclus˜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. 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 eConclus˜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. 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 eConclus˜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. 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 eAgenda 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. 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 eMedindo 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. 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 eMedindo 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. 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 eMedindo 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. 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 eMedindo 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. 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 eCPU 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. 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 eCPU 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. 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 eCUDA Events Exemplo utilizando CUDA Events: Th´rsis T. P. Souza (USP) a Considera¸˜es de Desempenho em CUDA co
  59. 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 eAgenda 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. 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 eConsidera¸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. 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 eConsidera¸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. 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 eConsidera¸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. 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 eM´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. 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 eM´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. 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 eM´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. 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 eM´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. 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 eM´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. 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 eAgenda 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. 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 eExecu¸˜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. 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 eExecu¸˜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. 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 eExecu¸˜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. 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 eExecu¸˜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. 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 eExecu¸˜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. 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 eAgenda 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. 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 eTransferˆ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. 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 eTransferˆ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. 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 eTransferˆ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. 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 eTransferˆ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. 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 enon-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. 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 enon-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. 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 enon-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. 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 ePinned 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. 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 ePinned 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. 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 ePinned 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. 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 ePinned 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. 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 ePinned 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. 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 ePinned 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. 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 ePinned 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. 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 ePinned 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

×