uhhyunjoo / paper-notes

이슈로 가볍게 남깁니다.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[T-VCG 2020] Accelerating Unstructured Mesh Point Location With RT Cores

uhhyunjoo opened this issue · comments

Abstract

  • 최근 Nvidia RTX GPUs 에서 사용 가능한 ray tracing 하드웨어를 사용해서, classical ray tracing 이외의 여러 문제들을 해결하는 기술을 제안한다.
  • 특히, 이러한 units 를 사용해서 both planar and bilinear faces 로 구성된 general unstructured elements 의 point location 를 가속화하는 방법을 설명한다.
  • 이러한 unstructured mesh point location 문제는 이전 GPU 아키텍쳐에서 accelerate 하기 어려웠다. 그러나, 이러한 queries 의 performance 는 많은 unstructured volume rendering 과 compute applications 에 중요하다.
  • CUDA reference method 를 시작으로, 본 논문에서는 세 가지 접근 방식 을 설명하고 평가한다.
  • 이 방식들은 these point queries 를 reformulate 해서, algorithmic complexity 를 theses new hardware ray tracing units 에 incrementally 하게 map 할 수 있는 방식들이다.
  • 각 variant 는 the simpler problem of point queries 를 a more complex one of ray queries 로 대체한다.
  • 초기의 variants 는 ray tracing cores 를 accelerated BVH traversal 을 위해 사용했다.
  • 그리고 subsequent variants 는 ray-triangle intersections 과 per-face metadata 를 point-in-element intersections 를 detect 하기 위해 사용했다. 해당 later variants 가 more algorihmically complex 함에도 불구하고, 이들은 hardware acceleration 덕분에 reference method 보다 상당히 빠르다.
  • Our approach 를 사용함으로써, 우리는 an unstructured volume renderer 의 performance 를 up to 4 for thetrahedral(정사면체) meshes 와 up to 15 for general bilinear elements meshes 까지 향상 시켰다. 이는 sota solutions 에 matching, or out-performing 하는 것이고, 동시에 robustness 와 ease-of-implementation 을 improving 하는 것이다.

1. Introduction

Even before the first programmable GPUs, researchers have been finding new ways to cleverly reformulate their algorithms to take advantage of specialized graphics hardware [25].
These graphics accelerators started as relatively simple devices that offloaded only certain parts of the rasterization pipeline, but have since evolved into massively parallel processors with a wide range of applications.
As hardware has progressed, it is easier, now more than ever, to use these GPUs for general computation.
However, GPUs still contain a significant amount of dedicated hardware resources that offer the potential to accelerate workloads beyond what current frameworks enable, and have yet to be explored to their fullest.

우리의 연구는 ("RTX" 플랫폼을 통해) NVIDIA의 튜링 아키텍처에 새로 도입된 광선 추적(RT) 코어를 탐색하는 데 초점을 맞추고 있으며, 이는 반사 및 굴절, 부드러운 그림자 및 전역 조명과 같은 강력한 시각적 효과를 달성하는 데 사용될 수 있다[4].
광선 추적과 같은 알고리듬은 원시 요소에 대한 광선의 교차점을 찾고 테스트하기 위해 트리 트래버설을 많이 수반하며, Vinkler 등이 요약한 것처럼 전통적으로 GPU 아키텍처에서 병렬화하기 어려웠다. [37].
트리 트래버설은 본질적으로 분산되는 경향이 있어 병렬 처리, 명령 캐시 스레싱, 메모리에 대한 많은 일관성 없는 읽기의 감소를 초래한다.
후보 잎이 발견되면, 필요한 많은 수의 원시 교차 테스트도 엄청나게 비쌀 수 있다.
이러한 RT 코어는 하드웨어[9]에서 경계 볼륨 계층(BVH) 트래버설 및 레이 삼각 교차를 수행하여 기존 GPU 리소스를 음영 계산에 집중할 수 있도록 하여 이 프로세스를 가속화하는 데 도움이 된다.


Our work focuses on exploring the ray tracing (RT) cores new to Nvidia’s Turing architecture (via the “RTX” platform), which can be used to achieve compelling visual effects like reflections and refractions, soft shadows, and global illumination [4].
Algorithms like ray tracing heavily involve tree traversal to locate and test intersections of rays against primitives, and have traditionally been difficult to parallelize on GPU architectures, as summarized by Vinkler et al. [37].
Tree traversal tends to be inherently divergent, resulting in a reduction of parallelism, instruction cache thrashing, and many incoherent reads to memory–all of which significantly degrade GPU performance.
Once candidate leaves are found, the large number of primitive intersection tests required can also be prohibitively expensive.
These RT cores help accelerate this process by performing bounding volume hierarchy (BVH) traversal and ray-triangle intersections in hardware [9], freeing up existing GPU resources to focus on shading computation.

