
Sabemos que GPU graphic processing units podem otimizar e aumentar a performance diversos sistemas inicialmente desenvolvido para o mercado de jogos estes dispositivos podem alavancar sistemas em diversas áreas como na área de Big data, processamento de imagens, processamento de vídeos uma das suas principais características é o fato de poder executar operações em matrizes paralelamente que significa que a GPU é capaz de fazer grande quantidade de cálculos em paralelo o quê resulta em uma resposta muito mais rápida que o processamento de CPU é um dispositivo de propósito geral
Este artigo é uma tentativa de mensurar o quão mais rápido uma GPU pode performar quando se comparado com o CPU para este experimento iremos comparar o tempo de execução de um sistema usando GPU contra um sistema usando CPU na conversão de imagens especificamente estaremos convertendo imagens que inicialmente estarão nos espaço de cor RGB para o espaço de cor yuv
Experimentos
Realizamos experimentos com duas imagens. A primeira imagem foi uma imagem em ppm das dimensões 1000x700 e tamanho do arquivo 2,1 MB. A segunda imagem tem 10000x7000 de dimensão e um tamanho de 201 MB.
Hardware Utilzado
Todos os experimentos são executados em CPU Intel com 16 núcleos de 2400 MHz e com GPU PASCAL da arquitetura NVIDIA TITAN X. Para medir o tempo gasto, estamos usando o timer criado pela função “sdkCreateTimer ()” presente na biblioteca CUDA. também estamos considerando o tempo total gasto na conversão, incluindo o tempo para transferir a imagem para a memória do dispositivo e para transferir os resultados do dispositivo para o host.
Após cada transformação, estamos verificando se a imagem de saída está correta e com pequenas perdas de conversão.
Resultados
* Tempo em milisegundos
Conclusão
Os tempos de conversão da GPU são mais rápidos que os tempos de processamento da CPU, especialmente para imagens grandes.
O "overhead"de comunicação quando transferindo as imagens para memória da GPU é considerável, para algumas imagens pequenas, pode até causer que o desempenho de processamento em GPU seja pior que processar em CPU
Outros experimentos foram executados como por exemplo como o número de threads pode afetar o desempenho de processamento da imagem na GPU o o artigo na íntegra está disponivel no link abaixo o código utilizado nos experimentos também foi disponibilizado
Espero que este conteúdo tenha te ajudado um forte abraço!