Uma Vetorização Eficiente para o Algoritmo de Interseção Raio-Triângulo nas Arquiteturas Multicore

  • Alexandre Sena UERJ
  • Adrianno Sampaio UERJ
  • Aline Nascimento UFF
  • Alexandre Nery UnB

Resumo


O cálculo de interseção raio-triângulo é a parte mais custosa do algoritmo de Ray Tracing, que é uma das técnicas mais utilizadas para síntese de imagens 3D por renderizar cenas muito próximas da realidade. Assim, o objetivo deste trabalho é propor e implementar uma vetorização eficiente para, em conjunto com o paralelismo, explorar o potencial das arquiteturas multicore. Ao invés de uma abordagem simplificada não escalável, a estratégia proposta calcula a interseção de um raio com vários triângulos da cena ao mesmo tempo. Resultados experimentais mostraram que a versão vetorizada paralela aproveitou as instruções vetorizadas e os múltiplos núcleos disponíveis conseguindo um desempenho até 257 vezes melhor do que a versão sequencial otimizada.

Referências

Diaz, J., Mu˜noz-Caro, C., and Ni˜no, A. (2012). A survey of parallel programming models and tools in the multi and many-core era. IEEE Transactions on Parallel and Distributed Systems, 23(8):1369–1386.

Glassner, A. S. (1989). An introduction to ray tracing. Elsevier.

Havel, J. and Herout, A. (2010). Yet faster ray-triangle intersection (using sse4). IEEE Transactions on Visualization and Computer Graphics, 16(3):434–438.

Mark-Sabahi (2012). A guide to auto-vectorization with intel c++ compilers. Technical report, Intel.

Möller, T. and Trumbore, B. (2005). Fast, minimum storage ray/triangle intersection. In ACM SIGGRAPH 2005 Courses, page 7. ACM.

Nery, A. S., Nedjah, N., and França, F. M. G. (2010). A parallel architecture for ray- tracing. In 2010 IEEE Latin American Symp. on Circuits and Systems, pages 77–80.

Okmen, Y. (2011). SIMD Floating Point Extension for Ray Tracing. Master's thesis, Delft University, The Netherlands.

Sena, A. C., Nascimento, A., Vasconcelos, C., and Marzulo, L. A. J. (2017). Execução eciente do algoritmo de leilão nas novas arquiteturas multicore. Simpósio em Sistemas Computacionais de Alto Desempenho (WSCAD), 18(1/2017).

van der Pas, R., S. E. S. E. T. C. (2017). Using OpenMP – The Next Step:Afnity, Accele- rators, Tasking, and SIMD. The MIT Press.

Wald, I., Benthin, C., and Boulos, S. (2008). Getting rid of packets - efcient simd single- ray traversal using multi-branching bvhs -. In 2008 IEEE Symposium on Interactive Ray Tracing, pages 49–57.

Wende, F., Noack, M., Steinke, T., Klemm, M., Newburn, C. J., and Zitzlsberger, G. (2016). Portable simd performance with openmp* 4.x compiler directives. In Proc. of the Inter. European Conference on Parallel Processing, pages 264–277.

Whitted, T. (1980). An improved illumination model for shaded display. Commun. ACM, 23(6):343–349.

Woop, S., Brunvand, E., and Slusallek, P. (2006). Estimating performance of a ray-tracing asic design. In 2006 IEEE Symposium on Interactive Ray Tracing, pages 7–14.
Publicado
21/10/2020
SENA, Alexandre; SAMPAIO, Adrianno; NASCIMENTO, Aline; NERY, Alexandre. Uma Vetorização Eficiente para o Algoritmo de Interseção Raio-Triângulo nas Arquiteturas Multicore. In: SIMPÓSIO EM SISTEMAS COMPUTACIONAIS DE ALTO DESEMPENHO (SSCAD), 21. , 2020, Online. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2020 . p. 95-106. DOI: https://doi.org/10.5753/wscad.2020.14061.