우리의 연구는 ("RTX" 플랫폼을 통해) NVIDIA의 튜링 아키텍처에 새로 도입된 광선 추적(RT) 코어를 탐색하는 데 초점을 맞추고 있으며, 이는 반사 및 굴절, 부드러운 그림자 및 전역 조명과 같은 강력한 시각적 효과를 달성하는 데 사용될 수 있다[4].
광선 추적과 같은 알고리듬은 원시 요소에 대한 광선의 교차점을 찾고 테스트하기 위해 트리 트래버설을 많이 수반하며, Vinkler 등이 요약한 것처럼 전통적으로 GPU 아키텍처에서 병렬화하기 어려웠다. [37].
트리 트래버설은 본질적으로 분산되는 경향이 있어 병렬 처리, 명령 캐시 스레싱, 메모리에 대한 많은 일관성 없는 읽기의 감소를 초래한다.
후보 잎이 발견되면, 필요한 많은 수의 원시 교차 테스트도 엄청나게 비쌀 수 있다.
이러한 RT 코어는 하드웨어[9]에서 경계 볼륨 계층(BVH) 트래버설 및 레이 삼각 교차를 수행하여 기존 GPU 리소스를 음영 계산에 집중할 수 있도록 하여 이 프로세스를 가속화하는 데 도움이 된다.


Beyond ray tracing, we believe these RT cores can be used for general purpose computation. In geometry processing, BVH traversal is essential for closest point queries [33].
In simulation, both BVH traversal as well as primitive intersection testing are used for collision detection [10], for mesh contact deformations [42], and for adjacency queries [24].
And in visualization, these operations are required for sample reconstruction of unstructured meshes during volumetric rendering [28].
If carefully reformulated into a “ray tracing” problem, applications like these could likely leverage these RT cores as well.

광선 추적 외에도, 우리는 이러한 RT 코어가 범용 계산에 사용될 수 있다고 믿는다. 지오메트리 처리에서, BVH 트래버설은 가장 가까운 지점 쿼리에 필수적입니다 [33].
시뮬레이션에서, BVH 횡단 및 원시 교차 테스트는 충돌 감지[10], 메시 접촉 변형[42] 및 인접 쿼리[24]에 사용된다.
그리고 시각화에서 이러한 작업은 볼륨 렌더링 중에 구조화되지 않은 메시의 샘플 재구성을 위해 필요합니다 [28].
신중하게 "선 추적" 문제로 재구성된다면, 이와 같은 응용 프로그램도 이러한 RT 코어를 활용할 수 있을 것이다.


This paper explores a proof-of-concept that leverages these RT cores to solve a problem other than classical ray tracing.
Specifically, we develop a technique that uses these RT cores for volumetric rendering of large unstructured meshes through the use of point queries.
This point query method is particularly attractive for unstructured mesh volume rendering, as it integrates nicely with existing regular grid methods like adaptive ray marching, empty space skipping, and stochastic path tracing.
Traditional point query methods used to render large unstructured volumes require clusters of CPU nodes to achieve interactive frame rates [2], [28].
However, these clusters are inaccessible to many in the visualization community, and performance is limited when constrained to a single workstation.
Other prior works [39] make the assumption that these unstructured volumes contain only tetrahedral elements. However, many unstructured data sets contain a mix of both tetrahedral as well as higher dimensional elements like pyramids, wedges, and hexes [1].

이 논문은 이러한 RT 코어를 활용하여 고전적인 광선 추적 이외의 문제를 해결하는 개념 증명을 탐구한다.
특히, 우리는 포인트 쿼리를 사용하여 대규모 비정형 메시의 볼륨 메트릭 렌더링을 위해 이러한 RT 코어를 사용하는 기술을 개발한다.
이 포인트 쿼리 방법은 적응형 광선 행진, 빈 공간 건너뛰기 및 확률적 경로 추적과 같은 기존 정규 그리드 방법과 잘 통합되기 때문에 비정형 메시 볼륨 렌더링에 특히 매력적이다.
대규모 비정형 볼륨을 렌더링하는 데 사용되는 기존 포인트 쿼리 방법에는 대화형 프레임률[2], [28]을 달성하기 위해 CPU 노드 클러스터가 필요합니다.
그러나 이러한 클러스터는 시각화 커뮤니티의 많은 사람들이 액세스할 수 없으며 단일 워크스테이션으로 제한될 경우 성능이 제한된다.
다른 선행 연구[39]에서는 이러한 비정형 볼륨은 사면체 요소만을 포함하고 있다고 가정한다. 그러나 많은 비정형 데이터 세트에는 사면체뿐만 아니라 피라미드, 웨지 및 육각형과 같은 고차원 요소가 혼합되어 있다[1].


