Otimização do insight segmentation and registration toolkit (ITK) utilizando streaming SIMD extensions (SSE) e OPENMP
Resumo
Resumo: O processamento de imagens alcançou uma importância muito grande em um mundo que depende amplamente de estímulos visuais. Partindo desta premissa, implementações eficientes de algoritmos de processamento de imagens são necessárias para aumentar a produtividade em diversas áreas, como na medicina, indústria, e entretenimento. Para tal, este trabalho estudou técnicas de otimização Multiple Instruction, Multiple Data (MIMD) com a utilização de Open Multi-Processing (OpenMP), e Single Instruction, Multiple Data (SIMD), com a utilização de Streaming SIMD Extensions (SSE), e implementou tais técnicas em algoritmos de convolução bem como no algoritmo de detecção de bordas Canny, avaliando o desempenho de ambos. Além disso, foram propostas alterações à biblioteca Insight Segmentation and Registration Toolkit (ITK) para que outros filtros possam beneficiar-se das otimizações estudadas. Obteve-se ganho de desempenho de até 7 vezes nas implementações dos algoritmos de convolução, e de 16 vezes no algoritmo de detecção de bordas Canny. Conclui-se que ainda é possível aumentar o ganho de desempenho otimizando a implementação de algoritmos para serem executados em processadores existentes, com o custo de aumento da complexidade de codificação, e diminuição da portabilidade de código. Abstract: The image processing has achieved great importance in a world that depends largely on visual stimuli. On this assumption, efficient image processing algorithms implementations are needed to increase productivity in various fields such as medicine, industry and entertainment. For that, this work studied MIMD optimization techniques with the use of OpenMP and SIMD, with the use of SSE, and implemented these techniques in convolution algorithms, and Canny edge detection algorithm, evaluating their performance. In addition, was proposed changes to the ITK library so that others filters may benefit from the studied optimizations. Was obtained a performance gain up to 7 times in the convolution algorithms implementations and 16 times in the Canny edge detection algorithm. It was concluded that still can achieve performance gains by optimizing algorithms to run on existing processors, with the cost of increased complexity of coding, and reduction of code portability.
Collections
- Teses & Dissertações [10471]