CUDA - Programação Paralela

5
Trabalho 2 Aluno: José Bonifacio da Silva Júnior Professor: Marco Túlio Chella

description

Trabalho sobre ocupância

Transcript of CUDA - Programação Paralela

Page 1: CUDA - Programação Paralela

Trabalho 2

Aluno: José Bonifacio da Silva JúniorProfessor: Marco Túlio Chella

Page 2: CUDA - Programação Paralela

Histórico

• Antes do CUDA 6.5...• Cálculo da ocupância era complicado.• Leva em consideração as capacidades da GPU.• Uso da planilha calculadora de ocupância em

vez da implementação.

Page 3: CUDA - Programação Paralela

Cenário atual• Cuda 6.5 oferece funções em tempo de execução para calcular a

ocupância.• A API núcleo da calculadora de ocupância:

cudaOccupancyMaxActiveBlocksPerMultiprocessor.• Prediz a ocupância em termos do tamanho do bloco e uso de

memória compartilhada de um kernel.• Multiplicando-a pelo número de warps por bloco produz o número de

warps por multiprocessador simultâneos; Além disso dividindo os warps simultâneos pelo máximo de warps por multiprocessador temos a ocupancia como uma porcentagem.

• Fonte: http://devblogs.nvidia.com/parallelforall/cuda-pro-tip-occupancy-api-simplifies-launch-configuration/

Page 4: CUDA - Programação Paralela

• Documentação do CUDA 7.5Assinatura:CUresult cuOccupancyMaxActiveBlocksPerMultiprocessor ( int* numBlocks, CUfunction func, int blockSize, size_t dynamicSMemSize )

• Retorna a ocupância de uma função.

• Parâmetros• numBlocks- Ocupância retornada;• func- Kernel para qual a ocupância será calculada;• blockSize- Tamanho do bloco o qual o kernel está tentado ser lançado;• dynamicSMemSize- Memória dinâmica compartilhada por bloco usada, em bytes.

Fonte: http://docs.nvidia.com/cuda/cuda-driver-api/index.html#ixzz3oDWa7dlZ

Page 5: CUDA - Programação Paralela

• Além disso disponibiliza as APIs cudaOccupancyMaxPotentialBlockSize e cudaOccupancyMaxPotentialBlockSizeVvariableSMem para calcular dinamicamente tamanhos de blocos que atinjam teoricamente uma ocupância máxima.

• Fonte: http://devblogs.nvidia.com/parallelforall/cuda-pro-tip-occupancy-api-simplifies-launch-configuration/