We show that these data sets can be visualized interactively on a single GPU workstation by reformulating the process of point location to use ray tracing hardware.
We additionally show that it is possible to extend the use of these RT cores to support more general, nonlinear unstructured elements, despite the presence of non-triangular geometry.
The methods we present progressively build off of each other to incrementally map the algorithmic complexity of these point location queries to different aspects of the ray tracing hardware. Finally, we evaluate our solution on a mix of synthetic matches or outperforms state-of-the-art while simultaneously reducing implementation complexity by relying on hardware to perform otherwise involved operations.

우리는 광선 추적 하드웨어를 사용하기 위해 점 위치 프로세스를 재구성함으로써 이러한 데이터 세트가 단일 GPU 워크스테이션에서 대화식으로 시각화될 수 있음을 보여준다.
또한, 우리는 이러한 RT 코어의 사용을 확장하여 비삼각 기하학에도 불구하고 보다 일반적인 비선형 비정형 요소를 지원할 수 있음을 보여준다.
우리가 제시하는 방법은 이러한 점 위치 쿼리의 알고리듬 복잡성을 광선 추적 하드웨어의 다른 측면에 점진적으로 매핑하기 위해 점진적으로 서로 구축한다. 마지막으로, 우리는 합성 일치 또는 최첨단 기술의 혼합에 대한 우리의 솔루션을 평가함과 동시에 하드웨어에 의존하여 다른 관련 작업을 수행함으로써 구현 복잡성을 줄인다.

10. Discussion and Conclusion

Although our results are promising, there are several interesting avenues for future work to explore creative uses of the ray tracing cores.
With regard to addressing our larger goal of exploring wider use of the RT cores, we have successfully shown one application where they can be used to accelerate a problem beyond traditional ray tracing.

우리의 결과는 유망하지만, 광선 추적 코어의 창의적인 사용을 탐구하기 위한 향후 연구를 위한 몇 가지 흥미로운 방법이 있다.
RT 코어의 광범위한 사용을 탐구하는 우리의 더 큰 목표를 해결하기 위해, 우리는 RT 코어를 전통적인 광선 추적에서 벗어나 문제를 가속화하는 데 사용할 수 있는 하나의 애플리케이션을 성공적으로 보여주었다.


However, more work must be done to extend this initial idea beyond point queries on unstructured meshes.
We have now demonstrated how our approach can extend to elements with non-triangular faces, and it is likely that other common unstructured data queries and mesh types could be accelerated as well.

그러나 이 초기 아이디어를 비정형 메시에 대한 포인트 쿼리 이상으로 확장하려면 더 많은 작업이 수행되어야 한다.
이제 우리는 우리의 접근 방식이 삼각형이 아닌 면을 가진 요소로 확장될 수 있는 방법을 시연했으며, 다른 일반적인 비정형 데이터 쿼리 및 메시 유형도 가속화될 수 있을 것으로 보인다.


For example, k-nearest-neighbor and closest point queries are widely used in a broad class of applications, and accelerating such queries would be valuable.
As for the kernels presented in this paper, we believe other applications beyond direct volume rendering could leverage our approach as well.
Simulations that combine particle and volumetric data or advect particles through a field could benefit from accelerated point queries.

예를 들어, k-neighbor-neighbor 및 최접점 쿼리는 광범위한 응용 프로그램에서 널리 사용되며, 이러한 쿼리를 가속화하는 것이 유용할 것이다.
이 문서에 제시된 커널에 대해, 우리는 직접 볼륨 렌더링 이외의 다른 애플리케이션도 우리의 접근 방식을 활용할 수 있다고 믿는다.
입자 및 체적 데이터를 결합하거나 필드를 통해 입자를 유도하는 시뮬레이션은 가속 포인트 쿼리의 이점을 얻을 수 있다.


However, such simulations may require a high degree of numerical accuracy.
Although the field could be stored in double-precision, RTX supports only single-precision vertex data at this time.
Furthermore, such simulations may require higher order polynomial interpolants, whereas our current approach is currently limited to bilinear elements.

