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