DOI QR코드

DOI QR Code

Parallel Cell-Connectivity Information Extraction Algorithm for Ray-casting on Unstructured Grid Data

비정렬 격자에 대한 광선 투사를 위한 셀 사이 연결정보 추출 병렬처리 알고리즘

  • Lee, Jihun (KOREATECH (Korea University of Technology and Education)) ;
  • Kim, Duksu (KOREATECH (Korea University of Technology and Education))
  • 이지훈 (한국기술교육대학교 컴퓨터공학부) ;
  • 김덕수 (한국기술교육대학교 컴퓨터공학부)
  • Received : 2019.12.13
  • Accepted : 2020.02.28
  • Published : 2020.03.01

Abstract

We present a novel multi-core CPU based parallel algorithm for the cell-connectivity information extraction algorithm, which is one of the preprocessing steps for volume rendering of unstructured grid data. We first check the synchronization issues when parallelizing the prior serial algorithm naively. Then, we propose a 3-step parallel algorithm that achieves high parallelization efficiency by removing synchronization in each step. Also, our 3-step algorithm improves the cache utilization efficiency by increasing the spatial locality for the duplicated triangle test process, which is the core operation of building cell-connectivity information. We further improve the efficiency of our parallel algorithm by employing a memory pool for each thread. To check the benefit of our approach, we implemented our method on a system consisting of two octa-core CPUs and measured the performance. As a result, our method shows continuous performance improvement as we add threads. Also, it achieves up to 82.9 times higher performance compared with the prior serial algorithm when we use thirty-two threads (sixteen physical cores). These results demonstrate the high parallelization efficiency and high cache utilization efficiency of our method. Also, it validates the suitability of our algorithm for large-scale unstructured data.

본 논문은 비정렬 격자에 대한 광선투사 수행의 전처리 과정 중 하나인 셀 사이 연결정보 추출에 대한 멀티코어 CPU 기반 병렬처리 알고리즘을 제안한다. 본 연구는 기존의 직렬처리 알고리즘을 단순히 병렬화하였을 때 발생하는 동기화 문제를 확인하고, 이를 해결할 수 있는 3-단계 병렬처리 알고리즘을 제안한다. 제안하는 알고리즘은 각 단계 내에서의 스레드 간 동기화를 제거함으로서 병렬처리 효율을 높인다. 또한, 연결정보 추출 알고리즘의 핵심 연산인, 삼각형 중복 검사 과정의 메모리 접근에 대한 공간적 지역성을 높이고 캐시 활용 효율을 향상시킨다. 본 연구는 나아가, 스레드 마다 자체 메모리 풀을 사용하게 함으로서 병렬처리 효율을 더욱 높인다. 본 연구의 효용성을 확인하기 위해, 제안하는 알고리즘을 두 개의 옥타코어 CPU를 가지는 시스템에 구현하고 세 개의 비정렬 격자 데이터에 적용하였다. 그 결과, 제안하는 병렬처리 알고리즘은 스레드 수 증가에 따라 지속적으로 성능 향상을 보여주었다. 또한, 32개 스레드(물리코어 16개)를 사용하여 기존 직렬처리 알고리즘 대비 최대 82.9배 높은 성능을 보여주었다. 이는 제안하는 알고리즘의 높은 병렬처리 확장성 및 캐시 활용 효율 개선 효과를 증명하며, 대용량 비정렬 격자 처리에 대한 적합성을 보여주는 결과다.

Keywords

References

  1. K. Brodlie, J. Wood, "Recent advances in volume visualization", Computer Graphics Forum, Vol. 20, No. 2, pp. 125-148, 2001. https://doi.org/10.1111/1467-8659.00484
  2. M. Garrity. "Raytracing irregular volume data", Computer Graphics, pp. 35-40, 1990.
  3. P. Bunyk, A. Kaufman, C. Silva. "Simple, fast, and robust ray-casting of irregular grids", Scientific Visualization Conference (dagstuhl '97), pp.30-30, 1999.
  4. Ribeiro S., Maximo A., Bentes C., Oliveira A., Farias R., "Memory-Aware And Efficient Ray-Casting Algorithm", Proceedings Of The Xx Brazilian Symposium On Computer Graphics And Imge Processing, pp. 147-154, 2007
  5. Andre Maximo, Saulo Ribeiro, Cristiana Bentes, Antonio AF Oliveira, and Ricardo C Farias, "Memory efficient GPU-based ray casting for unstructured volume rendering", Volume Graphics, pp. 155-162, 2008
  6. Duksu Kim, "Memory Efficient Parallel ray-casting Algorithm for Unstructured Grid Volume Rendering on Multi-core CPUs," Journal of KIISE, Vol. 43, No. 3, pp. 304-313, 2016 https://doi.org/10.5626/JOK.2016.43.3.304
  7. Will Schroeder, Kenneth M. Martin, and William E. Lorensen, "The visualization toolkit (4th ed.): An object-oriented approach to 3D graphics", Prentice-Hall, Inc., 2006.
  8. Wylie B., Moreland K., Fisk L. A., Crossno P., "Tetrahedral projection using vertex shaders", Proceedings of the IEEE Symposium on Volume visualization and graphics, pp. 7-12, 2002.
  9. Marroquim R., Maximo A., Farias R., Esperanca C., "GPU-Based Cell Projection for Interactive Volume Rendering", Proceedings of the XIX Brazilian Symposium on Computer Graphics and Image Processing, pp. 147-154. 2006.
  10. Weiler M., Kraus M., Merz M., Ertlt, "Hardware-based view-independent cell projection", IEEE Transactions on Visualization and Computer Graphics, Vol. 9, No. 2, pp. 163-175, 2003. https://doi.org/10.1109/TVCG.2003.1196004
  11. Callahan S. P., Ikits M., Comba J. L., Silva C. T., "Hardware-assisted visibility sorting for unstructured volume rendering", IEEE Transactions on Visualization and Computer Graphics, Vol. 11, No. 3, pp. 285-295, 2005. https://doi.org/10.1109/TVCG.2005.46
  12. Farias, R., Mitchell, J. S., Silva, C. T., "ZSWEEP: An efficient and exact projection algorithm for unstructured volume rendering", Proceedings of the IEEE symposium on Volume visualization, pp. 91-99, 2000.
  13. Espinha R., Celes W., "High-quality hardware-based ray-casting volume rendering using partial pre-integration", Proceedings of the XVIII Brazilian Symposium on Computer Graphics and Image Processing, pp. 273, 2005.
  14. Bernardon F. F., Pagot C. A., Ao Luiz Dihl Comba J., Silva C. T., "GPU-based Tiled ray-casting using Depth Peeling", Journal of Graphics Tools, Vol. 11, No. 3, pp. 23-29, 2006.
  15. NVIDIA, CUDA programming guide 9.2, 2018.
  16. Gu, Gibeom, and Duksu Kim. "Accurate and Memory-Efficient GPU Ray-Casting Algorithm for Volume Rendering Unstructured Grid Data", EuroVis 2019 - Posters, 2019
  17. Walls, Keith G. "Method for improving the performance of dynamic memory allocation by removing small memory fragments from the memory pool" U.S. Patent No. 5,675,790. 7 Oct. 1997.
  18. L. Dagum and R. Menon, "OpenMP: an industry standard API for shared-memory programming", IEEE Computational Sci. and Engineering, Vol. 5, pp. 46-55, 1998 https://doi.org/10.1109/99.660313