그러나 이러한 시뮬레이션은 높은 수준의 수치 정확도를 요구할 수 있다.
필드를 이중 정밀도로 저장할 수 있지만, RTX는 현재 단일 정밀도의 꼭짓점 데이터만 지원합니다.
또한, 이러한 시뮬레이션은 고차 다항식 보간제를 요구할 수 있지만, 현재 우리의 접근 방식은 현재 이선형 요소로 제한된다.


We believe our technique could be extended to support these higher order elements so long as the surfaces of the mesh elements can be contained within an underestimating and overestimating tessellation.
The Newton-Raphson node interpolation and GARP bilinear patch intersection methods we use now could then be replaced with the equivalent higher order techniques.

우리는 메쉬 요소의 표면이 과소평가되고 과대평가된 테셀레이션 내에 포함될 수 있는 한 우리의 기술이 이러한 고차 요소를 지원하도록 확장될 수 있다고 믿는다.
우리가 현재 사용하는 뉴턴-랩슨 노드 보간 및 GARP 이선형 패치 교차 방법은 동등한 고차 기술로 대체될 수 있다.


When it comes to unstructured volume rendering, another caveat with our prototype renderer is that we only explore taking individual samples in a simple ray marcher.
However, other techniques based on stepping from element to element may be more efficient or provide higher quality images (e.g., [6], [18], [20]).

비정형 볼륨 렌더링과 관련하여 프로토타입 렌더러의 또 다른 주의 사항은 간단한 레이 마커에서만 개별 샘플을 추출하는 것입니다.
그러나 요소에서 요소로 스텝을 수행하는 것에 기반한 다른 기술은 더 효율적이거나 더 높은 품질의 이미지를 제공할 수 있다(예: [6], [18], [20].


Some of our general ideas may be applicable to such techniques as well. We note that adding empty-space skipping and adaptive sampling, as suggested by Morrical et al. [17] or Ganter and Manzke [3], would greatly improve the performance and quality of our prototype ray marcher, and would integrate nicely with the presented approach.
Beyond volume rendering unstructured meshes specificially, it is likely that the RT cores could be used to accelerate common visualization tasks beyond sampling or space skipping.

우리의 일반적인 생각 중 일부는 그러한 기술에도 적용될 수 있다. 우리는 Morrical 등이 제안한 것처럼 빈 공간 건너뛰기와 적응형 샘플링을 추가한다는 점에 유의한다. [17] 또는 Ganter and Manzke[3]는 프로토타입 레이 마커의 성능과 품질을 크게 향상시키고 제시된 접근 방식과 잘 통합될 것이다.
특히 비구조화 메시를 렌더링하는 볼륨 외에도, RT 코어를 사용하여 샘플링이나 공간 건너뛰기를 넘어 일반적인 시각화 작업을 가속화할 수 있다.

Abstract

우선 Nvidia RTX GPUs 라는 게 있는데, 여기서 RT 가, Ray Tracing 이라는 것의 약자라고 합니다.

  • Ray tracing 은 현실세계에서 빛이 어떻게 반사되고 굴절되는지 등을 시뮬레이션해서, 사실적인 그래픽을 만들어내는 기능을 하는데요.

  • Nvidia 의 GeForece RTX 시리즈가, 이 ray tracing 성능을 제공하려고, RT 코어라는 걸 탑재했다고 합니다.

  • 전통적인 ray tracing 뿐만 아니라 여러 다른 문제들도 해결할 수 있다고 해요.

  • 그런 다른 문제들 중에 both planar and bilinear faces 로 구성된, Unstructuered elements 의 point location 을 가속화하는 것 이 있습니다.

  • 이 문제를 Unstructured mesh point location 문제라고 하는데, 이전 GPU 아키텍쳐에서는 가속화하는 게 어려웠대요.

  • 이 문제에서, 쿼리들의 성능Unstrucured volume renderingcompute application 에 중요했다고 합니다.

  • 이 문제를 해결하는 데 세 가지 접근 방식이 있고

  • 공통적으로 1. point queries 를 재구성 해서, 2. alogorithmic complexity 를 new hardware ray tracing units 에 incrementally 하게 map 한답니다.

  • 이때 point queries를 더 complex 한 ray queries 로 대체합니다.

  1. accelerated BVH traversal 을 위해 ray tracing cores 를 사용

  2. point-in-element-intersections detection을 위해 ray-triangle intersections 사용

  3. point-in-element-intersections detection을 위해 per-face metadat를 사용

  4. our approch

  • unstrucured volumen renderer 성능 향상, robustness 향상, 구현 쉬워짐