DOI QR코드

DOI QR Code

비정렬 격자 볼륨 렌더링을 위한 다중코어 CPU기반 메모리 효율적 광선 투사 병렬 알고리즘

Memory Efficient Parallel Ray Casting Algorithm for Unstructured Grid Volume Rendering on Multi-core CPUs

  • 김덕수 (한국과학기술정보연구원 가시화기술개발실)
  • 심사 : 2015.11.04
  • 발행 : 2016.03.15

초록

본 논문은 비정렬 격자 볼륨 렌더링을 위한 다중 코어 CPU기반의 메모리 효율적 광선 투사 병렬처리 알고리즘을 제안한다. 본 연구는 Bunyk 광선 투사(ray casting) 알고리즘에 기반을 두며, Bunyk 알고리즘의 높은 메모리 소모량 문제를 개선하기 위해 스레드별로 고정된 크기의 지역 버퍼를 할당한다. 지역 버퍼는 최근 방문된 면(face)의 정보를 저장하며, 이 정보는 다른 광선들에 의해 재사용되거나 다른 면의 정보로 대체된다. 지역 버퍼에 저장된 정보의 활용률을 높이기 위해 본 연구는 이미지 평면을 기반으로 일관성(coherency)이 높은 광선들을 하나의 광선 그룹으로 묶고, 생성된 광선 그룹들을 스레드들에게 분배한다. 각각의 스레드들은 할당 받은 광선 그룹들을 지역 버퍼를 활용하여 독립적으로 처리한다. 본 연구는 또한 지역 버퍼 활용률을 더욱 높이기 위해 면의 번호에 기반을 둔 해시 함수를 제안한다. 본 연구의 효용성을 확인하기 위해 제안하는 알고리즘을 서로 다른 크기의 비정렬 격자에 적용하였으며, 면 정보 저장을 위해 Bunyk 알고리즘 대비 약 6%의 메모리만 사용하여 정확한 볼륨 렌더링을 수행할 수 있었다. 이처럼 훨씬 적은 메모리 사용에도 불구하고 Bunyk 알고리즘과 대등한 성능을 보여주었으며, 대용량 데이터에 대해서는 최대 22% 높은 성능을 보여주었다. 이는 본 연구의 효용성 및 대용량 데이터의 볼륨 렌더링에 대한 적합성을 증명하는 결과이다.

We present a novel memory-efficient parallel ray casting algorithm for unstructured grid volume rendering on multi-core CPUs. Our method is based on the Bunyk ray casting algorithm. To solve the high memory overhead problem of the Bunyk algorithm, we allocate a fixed size local buffer for each thread and the local buffers contain information of recently visited faces. The stored information is used by other rays or replaced by other face's information. To improve the utilization of local buffers, we propose an image-plane based ray grouping algorithm that makes ray groups have high coherency. The ray groups are then distributed to computing threads and each thread processes the given groups independently. We also propose a novel hash function that uses the index of faces as keys for calculating the buffer index each face will use to store the information. To see the benefits of our method, we applied it to three unstructured grid datasets with different sizes and measured the performance. We found that our method requires just 6% of the memory space compared with the Bunyk algorithm for storing face information. Also it shows compatible performance with the Bunyk algorithm even though it uses less memory. In addition, our method achieves up to 22% higher performance for a large-scale unstructured grid dataset with less memory than Bunyk algorithm. These results show the robustness and efficiency of our method and it demonstrates that our method is suitable to volume rendering for a large-scale unstructured grid dataset.

키워드

과제정보

연구 과제번호 : 기관고유사업비

연구 과제 주관 기관 : 한국과학기술정보연구원

참고문헌

  1. Brodlie, K., Wood, J., "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. P. Bunyk, A. Kaufman, C. Silva, "Simple, fast, and robust ray casting of irregular grids," Scientific Visualization, 1999.
  3. Ribeiro S., Maximo A., Bentes C., Oliveira A., Farias R., "Memory-Aware And Efficient Ray-Casting Algorithm," Proc. Of The Xx Brazilian Symposium On Computer Graphics And Image Processing, pp. 147-154, 2007.
  4. Maximo, A., Ribeiro, S., Bentes, C., Oliveira, A. A., Farias, R. C., "Memory Efficient GPU-Based Ray Casting for Unstructured Volume Rendering," Volume Graphics, pp. 155-162, 2008.
  5. M. Garrity, "Raytracing irregular volume data," Computer Graphics, pp. 35-40, 1990.
  6. S. Uselton, "Volume rendering for computational fluid dynamics: Initial results," Tech Report RNR-91-026, Nasa Ames Research Center, 1991.
  7. P. Shirley and A. Tuchman, "A polygonal approximation to direct scalar volume rendering," Computer Graphics, pp. 63-70, 1990.
  8. Wylie B., Moreland K., Fisk L. A., Crossno P., "Tetrahedral projection using vertex shaders," Proc. 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," Proc. of the XIX Brazilian Symposium on Computer Graphics and Image Processing, pp. 147-154. 2006.
  10. Weiler M., Kraus M., Merz M., Ertlt, "Hardwarebased 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," Proc. of the IEEE symposium on Volume visualization, pp. 91-99, 2000.
  13. Aline Pina, Cristiana Bentes, Ricardo Farias, "Memory efficient and robust software implementation of the raycast algorithm," The 15th Int. Conf. in Central Europe on Computer Graphics, Visualization and Computer Vision, 2007.
  14. Weiler M., Kraus M., Merz M., Ertl T., "Hardware- Based Ray Casting for Tetrahedral Meshes," Proc. of the 14th IEEE conference on Visualization, pp. 333-340, 2003.
  15. Espinha R., Celes W., "High-quality hardwarebased ray-casting volume rendering using partial preintegration," Proc. of the XVIII Brazilian Symposium on Computer Graphics and Image Processing, pp. 273, 2005.
  16. 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.
  17. A. Grama, A. Gupta, G. Karypis, V. Kumar, Introduction to Parallel Computing, Addison-Wesley, 2003.
  18. Nickolls, J., Buck, I., Garland, M., Skadron, K, "Scalable parallel programming with CUDA," Queue, Vol. 6, No. 2, pp. 40-53, 2008. https://doi.org/10.1145/1365490.1365500
  19. Schroeder, W. J., Lorensen, B., Martin, K., The visualization toolkit, Kitware, 2006.
  20. Vitter, Jeffrey Scott, "External memory algorithms and data structures: Dealing with massive data," ACM Computing surveys (CsUR), Vol. 33, No. 2, pp. 209-271, 2001. https://doi.org/10.1145/384192.384193