Interactive Visualization and On-Demand Processing of Large Volume - - PowerPoint PPT Presentation

interactive visualization and on demand processing of
SMART_READER_LITE
LIVE PREVIEW

Interactive Visualization and On-Demand Processing of Large Volume - - PowerPoint PPT Presentation

Interactive Visualization and On-Demand Processing of Large Volume Data: A Fully GPU-Based Out-Of-Core Approach. Jonathan Sarton - Nicolas Courilleau - Yannick Remion - Laurent Lucas CReSTIC Universit de Reims Champagne-Ardenne France


slide-1
SLIDE 1

Interactive Visualization and On-Demand Processing of Large Volume Data: A Fully GPU-Based Out-Of-Core Approach.

Jonathan Sarton - Nicolas Courilleau - Yannick Remion - Laurent Lucas

CReSTIC – Université de Reims Champagne-Ardenne – France ICube – Université de Strasbourg – France

slide-2
SLIDE 2

Introduction

slide-3
SLIDE 3

Background and motivations

2

Large volume data, how to

  • interactively visualize them
  • process them on-the-fly ?

→ interesting to use GPUs !

slide-4
SLIDE 4

Background and motivations

3

Large volume data, how to

  • interactively visualize them
  • process them on-the-fly ?

→ interesting to use GPUs ! Issue : memory occupation

  • Large datasets
  • ≫ GPU and CPU physical memory !
  • Interactive manipulation complicated

→ Elaborate out-of-core algorithms

slide-5
SLIDE 5

Out-of-core data access

4

GPU data cache + Octree Or Multi-resolution Page Table

[Crassin et al., ACM SIGGRAPH i3D, 2009]

Gigavoxels

[Hadwiger et al., IEEE SciVis 2012]

slide-6
SLIDE 6

Out-of-core data access

5

GPU data cache + Octree Or Multi-resolution Page Table Better for very large volume !!

[Crassin et al., ACM SIGGRAPH i3D, 2009]

Gigavoxels

[Hadwiger et al., IEEE SciVis 2012]

slide-7
SLIDE 7

Data representation and storage

6

Level 2 Level 1 Level 0

  • Multi-resolution: to choose the desired level of detail

⇒ Reduces the amount of data

slide-8
SLIDE 8

Data representation and storage

7

Level 2 Level 1 Level 0

3D mipmap

  • Multi-resolution: to choose the desired level of detail

⇒ Reduces the amount of data

  • Bricking: Volume subdivided into small bricks (e.g 323, 643).

⇒ Allows the out-of-core approach

Data compression with LZ4 algorithm

  • Loss less
  • Good compression ratio
  • Real-time decompression
slide-9
SLIDE 9

Multi-resolution, multi-level page table hierarchy

8

slide-10
SLIDE 10

Multi-resolution, multi-level page table hierarchy

9

slide-11
SLIDE 11

Multi-resolution, multi-level page table hierarchy

10

  • One page = 3D coordinates of

the bloc in the next cache level + one flag:

  • Mapped
  • Unmapped
  • Empty
  • Implementation: CUDA

3D Textures

  • Cache replacement algorithm:

Least Recently Used (LRU)

slide-12
SLIDE 12

Virtual addressing

11

