otimização de desempenho em gpgpu e cuda

Download Otimização de Desempenho em GPGPU e CUDA

If you can't read please download the document

Upload: tharsis-souza

Post on 01-Jul-2015

292 views

Category:

Technology


2 download

TRANSCRIPT

  • 1. Reviso CUDA a Avaliao de Desempenho ca Execuo Concorrente Assca ncronaConclusoa Referncias eConsideraoes de Desempenho em CUDA c (Parte 1/3) Thrsis T. P. Souza [email protected] de Matemtica e Estata sticaUniversidade de So Paulo a 29 de abril de 2011 Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco

2. Reviso CUDAaAvaliao de DesempenhocaExecuo Concorrente Ass ca ncrona Concluso aRefernciaseCongurao de AmbientecaEnquanto no for dito o contrrio ou citada respectiva referncia,aaeneste trabalho, considera-se a seguinte congurao:caSistema Operacional Ubuntu Linux 10.04CUDA Toolkit verso 3.2 aArquitetura NVIDIA FermiThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 3. Reviso CUDA a Avaliao de Desempenho ca Execuo Concorrente Assca ncronaConclusoa Referncias eAgenda1 Reviso CUDA a2 Avaliao de DesempenhocaMtricas de DesempenhoeTempo em CUDALargura de Banda em GPU3 Execuo Concorrente Ass cancronaTransferncia de Dados Host-DeviceeKernels Paralelos4 Concluso a5 Referncias e Thrsis T. P. Souza (USP) a Consideraoes de Desempenho em CUDAc 4. Reviso CUDA a Avaliao de Desempenho ca Execuo Concorrente Assca ncronaConclusoa Referncias eAgenda1 Reviso CUDA a2 Avaliao de DesempenhocaMtricas de DesempenhoeTempo em CUDALargura de Banda em GPU3 Execuo Concorrente Ass cancronaTransferncia de Dados Host-DeviceeKernels Paralelos4 Concluso a5 Referncias e Thrsis T. P. Souza (USP) a Consideraoes de Desempenho em CUDAc 5. Reviso CUDA a Avaliao de Desempenho ca Execuo Concorrente Assca ncronaConclusoa Referncias eArquitetura Fermi Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 6. Reviso CUDAaAvaliao de DesempenhocaExecuo Concorrente Ass ca ncrona Concluso aRefernciaseTipos de MemriaoThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 7. Reviso CUDA a Avaliao de Desempenho ca Execuo Concorrente Assca ncronaConclusoa Referncias eHierarquia de Threads Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 8. Reviso CUDA a Avaliao de Desempenho ca Execuo Concorrente Assca ncronaConclusoa Referncias eCUDA C Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 9. Reviso CUDAaAvaliao de DesempenhocaExecuo Concorrente Ass ca ncrona Concluso aRefernciaseModelo Heterogneo de ComputaoecaFigura: Fluxo de execuo CUDAcaThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 10. Reviso CUDA a Avaliao de Desempenho caMtricas de Desempenho e Execuo Concorrente Assca ncrona Tempo em CUDAConclusoaLargura de Banda em GPU Referncias eAgenda1 Reviso CUDA a2 Avaliao de DesempenhocaMtricas de DesempenhoeTempo em CUDALargura de Banda em GPU3 Execuo Concorrente Ass cancronaTransferncia de Dados Host-DeviceeKernels Paralelos4 Concluso a5 Referncias e Thrsis T. P. Souza (USP) a Consideraoes de Desempenho em CUDAc 11. Reviso CUDA a Avaliao de Desempenho caMtricas de Desempenho e Execuo Concorrente Assca ncrona Tempo em CUDAConclusoaLargura de Banda em GPU Referncias eDesempenho Sequencial x ParaleloTempo de execuo sequencial funo deca eca Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 12. Reviso CUDA a Avaliao de Desempenho caMtricas de Desempenho e Execuo Concorrente Assca ncrona Tempo em CUDAConclusoaLargura de Banda em GPU Referncias eDesempenho Sequencial x ParaleloTempo de execuo sequencial funo deca ecatamanho da entrada Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 13. Reviso CUDA a Avaliao de Desempenho caMtricas de Desempenho e Execuo Concorrente Assca ncrona Tempo em CUDAConclusoaLargura de Banda em GPU Referncias eDesempenho Sequencial x ParaleloTempo de execuo sequencial funo deca ecatamanho da entradaespao (memria)co Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 14. Reviso CUDA a Avaliao de Desempenho caMtricas de Desempenho e Execuo Concorrente Assca ncrona Tempo em CUDAConclusoaLargura de Banda em GPU Referncias eDesempenho Sequencial x ParaleloTempo de execuo sequencial funo deca ecatamanho da entradaespao (memria)coTempo de execuo paralela funo deca eca Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 15. Reviso CUDA a Avaliao de Desempenho caMtricas de Desempenho e Execuo Concorrente Assca ncrona Tempo em CUDAConclusoaLargura de Banda em GPU Referncias eDesempenho Sequencial x ParaleloTempo de execuo sequencial funo deca ecatamanho da entradaespao (memria)coTempo de execuo paralela funo deca ecatamanho da entradaespao (memria)co Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 16. Reviso CUDA a Avaliao de Desempenho caMtricas de Desempenho e Execuo Concorrente Assca ncrona Tempo em CUDAConclusoaLargura de Banda em GPU Referncias eDesempenho Sequencial x ParaleloTempo de execuo sequencial funo deca ecatamanho da entradaespao (memria)coTempo de execuo paralela funo deca ecatamanho da entradaespao (memria)conmero de processadores u Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 17. Reviso CUDA a Avaliao de Desempenho caMtricas de Desempenho e Execuo Concorrente Assca ncrona Tempo em CUDAConclusoaLargura de Banda em GPU Referncias eDesempenho Sequencial x ParaleloTempo de execuo sequencial funo deca ecatamanho da entradaespao (memria)coTempo de execuo paralela funo deca ecatamanho da entradaespao (memria)conmero de processadores uparmetros de comunicao da arquitetura alvo aca Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 18. Reviso CUDAaAvaliao de DesempenhocaMtricas de DesempenhoeExecuo Concorrente Ass ca ncrona Tempo em CUDA Concluso aLargura de Banda em GPURefernciaseDesempenho Sequencial x ParaleloTempo de execuo sequencial funo deca ecatamanho da entradaespao (memria)coTempo de execuo paralela funo deca ecatamanho da entradaespao (memria)conmero de processadores uparmetros de comunicao da arquitetura alvo acaImplicaes coThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 19. Reviso CUDAaAvaliao de DesempenhocaMtricas de DesempenhoeExecuo Concorrente Ass ca ncrona Tempo em CUDA Concluso aLargura de Banda em GPURefernciaseDesempenho Sequencial x ParaleloTempo de execuo sequencial funo deca ecatamanho da entradaespao (memria)coTempo de execuo paralela funo deca ecatamanho da entradaespao (memria)conmero de processadores uparmetros de comunicao da arquitetura alvo acaImplicaes conecessrio analisar algoritmos paralelos para uma arquiteturaaalvo particularThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 20. Reviso CUDAaAvaliao de DesempenhocaMtricas de DesempenhoeExecuo Concorrente Ass ca ncrona Tempo em CUDA Concluso aLargura de Banda em GPURefernciaseDesempenho Sequencial x ParaleloTempo de execuo sequencial funo deca ecatamanho da entradaespao (memria)coTempo de execuo paralela funo deca ecatamanho da entradaespao (memria)conmero de processadores uparmetros de comunicao da arquitetura alvo acaImplicaes conecessrio analisar algoritmos paralelos para uma arquiteturaaalvo particularsistema paralelo = algoritmo paralelo + arquiteturaThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 21. Reviso CUDA a Avaliao de Desempenho caMtricas de Desempenho e Execuo Concorrente Assca ncrona Tempo em CUDAConclusoaLargura de Banda em GPU Referncias eAgenda1 Reviso CUDA a2 Avaliao de DesempenhocaMtricas de DesempenhoeTempo em CUDALargura de Banda em GPU3 Execuo Concorrente Ass cancronaTransferncia de Dados Host-DeviceeKernels Paralelos4 Concluso a5 Referncias e Thrsis T. P. Souza (USP) a Consideraoes de Desempenho em CUDAc 22. Reviso CUDAaAvaliao de DesempenhocaMtricas de DesempenhoeExecuo Concorrente Ass ca ncrona Tempo em CUDA Concluso aLargura de Banda em GPURefernciaseMtricas de Desempenho eMtricas de Desempenho mais comuns : eThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 23. Reviso CUDAaAvaliao de DesempenhocaMtricas de DesempenhoeExecuo Concorrente Ass ca ncrona Tempo em CUDA Concluso aLargura de Banda em GPURefernciaseMtricas de Desempenho eMtricas de Desempenho mais comuns : espeedupThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 24. Reviso CUDAaAvaliao de DesempenhocaMtricas de DesempenhoeExecuo Concorrente Ass ca ncrona Tempo em CUDA Concluso aLargura de Banda em GPURefernciaseMtricas de Desempenho eMtricas de Desempenho mais comuns : espeedupeciencyThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 25. Reviso CUDAaAvaliao de DesempenhocaMtricas de DesempenhoeExecuo Concorrente Ass ca ncrona Tempo em CUDA Concluso aLargura de Banda em GPURefernciaseMtricas de Desempenho eMtricas de Desempenho mais comuns : espeedupeciencyscalabilityThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 26. Reviso CUDAaAvaliao de DesempenhocaMtricas de DesempenhoeExecuo Concorrente Ass ca ncrona Tempo em CUDA Concluso aLargura de Banda em GPURefernciaseMtricas de Desempenho eMtricas de Desempenho mais comuns : espeedupeciencyscalabilitysustained FLOPS ratesThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 27. Reviso CUDA a Avaliao de Desempenho caMtricas de Desempenho e Execuo Concorrente Assca ncrona Tempo em CUDAConclusoaLargura de Banda em GPU Referncias eSpeedupRazo entre o tempo da soluo do algoritmo executado em umacaunico processador e o tempo da soluo do mesmo algoritmo emcamltiplos processadores:u Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 28. Reviso CUDA a Avaliao de Desempenho caMtricas de Desempenho e Execuo Concorrente Assca ncrona Tempo em CUDAConclusoaLargura de Banda em GPU Referncias eSpeedupRazo entre o tempo da soluo do algoritmo executado em umacaunico processador e o tempo da soluo do mesmo algoritmo emcamltiplos processadores:u Sp = T1 /Tp Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 29. Reviso CUDA a Avaliao de Desempenho caMtricas de Desempenho e Execuo Concorrente Assca ncrona Tempo em CUDAConclusoaLargura de Banda em GPU Referncias eSpeedupRazo entre o tempo da soluo do algoritmo executado em umacaunico processador e o tempo da soluo do mesmo algoritmo emcamltiplos processadores:u Sp = T1 /Tponde,p corresponde ao nmero de processadoresu Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 30. Reviso CUDA a Avaliao de Desempenho caMtricas de Desempenho e Execuo Concorrente Assca ncrona Tempo em CUDAConclusoaLargura de Banda em GPU Referncias eSpeedupRazo entre o tempo da soluo do algoritmo executado em umacaunico processador e o tempo da soluo do mesmo algoritmo emcamltiplos processadores:u Sp = T1 /Tponde,p corresponde ao nmero de processadoresuT1 o tempo de execuo do algoritmo sequencial e ca Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 31. Reviso CUDA a Avaliao de Desempenho caMtricas de Desempenho e Execuo Concorrente Assca ncrona Tempo em CUDAConclusoaLargura de Banda em GPU Referncias eSpeedupRazo entre o tempo da soluo do algoritmo executado em umacaunico processador e o tempo da soluo do mesmo algoritmo emcamltiplos processadores:u Sp = T1 /Tponde,p corresponde ao nmero de processadoresuT1 o tempo de execuo do algoritmo sequencial e caTp o tempo do algoritmo paralelo em p processadores e Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 32. Reviso CUDA a Avaliao de Desempenho caMtricas de Desempenho e Execuo Concorrente Assca ncrona Tempo em CUDAConclusoaLargura de Banda em GPU Referncias eSpeedup Sp = p, Linear speedup Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 33. Reviso CUDAaAvaliao de DesempenhocaMtricas de DesempenhoeExecuo Concorrente Ass ca ncrona Tempo em CUDA Concluso aLargura de Banda em GPURefernciaseSpeedup Sp = p, Linear speedup Sp < p, Sub-linear speedupThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 34. Reviso CUDAaAvaliao de DesempenhocaMtricas de DesempenhoeExecuo Concorrente Ass ca ncrona Tempo em CUDA Concluso aLargura de Banda em GPURefernciaseSpeedup Sp = p, Linear speedup Sp < p, Sub-linear speedup Sp > p, Super-linear speedupThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 35. Reviso CUDA a Avaliao de Desempenho caMtricas de Desempenho e Execuo Concorrente Assca ncrona Tempo em CUDAConclusoaLargura de Banda em GPU Referncias eLei de AmdahlMximo speedup (S) esperado ao paralelizar uma certa poro de acaum programa sequencial: 1S=P(1 P) + Nonde, P a frao do tempo gasto pelo programa serial da parteecado cdigo que pode ser paralelizado e N o nmero deoe uprocessadores sobre o qual o cdigo paralelizvel roda.oa Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 36. Reviso CUDAaAvaliao de DesempenhocaMtricas de DesempenhoeExecuo Concorrente Ass ca ncrona Tempo em CUDA Concluso aLargura de Banda em GPURefernciaseLei de AmdahlThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 37. Reviso CUDA a Avaliao de Desempenho caMtricas de Desempenho e Execuo Concorrente Assca ncrona Tempo em CUDAConclusoaLargura de Banda em GPU Referncias eLei de AmdahlBoa prticaaPara maximizar desempenho, antes de mais nada, busque formasde paralelizar o cdigo sequencial.o Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 38. Reviso CUDA a Avaliao de Desempenho caMtricas de Desempenho e Execuo Concorrente Assca ncrona Tempo em CUDAConclusoaLargura de Banda em GPU Referncias eEciencyRazo entre o speedup e o nmero de processadores: a u Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 39. Reviso CUDA a Avaliao de Desempenho caMtricas de Desempenho e Execuo Concorrente Assca ncrona Tempo em CUDAConclusoaLargura de Banda em GPU Referncias eEciencyRazo entre o speedup e o nmero de processadores: a uT1Ep = Sp /p = pTp Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 40. Reviso CUDA a Avaliao de Desempenho caMtricas de Desempenho e Execuo Concorrente Assca ncrona Tempo em CUDAConclusoaLargura de Banda em GPU Referncias eEciencyRazo entre o speedup e o nmero de processadores: a uT1Ep = Sp /p = pTpEstima quo bem os processadores esto sendo utilizados, tendoa aem vista o tempo gasto em overhead como: sincronizao e troca cade mensagens. Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 41. Reviso CUDAaAvaliao de DesempenhocaMtricas de DesempenhoeExecuo Concorrente Ass ca ncrona Tempo em CUDA Concluso aLargura de Banda em GPURefernciaseScalabilityCapacidade do algoritmo de resolver um problema n vezes maiorem n vezes mais processadores [Gray, 1992]:Thrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 42. Reviso CUDAaAvaliao de Desempenhoca Mtricas de Desempenho eExecuo Concorrente Ass ca ncronaTempo em CUDA Concluso a Largura de Banda em GPURefernciaseScalabilityCapacidade do algoritmo de resolver um problema n vezes maiorem n vezes mais processadores [Gray, 1992]: Tempo para resolver um problema de tamanho m em p processadoresScaleup(p, n) =Tempo para resolver um problema de tamanho nm em np processadores Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 43. Reviso CUDA a Avaliao de Desempenho caMtricas de Desempenho e Execuo Concorrente Assca ncrona Tempo em CUDAConclusoaLargura de Banda em GPU Referncias eSustained FLOPS rates FLOPS: Floating-point Operations per Second Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 44. Reviso CUDAaAvaliao de DesempenhocaMtricas de DesempenhoeExecuo Concorrente Ass ca ncrona Tempo em CUDA Concluso aLargura de Banda em GPURefernciaseSustained FLOPS rates FLOPS: Floating-point Operations per Second A taxa sustentada de FLOPS mede quo bem uma a implementao especca ca explora a arquitetura alvoThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 45. Reviso CUDAaAvaliao de DesempenhocaMtricas de DesempenhoeExecuo Concorrente Ass ca ncrona Tempo em CUDA Concluso aLargura de Banda em GPURefernciaseFLOPS Falcia: FLOPS uma boa mtrica de desempenhoae eEssa mtrica no indica necessariamente que um algoritmo eaeecienteThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 46. Reviso CUDAaAvaliao de DesempenhocaMtricas de DesempenhoeExecuo Concorrente Ass ca ncrona Tempo em CUDA Concluso aLargura de Banda em GPURefernciaseFLOPS Falcia: FLOPS uma boa mtrica de desempenhoae eEssa mtrica no indica necessariamente que um algoritmo eaeeciente Um algoritmo alternativo com menor FLOPS pode resolver um problema mais rapidamenteThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 47. Reviso CUDA a Avaliao de Desempenho caMtricas de Desempenho e Execuo Concorrente Assca ncrona Tempo em CUDAConclusoaLargura de Banda em GPU Referncias eConcluso Mtricas de Desempenho a e Cuidado ao estender erradamente mtricas que valem para um e contexto espec cos. Ex.: microbenchmarks, FLOPS de pico Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 48. Reviso CUDA a Avaliao de Desempenho caMtricas de Desempenho e Execuo Concorrente Assca ncrona Tempo em CUDAConclusoaLargura de Banda em GPU Referncias eConcluso Mtricas de Desempenho a e Cuidado ao estender erradamente mtricas que valem para um e contexto espec cos. Ex.: microbenchmarks, FLOPS de pico Tempo de execuo a unica medida vlida para desempenho ca e a [Hennessy, 2004] Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 49. Reviso CUDA a Avaliao de Desempenho caMtricas de Desempenho e Execuo Concorrente Assca ncrona Tempo em CUDAConclusoaLargura de Banda em GPU Referncias eConcluso Mtricas de Desempenho a e Cuidado ao estender erradamente mtricas que valem para um e contexto espec cos. Ex.: microbenchmarks, FLOPS de pico Tempo de execuo a unica medida vlida para desempenho ca e a [Hennessy, 2004] Qualquer mtrica deve estar vinculada ao tempo de execuo eca Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 50. Reviso CUDA a Avaliao de Desempenho caMtricas de Desempenho e Execuo Concorrente Assca ncrona Tempo em CUDAConclusoaLargura de Banda em GPU Referncias eConcluso Mtricas de Desempenho a eCuidado ao estender erradamente mtricas que valem para umecontexto especcos. Ex.: microbenchmarks, FLOPS de picoTempo de execuo a unica medida vlida para desempenhoca e a[Hennessy, 2004]Qualquer mtrica deve estar vinculada ao tempo de execuoecaBoa prtica aUtilize o tempo de execuo como medida de desempenho.ca Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 51. Reviso CUDA a Avaliao de Desempenho caMtricas de Desempenho e Execuo Concorrente Assca ncrona Tempo em CUDAConclusoaLargura de Banda em GPU Referncias eAgenda1 Reviso CUDA a2 Avaliao de DesempenhocaMtricas de DesempenhoeTempo em CUDALargura de Banda em GPU3 Execuo Concorrente Ass cancronaTransferncia de Dados Host-DeviceeKernels Paralelos4 Concluso a5 Referncias e Thrsis T. P. Souza (USP) a Consideraoes de Desempenho em CUDAc 52. Reviso CUDA a Avaliao de Desempenho caMtricas de Desempenho e Execuo Concorrente Assca ncrona Tempo em CUDAConclusoaLargura de Banda em GPU Referncias eMedindo TempoPodemos medir tempos de execuo em CUDA utilizando tantocamtodos tradicionais de CPU quanto GPU timers. Entretanto, he aalguns aspectos a serem levados em considerao:ca Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 53. Reviso CUDA a Avaliao de Desempenho caMtricas de Desempenho e Execuo Concorrente Assca ncrona Tempo em CUDAConclusoaLargura de Banda em GPU Referncias eMedindo TempoPodemos medir tempos de execuo em CUDA utilizando tantocamtodos tradicionais de CPU quanto GPU timers. Entretanto, he aalguns aspectos a serem levados em considerao:caChamadas a CUDA API podem ser assncronas. Ex.:lanamento de kernels. Neste caso necessrio garantir a ceasincronia de threads ao utilizar temporizadores em CPU. Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 54. Reviso CUDA a Avaliao de Desempenho caMtricas de Desempenho e Execuo Concorrente Assca ncrona Tempo em CUDAConclusoaLargura de Banda em GPU Referncias eMedindo TempoPodemos medir tempos de execuo em CUDA utilizando tantocamtodos tradicionais de CPU quanto GPU timers. Entretanto, he aalguns aspectos a serem levados em considerao:caChamadas a CUDA API podem ser assncronas. Ex.:lanamento de kernels. Neste caso necessrio garantir a ceasincronia de threads ao utilizar temporizadores em CPU.Deve-se tomar cuidado ao criar pontos de sincronizao em caCPU. Isso pode causar stall em GPU. Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 55. Reviso CUDA a Avaliao de Desempenho caMtricas de Desempenho e Execuo Concorrente Assca ncrona Tempo em CUDAConclusoaLargura de Banda em GPU Referncias eMedindo TempoPodemos medir tempos de execuo em CUDA utilizando tantocamtodos tradicionais de CPU quanto GPU timers. Entretanto, he aalguns aspectos a serem levados em considerao:caChamadas a CUDA API podem ser assncronas. Ex.:lanamento de kernels. Neste caso necessrio garantir a ceasincronia de threads ao utilizar temporizadores em CPU.Deve-se tomar cuidado ao criar pontos de sincronizao em caCPU. Isso pode causar stall em GPU.Temporizao em GPU tipicamente realizada utilizando ca eGPU Events. Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 56. Reviso CUDA a Avaliao de Desempenho caMtricas de Desempenho e Execuo Concorrente Assca ncrona Tempo em CUDAConclusoaLargura de Banda em GPU Referncias eCPU TimerAo utilizar temporizadores de CPU, para medir corretamente otempo transcorrido em uma chamada ou sequncia de chamadaseem CUDA, necessrio sincronizar a thread da CPU com a GPU e achamando cudaThreadSynchronize() imediatamente antes edepois de iniciar o temporizador na CPU. Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 57. Reviso CUDA a Avaliao de Desempenho caMtricas de Desempenho e Execuo Concorrente Assca ncrona Tempo em CUDAConclusoaLargura de Banda em GPU Referncias eCPU TimerAo utilizar temporizadores de CPU, para medir corretamente otempo transcorrido em uma chamada ou sequncia de chamadaseem CUDA, necessrio sincronizar a thread da CPU com a GPU e achamando cudaThreadSynchronize() imediatamente antes edepois de iniciar o temporizador na CPU. Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 58. Reviso CUDAaAvaliao de DesempenhocaMtricas de DesempenhoeExecuo Concorrente Ass ca ncrona Tempo em CUDA Concluso aLargura de Banda em GPURefernciaseCUDA EventsExemplo utilizando CUDA Events:Thrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 59. Reviso CUDA a Avaliao de Desempenho caMtricas de Desempenho e Execuo Concorrente Assca ncrona Tempo em CUDAConclusoaLargura de Banda em GPU Referncias eAgenda1 Reviso CUDA a2 Avaliao de DesempenhocaMtricas de DesempenhoeTempo em CUDALargura de Banda em GPU3 Execuo Concorrente Ass cancronaTransferncia de Dados Host-DeviceeKernels Paralelos4 Concluso a5 Referncias e Thrsis T. P. Souza (USP) a Consideraoes de Desempenho em CUDAc 60. Reviso CUDAaAvaliao de DesempenhocaMtricas de DesempenhoeExecuo Concorrente Ass ca ncrona Tempo em CUDA Concluso aLargura de Banda em GPURefernciaseConsideraoes de Throughput c Transferncia de dados entre host e device custosa. eeThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 61. Reviso CUDAaAvaliao de DesempenhocaMtricas de DesempenhoeExecuo Concorrente Ass ca ncrona Tempo em CUDA Concluso aLargura de Banda em GPURefernciaseConsideraoes de Throughput c Transferncia de dados entre host e device custosa. ee A complexidade das operaes deve justicar o custo da co transferncia via PCIe. eThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 62. Reviso CUDAaAvaliao de DesempenhocaMtricas de DesempenhoeExecuo Concorrente Ass ca ncrona Tempo em CUDA Concluso aLargura de Banda em GPURefernciaseConsideraoes de Throughput c Transferncia de dados entre host e device custosa. ee A complexidade das operaes deve justicar o custo da co transferncia via PCIe. e Dados devem ser mantidos em device o mximo poss para a vel evitar retransmisso. aThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 63. Reviso CUDA a Avaliao de Desempenho caMtricas de Desempenho e Execuo Concorrente Assca ncrona Tempo em CUDAConclusoaLargura de Banda em GPU Referncias eMtrica de Throughput eDe modo geral, para aumento de desempenho, deseja-se maximara relao: nmero de operaes de ponto utuante em GPU porcaucoelemento de dado transferido via PCIe. Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 64. Reviso CUDA a Avaliao de Desempenho caMtricas de Desempenho e Execuo Concorrente Assca ncrona Tempo em CUDAConclusoaLargura de Banda em GPU Referncias eMtrica de Throughput eDe modo geral, para aumento de desempenho, deseja-se maximara relao: nmero de operaes de ponto utuante em GPU porcaucoelemento de dado transferido via PCIe.Ex.: Para soma de duas matrizes N N, h 3N 2 transferncias deaedados e N 2 operaes. co Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 65. Reviso CUDA a Avaliao de Desempenho caMtricas de Desempenho e Execuo Concorrente Assca ncrona Tempo em CUDAConclusoaLargura de Banda em GPU Referncias eMtrica de Throughput eDe modo geral, para aumento de desempenho, deseja-se maximara relao: nmero de operaes de ponto utuante em GPU porcaucoelemento de dado transferido via PCIe.Ex.: Para soma de duas matrizes N N, h 3N 2 transferncias de aedados e N 2 operaes. Portanto, a relao de apenas 1:3 ou coca eO(1). Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 66. Reviso CUDA a Avaliao de Desempenho caMtricas de Desempenho e Execuo Concorrente Assca ncrona Tempo em CUDAConclusoaLargura de Banda em GPU Referncias eMtrica de Throughput eDe modo geral, para aumento de desempenho, deseja-se maximara relao: nmero de operaes de ponto utuante em GPU porcaucoelemento de dado transferido via PCIe.Ex.: Para soma de duas matrizes N N, h 3N 2 transferncias de a edados e N 2 operaes. Portanto, a relao de apenas 1:3 ou coca eO(1). Para uma multiplicao das mesmas matrizes, terca amos umarelao O(N).ca Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 67. Reviso CUDA a Avaliao de Desempenho caMtricas de Desempenho e Execuo Concorrente Assca ncrona Tempo em CUDAConclusoaLargura de Banda em GPU Referncias eMtrica de Throughput eDe modo geral, para aumento de desempenho, deseja-se maximara relao: nmero de operaes de ponto utuante em GPU porcaucoelemento de dado transferido via PCIe.Ex.: Para soma de duas matrizes N N, h 3N 2 transferncias de a edados e N 2 operaes. Portanto, a relao de apenas 1:3 ou coca eO(1). Para uma multiplicao das mesmas matrizes, terca amos umarelao O(N).caBoa prticaaMinimizar transferncia de dados entre Host e Device.e Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 68. Reviso CUDA a Avaliao de Desempenho ca Transferncia de Dados Host-Device e Execuo Concorrente Assca ncrona Kernels ParalelosConclusoa Referncias eAgenda1 Reviso CUDA a2 Avaliao de DesempenhocaMtricas de DesempenhoeTempo em CUDALargura de Banda em GPU3 Execuo Concorrente Ass cancronaTransferncia de Dados Host-DeviceeKernels Paralelos4 Concluso a5 Referncias e Thrsis T. P. Souza (USP) a Consideraoes de Desempenho em CUDAc 69. Reviso CUDAaAvaliao de DesempenhocaTransferncia de Dados Host-DeviceeExecuo Concorrente Ass ca ncronaKernels Paralelos Concluso aRefernciaseExecuo Concorrente Host-Device caPara facilitar execuo concorrente entre host e device, algumascachamadas de funo so assca ancronas: controle retornado para ethread do host antes que o device complete as tarefas requisitadas.Thrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 70. Reviso CUDAaAvaliao de DesempenhocaTransferncia de Dados Host-DeviceeExecuo Concorrente Ass ca ncronaKernels Paralelos Concluso aRefernciaseExecuo Concorrente Host-Device caPara facilitar execuo concorrente entre host e device, algumascachamadas de funo so assca ancronas: controle retornado para ethread do host antes que o device complete as tarefas requisitadas.Dois tipos de execuo concorrente so particurlamenteca aimportantes de serem analisadas:Thrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 71. Reviso CUDAaAvaliao de DesempenhocaTransferncia de Dados Host-DeviceeExecuo Concorrente Ass ca ncronaKernels Paralelos Concluso aRefernciaseExecuo Concorrente Host-Device caPara facilitar execuo concorrente entre host e device, algumascachamadas de funo so assca ancronas: controle retornado para ethread do host antes que o device complete as tarefas requisitadas.Dois tipos de execuo concorrente so particurlamenteca aimportantes de serem analisadas:Overlap em transferncia de dados eThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 72. Reviso CUDAaAvaliao de DesempenhocaTransferncia de Dados Host-DeviceeExecuo Concorrente Ass ca ncronaKernels Paralelos Concluso aRefernciaseExecuo Concorrente Host-Device caPara facilitar execuo concorrente entre host e device, algumascachamadas de funo so assca ancronas: controle retornado para ethread do host antes que o device complete as tarefas requisitadas.Dois tipos de execuo concorrente so particurlamenteca aimportantes de serem analisadas:Overlap em transferncia de dados eExecuo de Kernels paralelos caThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 73. Reviso CUDAaAvaliao de DesempenhocaTransferncia de Dados Host-DeviceeExecuo Concorrente Ass ca ncronaKernels Paralelos Concluso aRefernciaseExecuo Concorrente Host-Device caPara facilitar execuo concorrente entre host e device, algumascachamadas de funo so assca ancronas: controle retornado para ethread do host antes que o device complete as tarefas requisitadas.Dois tipos de execuo concorrente so particurlamenteca aimportantes de serem analisadas:Overlap em transferncia de dados eExecuo de Kernels paralelos caPara vericar se o device permite tais tipos de concorrncia, edeve-se executar a chamada cudaGetDeviceProperties() e checaros atributos deviceOverlap e concurrentKernels.Thrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 74. Reviso CUDA a Avaliao de Desempenho ca Transferncia de Dados Host-Device e Execuo Concorrente Assca ncrona Kernels ParalelosConclusoa Referncias eAgenda1 Reviso CUDA a2 Avaliao de DesempenhocaMtricas de DesempenhoeTempo em CUDALargura de Banda em GPU3 Execuo Concorrente Ass cancronaTransferncia de Dados Host-DeviceeKernels Paralelos4 Concluso a5 Referncias e Thrsis T. P. Souza (USP) a Consideraoes de Desempenho em CUDAc 75. Reviso CUDA a Avaliao de Desempenho ca Transferncia de Dados Host-Device e Execuo Concorrente Assca ncrona Kernels ParalelosConclusoa Referncias eTransferncia de Dados Host-DeviceeO maior gargalo em processamento em GPU a transferncia viae ePCIe. Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 76. Reviso CUDA a Avaliao de Desempenho ca Transferncia de Dados Host-Device e Execuo Concorrente Assca ncrona Kernels ParalelosConclusoa Referncias eTransferncia de Dados Host-DeviceeO maior gargalo em processamento em GPU a transferncia viae ePCIe.Ao alocar memria em CPU que vai ser utilizado para transferir odados para GPU, h dois tipos de memria poss aoveis: Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 77. Reviso CUDA a Avaliao de Desempenho ca Transferncia de Dados Host-Device e Execuo Concorrente Assca ncrona Kernels ParalelosConclusoa Referncias eTransferncia de Dados Host-DeviceeO maior gargalo em processamento em GPU a transferncia viae ePCIe.Ao alocar memria em CPU que vai ser utilizado para transferir odados para GPU, h dois tipos de memria poss aoveis:pinned memory (page-locked memory ) Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 78. Reviso CUDA a Avaliao de Desempenho ca Transferncia de Dados Host-Device e Execuo Concorrente Assca ncrona Kernels ParalelosConclusoa Referncias eTransferncia de Dados Host-DeviceeO maior gargalo em processamento em GPU a transferncia viae ePCIe.Ao alocar memria em CPU que vai ser utilizado para transferir odados para GPU, h dois tipos de memria poss aoveis:pinned memory (page-locked memory )non-pinned memory (pageable memory ) Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 79. Reviso CUDAaAvaliao de DesempenhocaTransferncia de Dados Host-DeviceeExecuo Concorrente Ass ca ncronaKernels Paralelos Concluso aRefernciasenon-Pinned MemoryFigura: Cpia tradicional host-device via PCIe. oThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 80. Reviso CUDA a Avaliao de Desempenho ca Transferncia de Dados Host-Device e Execuo Concorrente Assca ncrona Kernels ParalelosConclusoa Referncias enon-Pinned Memory Figura: Cpia tradicional host-device via PCIe.o malloc / free so funes que utilizam non-pinned memorya co Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 81. Reviso CUDAaAvaliao de DesempenhocaTransferncia de Dados Host-DeviceeExecuo Concorrente Ass ca ncronaKernels Paralelos Concluso aRefernciasenon-Pinned MemoryFigura: Cpia tradicional host-device via PCIe. o malloc / free so funes que utilizam non-pinned memorya co transferncia host-device relativamente lenta e eThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 82. Reviso CUDA a Avaliao de Desempenho ca Transferncia de Dados Host-Device e Execuo Concorrente Assca ncrona Kernels ParalelosConclusoa Referncias ePinned Memory Figura: Cpia host-device utlizando via PCIe em buer pinned-memoryo Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 83. Reviso CUDA a Avaliao de Desempenho ca Transferncia de Dados Host-Device e Execuo Concorrente Assca ncrona Kernels ParalelosConclusoa Referncias ePinned Memory Figura: Cpia host-device utlizando via PCIe em buer pinned-memoryo Pinned Memory possibilita Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 84. Reviso CUDA a Avaliao de Desempenho ca Transferncia de Dados Host-Device e Execuo Concorrente Assca ncrona Kernels ParalelosConclusoa Referncias ePinned Memory Figura: Cpia host-device utlizando via PCIe em buer pinned-memoryo Pinned Memory possibilita cpia via PCIe mais rpidas ( 2x)o a Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 85. Reviso CUDA a Avaliao de Desempenho ca Transferncia de Dados Host-Device e Execuo Concorrente Assca ncrona Kernels ParalelosConclusoa Referncias ePinned Memory Figura: Cpia host-device utlizando via PCIe em buer pinned-memoryo Pinned Memory possibilita cpia via PCIe mais rpidas ( 2x)o a cpias assoncronas de memria o Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 86. Reviso CUDA a Avaliao de Desempenho ca Transferncia de Dados Host-Device e Execuo Concorrente Assca ncrona Kernels ParalelosConclusoa Referncias ePinned Memory Figura: Cpia host-device utlizando via PCIe em buer pinned-memoryo Pinned Memory possibilita cpia via PCIe mais rpidas ( 2x)o a cpias assoncronas de memria o Uso via RunTime API Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 87. Reviso CUDA a Avaliao de Desempenho ca Transferncia de Dados Host-Device e Execuo Concorrente Assca ncrona Kernels ParalelosConclusoa Referncias ePinned Memory Figura: Cpia host-device utlizando via PCIe em buer pinned-memoryo Pinned Memory possibilita cpia via PCIe mais rpidas ( 2x)o a cpias assoncronas de memria o Uso via RunTime API cudaHostAlloc (ou cudaMallocHost) / cudaFreeHost Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 88. Reviso CUDA a Avaliao de Desempenho ca Transferncia de Dados Host-Device e Execuo Concorrente Assca ncrona Kernels ParalelosConclusoa Referncias ePinned Memory Figura: Cpia host-device utlizando via PCIe em buer pinned-memoryo Pinned Memory possibilita cpia via PCIe mais rpidas ( 2x)o a cpias assoncronas de memria o Uso via RunTime API cudaHostAlloc (ou cudaMallocHost) / cudaFreeHost em vez de malloc / free Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 89. Reviso CUDAaAvaliao de DesempenhocaTransferncia de Dados Host-DeviceeExecuo Concorrente Ass ca ncronaKernels Paralelos Concluso aRefernciasePinned Memory x Non-Pinned MemoryFigura: Tempo de transferncia de memria em funo de MegaBytes transferidos e oca[2].Thrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 90. Reviso CUDA a Avaliao de Desempenho ca Transferncia de Dados Host-Device e Execuo Concorrente Assca ncrona Kernels ParalelosConclusoa Referncias ePinned Memory x Non-Pinned MemoryFalcia: Pinned Memory = Maior DesempenhoaUso de Pinned Memory acelera cpia via PCIe, logo sempre devooutilizar esse tipo de memria visando a um aumento de odesempenho. Errado! Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 91. Reviso CUDA a Avaliao de Desempenho ca Transferncia de Dados Host-Device e Execuo Concorrente Assca ncrona Kernels ParalelosConclusoa Referncias ePinned Memory x Non-Pinned MemoryFalcia: Pinned Memory = Maior DesempenhoaUso de Pinned Memory acelera cpia via PCIe, logo sempre devooutilizar esse tipo de memria visando a um aumento de odesempenho. Errado!Pinned Memory no deve ser super utilizada a Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 92. Reviso CUDA a Avaliao de Desempenho ca Transferncia de Dados Host-Device e Execuo Concorrente Assca ncrona Kernels ParalelosConclusoa Referncias ePinned Memory x Non-Pinned MemoryFalcia: Pinned Memory = Maior DesempenhoaUso de Pinned Memory acelera cpia via PCIe, logo sempre devooutilizar esse tipo de memria visando a um aumento de odesempenho. Errado!Pinned Memory no deve ser super utilizada aH considervel overhead em sua utilizao a a ca Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 93. Reviso CUDA a Avaliao de Desempenho ca Transferncia de Dados Host-Device e Execuo Concorrente Assca ncrona Kernels ParalelosConclusoa Referncias ePinned Memory x Non-Pinned MemoryFalcia: Pinned Memory = Maior DesempenhoaUso de Pinned Memory acelera cpia via PCIe, logo sempre devooutilizar esse tipo de memria visando a um aumento de odesempenho. Errado!Pinned Memory no deve ser super utilizada aH considervel overhead em sua utilizao a a caUso no planejado pode causar perda de desempenho a Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 94. Reviso CUDA a Avaliao de Desempenho ca Transferncia de Dados Host-Device e Execuo Concorrente Assca ncrona Kernels ParalelosConclusoa Referncias ePinned Memory x Non-Pinned MemoryFalcia: Pinned Memory = Maior DesempenhoaUso de Pinned Memory acelera cpia via PCIe, logo sempre devooutilizar esse tipo de memria visando a um aumento de odesempenho. Errado!Pinned Memory no deve ser super utilizada aH considervel overhead em sua utilizao a a caUso no planejado pode causar perda de desempenho aQuantidade tima a ser utilizada depende da aplicao oca Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 95. Reviso CUDA a Avaliao de Desempenho ca Transferncia de Dados Host-Device e Execuo Concorrente Assca ncrona Kernels ParalelosConclusoa Referncias ePinned Memory x Non-Pinned Memory: OverheadFigura: Tempo de alocao de memria em funo do nmero de bytescaocaualocados/liberados por chamada [2]. Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 96. Reviso CUDA a Avaliao de Desempenho ca Transferncia de Dados Host-Device e Execuo Concorrente Assca ncrona Kernels ParalelosConclusoa Referncias ePinned Memory x Non-Pinned Memory: Qual utilizar?Figura: Tempo requerido para alocar, transferir para GPU, transferir de volta paraCPU e desalocar memria [2]. o Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 97. Reviso CUDA a Avaliao de Desempenho ca Transferncia de Dados Host-Device e Execuo Concorrente Assca ncrona Kernels ParalelosConclusoa Referncias ePinned MemoryBoa prticaaConsidere o uso de Pinned Memory ao transferir dados da CPUpara GPU. Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 98. Reviso CUDAaAvaliao de DesempenhocaTransferncia de Dados Host-DeviceeExecuo Concorrente Ass ca ncronaKernels Paralelos Concluso aRefernciaseOverlap Transferncia Host-Devicee Transferncia de dados host-device utilizando cudaMemcpy() e bloqueante eThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 99. Reviso CUDAaAvaliao de DesempenhocaTransferncia de Dados Host-DeviceeExecuo Concorrente Ass ca ncronaKernels Paralelos Concluso aRefernciaseOverlap Transferncia Host-Devicee Transferncia de dados host-device utilizando cudaMemcpy() e bloqueante ecudaMemcpyAsync() uma variante asse ncrona docudaMemcpy()Thrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 100. Reviso CUDAaAvaliao de DesempenhocaTransferncia de Dados Host-DeviceeExecuo Concorrente Ass ca ncronaKernels Paralelos Concluso aRefernciaseOverlap Transferncia Host-Devicee Transferncia de dados host-device utilizando cudaMemcpy() e bloqueante ecudaMemcpyAsync() uma variante asse ncrona docudaMemcpy()cudaMemcpyAsync() requer pinned memory e identicao decastreamThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 101. Reviso CUDA a Avaliao de Desempenho ca Transferncia de Dados Host-Device e Execuo Concorrente Assca ncrona Kernels ParalelosConclusoa Referncias eOverlap Transferncia Host-DeviceeTransferncia de dados host-device utilizando cudaMemcpy()e bloqueanteecudaMemcpyAsync() uma variante asse ncrona docudaMemcpy()cudaMemcpyAsync() requer pinned memory e identicao decastreamPode-se obter overlap de duas formas: Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 102. Reviso CUDA a Avaliao de Desempenho ca Transferncia de Dados Host-Device e Execuo Concorrente Assca ncrona Kernels ParalelosConclusoa Referncias eOverlap Transferncia Host-DeviceeTransferncia de dados host-device utilizando cudaMemcpy()e bloqueanteecudaMemcpyAsync() uma variante asse ncrona docudaMemcpy()cudaMemcpyAsync() requer pinned memory e identicao decastreamPode-se obter overlap de duas formas:Enquanto memria transferida para GPU e kernel o eeexecutado, pode-se sobrepor computao em CPUca Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 103. Reviso CUDA a Avaliao de Desempenho ca Transferncia de Dados Host-Device e Execuo Concorrente Assca ncrona Kernels ParalelosConclusoa Referncias eOverlap Transferncia Host-DeviceeTransferncia de dados host-device utilizando cudaMemcpy()e bloqueanteecudaMemcpyAsync() uma variante asse ncrona docudaMemcpy()cudaMemcpyAsync() requer pinned memory e identicao decastreamPode-se obter overlap de duas formas:Enquanto memria transferida para GPU e kernel o eeexecutado, pode-se sobrepor computao em CPUcaPode-se intervalar transferncia de dados host-device com eexecuo de kernels ca Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 104. Reviso CUDA a Avaliao de Desempenho ca Transferncia de Dados Host-Device e Execuo Concorrente Assca ncrona Kernels ParalelosConclusoa Referncias eStreams Um stream uma sequncia de comandos que executada em e e e ordem Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 105. Reviso CUDA a Avaliao de Desempenho ca Transferncia de Dados Host-Device e Execuo Concorrente Assca ncrona Kernels ParalelosConclusoa Referncias eStreams Um stream uma sequncia de comandos que executada em e e e ordem No h ordenao entre comandos de diferentes streamsa a ca Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 106. Reviso CUDA a Avaliao de Desempenho ca Transferncia de Dados Host-Device e Execuo Concorrente Assca ncrona Kernels ParalelosConclusoa Referncias eStreams Um stream uma sequncia de comandos que executada em e e e ordem No h ordenao entre comandos de diferentes streamsa aca Concorrncia em CUDA gerenciada por meio de streamse e Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 107. Reviso CUDAaAvaliao de DesempenhocaTransferncia de Dados Host-DeviceeExecuo Concorrente Ass ca ncronaKernels Paralelos Concluso aRefernciaseStreams Um stream uma sequncia de comandos que executada em e e e ordem No h ordenao entre comandos de diferentes streamsa aca Concorrncia em CUDA gerenciada por meio de streamse eAssociar diferentes streams a diferentes operaes signicacoexplicitar independncia dessas eThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 108. Reviso CUDAaAvaliao de DesempenhocaTransferncia de Dados Host-DeviceeExecuo Concorrente Ass ca ncronaKernels Paralelos Concluso aRefernciaseStreams Um stream uma sequncia de comandos que executada em e e e ordem No h ordenao entre comandos de diferentes streamsa aca Concorrncia em CUDA gerenciada por meio de streamse eAssociar diferentes streams a diferentes operaes signicacoexplicitar independncia dessas ePossibilidade de intervalar operaes coThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 109. Reviso CUDAaAvaliao de DesempenhocaTransferncia de Dados Host-DeviceeExecuo Concorrente Ass ca ncronaKernels Paralelos Concluso aRefernciaseStreams Um stream uma sequncia de comandos que executada em e e e ordem No h ordenao entre comandos de diferentes streamsa aca Concorrncia em CUDA gerenciada por meio de streamse eAssociar diferentes streams a diferentes operaes signicacoexplicitar independncia dessas ePossibilidade de intervalar operaes coUm lanamento de kernel e uma cpia de memria podem terco ooverlapThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 110. Reviso CUDA a Avaliao de Desempenho ca Transferncia de Dados Host-Device e Execuo Concorrente Assca ncrona Kernels ParalelosConclusoa Referncias eOverlap Transferncia de Dados e Computao em CPUe ca O ultimo argumento do cudaMemcpyAsync() o stream ID e Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 111. Reviso CUDAaAvaliao de DesempenhocaTransferncia de Dados Host-DeviceeExecuo Concorrente Ass ca ncronaKernels Paralelos Concluso aRefernciaseOverlap Transferncia de Dados e Computao em CPUe ca O ultimo argumento do cudaMemcpyAsync() o stream ID e Lanamento default de kernel utiliza stream ID igual a zerocThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 112. Reviso CUDAaAvaliao de DesempenhocaTransferncia de Dados Host-DeviceeExecuo Concorrente Ass ca ncronaKernels Paralelos Concluso aRefernciaseOverlap Transferncia de Dados e Computao em CPUe ca O ultimo argumento do cudaMemcpyAsync() o stream ID e Lanamento default de kernel utiliza stream ID igual a zeroc Como transferncia de dados e execuo de kernel utilizame ca mesmo stream, suas execues so sequenciaiscoaThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 113. Reviso CUDAaAvaliao de DesempenhocaTransferncia de Dados Host-DeviceeExecuo Concorrente Ass ca ncronaKernels Paralelos Concluso aRefernciaseOverlap Transferncia de Dados e Computao em CPUe ca O ultimo argumento do cudaMemcpyAsync() o stream ID e Lanamento default de kernel utiliza stream ID igual a zeroc Como transferncia de dados e execuo de kernel utilizame ca mesmo stream, suas execues so sequenciaiscoa Comando cudaMemcpyAsync possibilita transferncia de e dados host-device em modo assncronoThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 114. Reviso CUDAaAvaliao de DesempenhocaTransferncia de Dados Host-DeviceeExecuo Concorrente Ass ca ncronaKernels Paralelos Concluso aRefernciaseOverlap Transferncia de Dados e Computao em CPUe ca O ultimo argumento do cudaMemcpyAsync() o stream ID e Lanamento default de kernel utiliza stream ID igual a zeroc Como transferncia de dados e execuo de kernel utilizame ca mesmo stream, suas execues so sequenciaiscoa Comando cudaMemcpyAsync possibilita transferncia de e dados host-device em modo assncrono Execuo de cpuFunction() potencialmente em overlap comca cudaMemcpyAsync e execuo de kernelcaThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 115. Reviso CUDAaAvaliao de DesempenhocaTransferncia de Dados Host-DeviceeExecuo Concorrente Ass ca ncronaKernels Paralelos Concluso aRefernciaseOverlap Transferncia de Dados e Computao em GPUe caThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 116. Reviso CUDAaAvaliao de DesempenhocaTransferncia de Dados Host-DeviceeExecuo Concorrente Ass ca ncronaKernels Paralelos Concluso aRefernciaseOverlap Transferncia de Dados e Computao em GPUe ca Dois streams so criados para explicitar independncia de ae execuocaThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 117. Reviso CUDAaAvaliao de DesempenhocaTransferncia de Dados Host-DeviceeExecuo Concorrente Ass ca ncronaKernels Paralelos Concluso aRefernciaseOverlap Transferncia de Dados e Computao em GPUe ca Dois streams so criados para explicitar independncia de ae execuoca Cpia de memria e execuo de kernel potencialmenteo oca executados em paraleloThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 118. Reviso CUDAaAvaliao de DesempenhocaTransferncia de Dados Host-DeviceeExecuo Concorrente Ass ca ncronaKernels Paralelos Concluso aRefernciaseOverlap Transferncia de Dados Host-DeviceeBoa prticaaConsidere utilizao de streams para possibilitar execuo paralela cacade elementos.Thrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 119. Reviso CUDAaAvaliao de DesempenhocaTransferncia de Dados Host-DeviceeExecuo Concorrente Ass ca ncronaKernels Paralelos Concluso aRefernciaseOverlap Transferncia de Dados Host-DeviceeBoa prticaaConsidere utilizao de streams para possibilitar execuo paralela cacade elementos.Boa prtica aConsidere transferncia assencrona de dados da CPU para GPUpara esconder latncia. eThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 120. Reviso CUDA a Avaliao de Desempenho ca Transferncia de Dados Host-Device e Execuo Concorrente Assca ncrona Kernels ParalelosConclusoa Referncias eAgenda1 Reviso CUDA a2 Avaliao de DesempenhocaMtricas de DesempenhoeTempo em CUDALargura de Banda em GPU3 Execuo Concorrente Ass cancronaTransferncia de Dados Host-DeviceeKernels Paralelos4 Concluso a5 Referncias e Thrsis T. P. Souza (USP) a Consideraoes de Desempenho em CUDAc 121. Reviso CUDA a Avaliao de Desempenho ca Transferncia de Dados Host-Device e Execuo Concorrente Assca ncrona Kernels ParalelosConclusoa Referncias eUtilizao do Device caEm compute capability 1.x, o unico modo de utilizar todos os multiprocessadores lanando um unico kernel com pelo ec menos o nmero de blocos igual ao de multiprocessadoresu Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 122. Reviso CUDA a Avaliao de Desempenho ca Transferncia de Dados Host-Device e Execuo Concorrente Assca ncrona Kernels ParalelosConclusoa Referncias eUtilizao do Device caEm compute capability 1.x, o unico modo de utilizar todos os multiprocessadores lanando um unico kernel com pelo ec menos o nmero de blocos igual ao de multiprocessadoresuCompute capability 2.x permite a execuo de mltiploscaukernels Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 123. Reviso CUDA a Avaliao de Desempenho ca Transferncia de Dados Host-Device e Execuo Concorrente Assca ncrona Kernels ParalelosConclusoa Referncias eUtilizao do Device caEm compute capability 1.x, o unico modo de utilizar todos os multiprocessadores lanando um unico kernel com pelo ec menos o nmero de blocos igual ao de multiprocessadoresuCompute capability 2.x permite a execuo de mltiploscaukernelsTal execuo feita utilizando CUDA Streams ca e Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 124. Reviso CUDA a Avaliao de Desempenho ca Transferncia de Dados Host-Device e Execuo Concorrente Assca ncrona Kernels ParalelosConclusoa Referncias eUtilizao do Device caEm compute capability 1.x, o unico modo de utilizar todos os multiprocessadores lanando um unico kernel com pelo ec menos o nmero de blocos igual ao de multiprocessadoresuCompute capability 2.x permite a execuo de mltiploscaukernelsTal execuo feita utilizando CUDA Streams ca eArquitetura Fermi permite at 16 kernels paralelose Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 125. Reviso CUDA a Avaliao de Desempenho ca Transferncia de Dados Host-Device e Execuo Concorrente Assca ncrona Kernels ParalelosConclusoa Referncias eExecuo Paralela de Kernels caExemplo: Execuo de dois kernels em paralelo.ca Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 126. Reviso CUDA a Avaliao de Desempenho ca Transferncia de Dados Host-Device e Execuo Concorrente Assca ncrona Kernels ParalelosConclusoa Referncias eExecuo Paralela de Kernels caExemplo: Execuo de dois kernels em paralelo.caPrecisamosCriar dois streams para explicitar inter-independncia e Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 127. Reviso CUDA a Avaliao de Desempenho ca Transferncia de Dados Host-Device e Execuo Concorrente Assca ncrona Kernels ParalelosConclusoa Referncias eExecuo Paralela de Kernels caExemplo: Execuo de dois kernels em paralelo.caPrecisamosCriar dois streams para explicitar inter-independncia eAlocar espao de memria em pinned-memory co Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 128. Reviso CUDA a Avaliao de Desempenho ca Transferncia de Dados Host-Device e Execuo Concorrente Assca ncrona Kernels ParalelosConclusoa Referncias eExecuo Paralela de Kernels caExemplo: Execuo de dois kernels em paralelo.caPrecisamosCriar dois streams para explicitar inter-independncia eAlocar espao de memria em pinned-memory coAssociar cpia de dados e execuo de kernels com seusocarespectivos streams Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 129. Reviso CUDA a Avaliao de Desempenho ca Transferncia de Dados Host-Device e Execuo Concorrente Assca ncrona Kernels ParalelosConclusoa Referncias eExecuo Paralela de Kernels caExemplo: Execuo de dois kernels em paralelo.caPrecisamosCriar dois streams para explicitar inter-independncia eAlocar espao de memria em pinned-memory coAssociar cpia de dados e execuo de kernels com seusocarespectivos streamsDesalocar memria utilizada o Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 130. Reviso CUDA a Avaliao de Desempenho ca Transferncia de Dados Host-Device e Execuo Concorrente Assca ncrona Kernels ParalelosConclusoa Referncias eExecuo Paralela de kernels ca Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 131. Reviso CUDAaAvaliao de DesempenhocaTransferncia de Dados Host-DeviceeExecuo Concorrente Ass ca ncronaKernels Paralelos Concluso aRefernciaseExecuo Paralela de kernels caUm Stream denido ao criar um objeto do tipo ecudaStreamThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 132. Reviso CUDAaAvaliao de DesempenhocaTransferncia de Dados Host-DeviceeExecuo Concorrente Ass ca ncronaKernels Paralelos Concluso aRefernciaseExecuo Paralela de kernels caUm Stream denido ao criar um objeto do tipo ecudaStreamCada stream passado como parmetro no lanamento dee ackernel e respectiva cpia de memria ooThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 133. Reviso CUDAaAvaliao de DesempenhocaTransferncia de Dados Host-DeviceeExecuo Concorrente Ass ca ncronaKernels Paralelos Concluso aRefernciaseExecuo Paralela de kernels caUm Stream denido ao criar um objeto do tipo ecudaStreamCada stream passado como parmetro no lanamento dee ackernel e respectiva cpia de memria ooUm vetor de oat hostPtr alocado em pinned memory. eThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 134. Reviso CUDA a Avaliao de Desempenho ca Transferncia de Dados Host-Device e Execuo Concorrente Assca ncrona Kernels ParalelosConclusoa Referncias eExecuo Paralela de kernels ca Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 135. Reviso CUDA a Avaliao de Desempenho ca Transferncia de Dados Host-Device e Execuo Concorrente Assca ncrona Kernels ParalelosConclusoa Referncias eExecuo Paralela de kernels caCada streamcopia sua poro do vetor de input hostPtr para o vetor cainputDevPtr em memria de deviceo Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 136. Reviso CUDAaAvaliao de DesempenhocaTransferncia de Dados Host-DeviceeExecuo Concorrente Ass ca ncronaKernels Paralelos Concluso aRefernciaseExecuo Paralela de kernels caCada streamcopia sua poro do vetor de input hostPtr para o vetor cainputDevPtr em memria de deviceoprocessa de modo concorrente inputDevPtr no device aochamar MyKernel()Thrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 137. Reviso CUDAaAvaliao de DesempenhocaTransferncia de Dados Host-DeviceeExecuo Concorrente Ass ca ncronaKernels Paralelos Concluso aRefernciaseExecuo Paralela de kernels caCada streamcopia sua poro do vetor de input hostPtr para o vetorcainputDevPtr em memria de deviceoprocessa de modo concorrente inputDevPtr no device aochamar MyKernel()copia o resultado outputDevPtr de volta para a mesmaporo de hostPtr caThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 138. Reviso CUDA a Avaliao de Desempenho ca Transferncia de Dados Host-Device e Execuo Concorrente Assca ncrona Kernels ParalelosConclusoa Referncias eExecuo Paralela de kernels caCada streamcopia sua poro do vetor de input hostPtr para o vetorcainputDevPtr em memria de deviceoprocessa de modo concorrente inputDevPtr no device aochamar MyKernel()copia o resultado outputDevPtr de volta para a mesmaporo de hostPtr caAo nal, cada stream liberado com a chamada de ecudaStreamDestroy. Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 139. Reviso CUDA a Avaliao de Desempenho ca Transferncia de Dados Host-Device e Execuo Concorrente Assca ncrona Kernels ParalelosConclusoa Referncias eOverlap Transferncia de Dados e Lanamento de Kernele cExemplo: Diviso de cpia e execuo de kernel em n passos para a o caesconder latncia.e Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 140. Reviso CUDAaAvaliao de DesempenhocaTransferncia de Dados Host-DeviceeExecuo Concorrente Ass ca ncronaKernels Paralelos Concluso aRefernciaseOverlap Transferncia de Dados e Lanamento de Kernele cCpia e execuo sequenciais o caThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 141. Reviso CUDAaAvaliao de DesempenhocaTransferncia de Dados Host-DeviceeExecuo Concorrente Ass ca ncronaKernels Paralelos Concluso aRefernciaseOverlap Transferncia de Dados e Lanamento de Kernele cCpia e execuo sequenciais o caCpia e execuo paralelas o caThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 142. Reviso CUDA a Avaliao de Desempenho ca Transferncia de Dados Host-Device e Execuo Concorrente Assca ncrona Kernels ParalelosConclusoa Referncias eOverlap Transferncia de Dados e Lanamento de Kernele cFigura: (I) Execuo e cpia sequenciais; (II) Execuo e cpia paralelos em ca o ca oCompute Capability 1.x; (III) Execuo e cpia paralelos em Compute Capability 2.x; ca o Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 143. Reviso CUDA a Avaliao de Desempenho ca Execuo Concorrente Assca ncronaConclusoa Referncias eAgenda1 Reviso CUDA a2 Avaliao de DesempenhocaMtricas de DesempenhoeTempo em CUDALargura de Banda em GPU3 Execuo Concorrente Ass cancronaTransferncia de Dados Host-DeviceeKernels Paralelos4 Concluso a5 Referncias e Thrsis T. P. Souza (USP) a Consideraoes de Desempenho em CUDAc 144. Reviso CUDA a Avaliao de Desempenho ca Execuo Concorrente Assca ncronaConclusoa Referncias eMtricas de Desempenho e speedup Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 145. Reviso CUDA a Avaliao de Desempenho ca Execuo Concorrente Assca ncronaConclusoa Referncias eMtricas de Desempenho e speedup eciency Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 146. Reviso CUDA a Avaliao de Desempenho ca Execuo Concorrente Assca ncronaConclusoa Referncias eMtricas de Desempenho e speedup eciency scalability Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 147. Reviso CUDA a Avaliao de Desempenho ca Execuo Concorrente Assca ncronaConclusoa Referncias eMtricas de Desempenho e speedup eciency scalability sustained FLOPS rates Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 148. Reviso CUDAaAvaliao de DesempenhocaExecuo Concorrente Ass ca ncrona Concluso aRefernciaseMtricas de Desempenho espeedupeciencyscalabilitysustained FLOPS ratesCuidado com falcias ao contruir mtricas mirabulantes de aedesempenho.Thrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 149. Reviso CUDAaAvaliao de DesempenhocaExecuo Concorrente Ass ca ncrona Concluso aRefernciaseMtricas de Desempenho espeedupeciencyscalabilitysustained FLOPS ratesCuidado com falcias ao contruir mtricas mirabulantes de aedesempenho.Boas prticas aPara maximizar desempenho, antes de mais nada, busqueformas de paralelizar o cdigo sequencial. oThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 150. Reviso CUDAaAvaliao de DesempenhocaExecuo Concorrente Ass ca ncrona Concluso aRefernciaseMtricas de Desempenho espeedupeciencyscalabilitysustained FLOPS ratesCuidado com falcias ao contruir mtricas mirabulantes de aedesempenho.Boas prticas aPara maximizar desempenho, antes de mais nada, busqueformas de paralelizar o cdigo sequencial. oUtilize o tempo de execuo como medida de desempenho.caThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 151. Reviso CUDAaAvaliao de DesempenhocaExecuo Concorrente Ass ca ncrona Concluso aRefernciaseAvaliao de DesempenhocaPara medir tempo em CUDAThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 152. Reviso CUDAaAvaliao de DesempenhocaExecuo Concorrente Ass ca ncrona Concluso aRefernciaseAvaliao de DesempenhocaPara medir tempo em CUDA utilizao de GPU EventscaThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 153. Reviso CUDAaAvaliao de DesempenhocaExecuo Concorrente Ass ca ncrona Concluso aRefernciaseAvaliao de DesempenhocaPara medir tempo em CUDA utilizao de GPU Eventsca pode-se utilizar CPU timer. Porm, com cuidado eme sincronizao de threads. caThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 154. Reviso CUDA a Avaliao de Desempenho ca Execuo Concorrente Assca ncronaConclusoa Referncias eAvaliao de DesempenhocaPara medir tempo em CUDAutilizao de GPU Events capode-se utilizar CPU timer. Porm, com cuidado em esincronizao de threads.caTransferncia host-device gargalo em GPU.e e Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 155. Reviso CUDA a Avaliao de Desempenho ca Execuo Concorrente Assca ncronaConclusoa Referncias eAvaliao de DesempenhocaPara medir tempo em CUDAutilizao de GPU Events capode-se utilizar CPU timer. Porm, com cuidado em esincronizao de threads.caTransferncia host-device gargalo em GPU.e eBoa prticaaMinimizar transferncia de dados entre Host e Device.e Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 156. Reviso CUDA a Avaliao de Desempenho ca Execuo Concorrente Assca ncronaConclusoa Referncias eExecuo concorrente ass ca ncrona Streams Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 157. Reviso CUDA a Avaliao de Desempenho ca Execuo Concorrente Assca ncronaConclusoa Referncias eExecuo concorrente ass ca ncrona Streams Pinned-memory Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 158. Reviso CUDAaAvaliao de DesempenhocaExecuo Concorrente Ass ca ncrona Concluso aRefernciaseExecuo concorrente ass ca ncrona Streams Pinned-memory Overlap entre transferncia de dados e computao e caThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 159. Reviso CUDAaAvaliao de DesempenhocaExecuo Concorrente Ass ca ncrona Concluso aRefernciaseExecuo concorrente ass ca ncrona Streams Pinned-memory Overlap entre transferncia de dados e computao e ca Kernels paralelosThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co 160. Reviso CUDA a Avaliao de Desempenho ca Execuo Concorrente Assca ncronaConclusoa Referncias eExecuo concorrente ass ca ncronaStreamsPinned-memoryOverlap entre transferncia de dados e computaoe caKernels paralelosBoas prticas aConsidere o uso de Pinned Memory ao transferir dados daCPU para GPU. Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 161. Reviso CUDA a Avaliao de Desempenho ca Execuo Concorrente Assca ncronaConclusoa Referncias eExecuo concorrente ass ca ncronaStreamsPinned-memoryOverlap entre transferncia de dados e computaoe caKernels paralelosBoas prticas aConsidere o uso de Pinned Memory ao transferir dados daCPU para GPU.Considere utilizao de streams para possibilitar execuo cacaparalela de elementos. Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 162. Reviso CUDA a Avaliao de Desempenho ca Execuo Concorrente Assca ncronaConclusoa Referncias eExecuo concorrente ass ca ncronaStreamsPinned-memoryOverlap entre transferncia de dados e computaoe caKernels paralelosBoas prticas aConsidere o uso de Pinned Memory ao transferir dados daCPU para GPU.Considere utilizao de streams para possibilitar execuo cacaparalela de elementos.Considere transferncia assencrona de dados da CPU paraGPU para esconder latncia. e Thrsis T. P. Souza (USP) a Consideraes de Desempenho em CUDAco 163. Reviso CUDA a Avaliao de Desempenho ca Execuo Concorrente Assca ncronaConclusoa Referncias eAgenda1 Reviso CUDA a2 Avaliao de DesempenhocaMtricas de DesempenhoeTempo em CUDALargura de Banda em GPU3 Execuo Concorrente Ass cancronaTransferncia de Dados Host-DeviceeKernels Paralelos4 Concluso a5 Referncias e Thrsis T. P. Souza (USP) a Consideraoes de Desempenho em CUDAc 164. Reviso CUDA a Avaliao de Desempenho ca Execuo Concorrente Assca ncronaConclusoa Referncias eReferncias e D. DeWitt, J. Gray (1992) Parallel Database Systems: the future of high performance database systems. Commun. Assoc. Comput. Mach. 35(6), 85-98. Fernando Pereira (2011) Otimizaoes de Cdigo em CUDA. Mini-curso LNCC.co John L. Hennessy, David A. Patterson, James R. Larus (2004) Computer Organization and Design, 2th. Michael Boyer (2011) LAVA Lab CUDA Support. http://www.cs.virginia.edu/~mwb7w/cuda_support/ em 23/04/2011. NVIDIA (2010) NVIDIA CUDA C Programming Guide. NVIDIA, Version 3.2, 11/9/2010. NVIDIA (2010) NVIDIA CUDA C Best Practices Guide. Version 3.2, 20/8/2010. Shane Ryoo, Christopher I. Rodrigues, Sara S. Baghsorkhi, Sam S. Stone, David B. Kirk, and Wen mei W. Hwu (2008) Optimization principles and application performance evaluation of a multithreaded GPU using CUDA. In PPoPP, pages 73-82. ACM, 2008Thrsis T. P. Souza (USP)aConsideraes de Desempenho em CUDAco 165. Reviso CUDAaAvaliao de DesempenhocaExecuo Concorrente Ass ca ncrona Concluso aRefernciaseDownload ApresentaocaApresentao dispon em: cavelgpubrasil.com/seminariosThrsis T. P. Souza (USP)a Consideraes de Desempenho em CUDA co