Um Sistema Heterogêneo Embarcado para Aceleração de Interseção Raio-Triângulo

  • Adrianno Sampaio UERJ
  • Alexandre Sena IME, UERJ
  • Alexandre Nery Universidade de Brasilia

Abstract


Image rendering is an important research area in computer graphics and is applicable to many situations such as games, architectural visualization, cinema, among others. Nowadays, rendering of realistic images is one of the main challenges, especially for real time applications, where the challenge lies in balancing between image fidelity and computational performance. The RayTracing method has been one of the main algorithms used for realistic imaging due to its accurate modeling of optical phenomena, but its disadvantage is its high computational cost. Several algorithms and hardware platforms have been proposed and used so far to improve the performance of this algorithm, but solutions dependent on many-core architectures have a high power consumption despite the performance boost. Thus, the aim of this paper is to propose a heterogeneous CPU-FPGA system on a low-energy and low-cost platform, and to analyze its performance, scalability and load balancing between computational resources in rendering different image sizes.

References

Collinson, S. and Sinnen, O. (2017). Caching architecture for flexible fpga ray tracing platform. Journal of Parallel and Distributed Computing, 104:61–72.

Deng, Y., Ni, Y., Li, Z., Mu, S., and Zhang, W. (2017). Toward real-time ray tracing: A survey on hardware acceleration and microarchitecture techniques. ACM Computing Surveys (CSUR), 50(4):58.

Digilent (2017). PYNQ-Z1 Board Reference Manual. Digilent Inc.

Hurley, J. (2005). Ray tracing goes mainstream. Intel Technology Journal, 9(2).

Jakob, W. (2016). pybind11 — seamless operability between c++11 and python. https://github.com/pybind/pybind11. Online, Acessado: 10-08-2019.

Malcheva, R. and Yunis, M. (2014). An acceleration of fpga-based ray tracer. European Scientific Journal, ESJ, 10(7).

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 raytracing. In 2010 First IEEE Latin American Symposium on Circuits and Systems (LASCAS), pages 77–80.

Park, W. C., ho Nah, J., Park, J. S., Lee, K.-H., Kim, D.-S., Kim, S.-D., Park, J. H., Kim, C.-G., Kang, Y.-S., Yang, S.-B., and Han, T.-D. (2008). An fpga implementation of whitted-style ray tracing accelerator. In 2008 IEEE Symposium on Interactive Ray Tracing, pages 187–187.

Sampaio, A. (2019). Heterogeneous ray-tracing pynq. https://github.com/adrianno3259/heterogeneous-raytracing-pynq. Online, Acessado: 22-09-2019.

Schmittler, J., Woop, S., Wagner, D., Paul, W. J., and Slusallek, P. (2004). Realtime ray tracing of dynamic scenes on an fpga chip. In Proceedings of the ACM SIGGRAPH/EUROGRAPHICS Conference on Graphics Hardware, HWWS ’04, pages 95–106, New York, NY, USA. ACM.

Todman, T. and Luk, W. (2001). Reconfigurable designs for ray tracing. In null, pages 300–301. IEEE.

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

Woop, S., Schmittler, J., and Slusallek, P. (2005). Rpu: a programmable ray processing unit for realtime ray tracing. In ACM Transactions on Graphics (TOG), volume 24, pages 434–444. ACM.

Xilinx. Pynq - python productivity for zynq. https://github.com/Xilinx/PYNQ. Online, Acessado: 10-08-2019.

Xilinx (2017). Vivado Design Suite User Guide: High Level Syntesis. Xilinx.
Published
2019-11-08
SAMPAIO, Adrianno; SENA, Alexandre; NERY, Alexandre. Um Sistema Heterogêneo Embarcado para Aceleração de Interseção Raio-Triângulo. In: SYMPOSIUM ON HIGH PERFORMANCE COMPUTING SYSTEMS (SSCAD), 20. , 2019, Campo Grande. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2019 . p. 394-405. DOI: https://doi.org/10.5753/wscad.2019.8685.