Normalized volume navigation → address (l, p)

  • l = level of detail
  • p = 3D normalized position (x, y, z) ∈ [0, 1[3

From (l, p) address, we get the corresponding 3D voxel position into the brick cache.

slide-13
SLIDE 13

Cache miss

12

Normalized volume navigation → address (l, p)

  • l = level of detail
  • p = 3D normalized position (x, y, z) ∈ [0, 1[3

From (l, p) address, we get the corresponding 3D voxel position into the brick cache.

slide-14
SLIDE 14

Out-of-core data access

13

How to allow on-demand processing of any part of a large volume during its visualization ?

slide-15
SLIDE 15

Cache manager

  • 1. Cache usage updates
  • 2. Brick requests management

A GPU data structure fully managed on GPU Advantages

  • Avoids many data transfers between CPU and GPU
  • Take advantage of the massively parallel environment of GPUs
  • Free the CPU for other eventual processing

14

slide-16
SLIDE 16

Brick request management on GPU

15

  • Size = number of bricks in the multi-resolution volume
  • Marked with a timestamp
slide-17
SLIDE 17

CPU / GPU transfer

GPU → CPU communications A simple list with the requested brick IDs GPU ← CPU communications Only the bricks ! (With CUDA Zero Copy)

16

slide-18
SLIDE 18

Model in action: interactive visualization & on-demand processing on GPU

slide-19
SLIDE 19

Out-of-core virtual miscroscope

17

Virtual miscroscope 2D multi-resolution visualization of a high resolution image stack. Interactive navigation:

  • move and zoom in a slide
  • navigate through the volume from slide to slide

64 000 50 000 114

x z y

slide-20
SLIDE 20

Out-of-core virtual miscroscope

18

Virtual miscroscope ... 2D multi-resolution visualization of a high resolution image stack. Interactive navigation:

  • move and zoom in a slide
  • navigate through the volume from slide to slide

+ on-demand processing Region-growing from a voxel selected by the user in the screen space

x z y

slide-21
SLIDE 21

Out-of-core virtual miscroscope

19

Virtual miscroscope ... 2D multi-resolution visualization of a high resolution image stack. Interactive navigation:

  • move and zoom in a slide
  • navigate through the volume from slide to slide

+ on-demand processing Region-growing from a voxel selected by the user in the screen space

x z y

Cache miss due to processing outside the screen space !

slide-22
SLIDE 22

Out-of-core virtual miscroscope

20

Electron micorsocpy dataset 4096 × 3072 × 2130 8bits ≈ 27 GB Rendering performance: ≈ 250 FPS

slide-23
SLIDE 23

Out-of-core Direct Volume Rendering

21

Ray-guided approach

  • Intuitive visibility selection: no additional culling calculation
  • Intuitive out-of-core integration: only load visible bricks on GPU cache
slide-24
SLIDE 24

Datasets

22

Primate hippocampus Light sheet microscope 2160 × 2560 × 1072 16bits ≈ 12 GB Mouse brain Histological scanner 64000 × 50000 × 114 RGBA ≈ 1.5 TB

slide-25
SLIDE 25

Performances – frames frequency

23

On a single workstation NVidia GeForce Titan X 6 GB

Dataset 1 – 12 GB Dataset 2 – 1,5 TB 5 10 15 20 25 30 35 40 45 50 55 47,6 49,4

FPS

Primate hippocampus Mouse brain

slide-26
SLIDE 26

Performances – frames frequency

24

On a single workstation NVidia GeForce Titan X 6 GB

Dataset 1 – 12 GB Dataset 2 – 1,5 TB 15 30 45 60 75 90 105 120 135 150 165 117,9 154

FPS

Primate hippocampus Mouse brain

slide-27
SLIDE 27

Memory occupancy

  • Primate hippocampus (2160 × 2560 × 1072 ≈ 12 GB)
  • Brick size: 643 =

⇒≈ 27000 bricks (7 LOD)

  • One virtualization level

→ Need 1.2 MB on GPU

  • Mouse brain (64000 × 50000 × 114 ≈ 1.5 TB)
  • Brick size: 643 =

⇒ 3.13 million bricks (10 LOD)

  • One virtualization level → ≈ 63 MB needed on GPU
  • Two virtualization levels → ≈ 13 MB needed on GPU

25

slide-28
SLIDE 28

Conclusion

slide-29
SLIDE 29

Conclusion

  • Out-of-core data management: multi-resolution multi-level page table hierarchy
  • Entirely managed on GPU
  • GPU – CPU communication reduced
  • Good rendering frequency even for very large volume of data (> TB)
  • Weak GPU memory and computational footprint
  • General purpose context : interactive visualization & on-demand processing

26

slide-30
SLIDE 30

27

Interactive Visualization and On-Demand Processing of Large Volume Data: A Fully GPU-Based Out-Of-Core Approach.

Jonathan Sarton - sarton@unistra.fr Nicolas Courilleau - nicolas.courilleau@neoxia.com Yannick Remion - yannick.remion@univ-reims.fr Laurent Lucas - laurent.lucas@univ-reims.fr