SlideShare une entreprise Scribd logo
1  sur  25
VOLUME RENDERING OF
UNSTRUCTURED TETRAHEDRAL GRIDS
Flow
• Introduction
• Problem Formulation
• Tetrahedral Interpolation
• Implementation
• Results
• Demo
• Endnotes
04-06-2014
Nitesh Bhatia | CPDM
2
Introduction: Volume Rendering
• Volume rendering is a technique that can
be used to visualize sampled 3D scalar
data as a continuous medium or extract
features.
Most algorithms for direct volume rendering
have assumed structured data in form of
rectilinear grid.
• In this project we worked on a method for
rendering unstructured volume; volume
represented by group of tetrahedrals.
04-06-2014
Nitesh Bhatia | CPDM
3
Problem Formulation
• The idea is to convert unstructured input tetrahedral grid
(UG) to output structured regular grid (SG) and render it
using existing ray casting system.
• The data represented in UG must be interpolated to
produce SG.
• The UG consists of tetrahedrals bounded by four vertices
numbered 1,2,3,4, the coordinates of ith vertex being (xi,
yi, zi) and associated data value is denoted fi.
• The data values are assumed to be the values of an
unknown locally smooth trivariate function
interpolate discussed in next heading.
04-06-2014
Nitesh Bhatia | CPDM
4
1/3
Problem Formulation
• Let P = (x,y,z) be the point at which the value of interpolation function is
to be estimated.
Two different interpolation schemes are followed here:
• Scheme 1: Map SG to UG
• For a given point P of SG and find the tetrahedral associated with P
in UG
• Estimate the function values for given cell based on interpolate.
04-06-2014
Nitesh Bhatia | CPDM
5
empty SG UG SG
2/3
Problem Formulation
• Scheme 2: Map UG to SG
• Take a tetrahedral from UG and find points Ps lying on SG
• Estimate the function value at Ps based on interpolate.
04-06-2014
Nitesh Bhatia | CPDM
6
UG empty SG SG
3/3
Tetrahedral Interpolation: interpolate
• Given a tetrahedron T with vertices v1, v2, v3, v4 and
function value associated with these vertices be f1, f2, f3
and f4, the problem is to find interpolated function value f
for any given point P.
04-06-2014
Nitesh Bhatia | CPDM
7
.P(f)
v1(f1)
v2(f2)v4(f4)
v3(f3)
1/4
Tetrahedral Interpolation: interpolate
Geometric Solution
• Take ratio of perpendicular distance of P
to a face with perpendicular distance of
opposite vertex to that face.
• Find these ratios with all four faces and
name them l1, l2, l3 and l4.
• If the point P is lying inside tetrahedral
these ratios will come between 0 and 1.
• Sum of these ratios will always be 1.
• These l1,l2, l3 and l4 are known as
barycentric coordinates of point P with
respect to tetrahedral T.
• f = l1*f1 + l2*f2 + l3*f3 + l4*f4
04-06-2014 8
2/4
Nitesh Bhatia | CPDM
Tetrahedral Interpolation: interpolate
• Mathemetical Interpretation
04-06-2014
Nitesh Bhatia | CPDM
9
3/4
Tetrahedral Interpolation: interpolate
04-06-2014
Nitesh Bhatia | CPDM
10
4/4
Implementation
In implementation we are following 3 step approach
1. Load the vertices and tetrahedron information from
given .ts file into CPU memory
2. Based on two schemes presented, perform
computations using OpenCL (or OpenMP) to form a
regular grid
3. Display the grid by Ray Casting in OpenCL using CL-GL
Interoperability.
04-06-2014
Nitesh Bhatia | CPDM
11
Implementation: Description
Step1:
• The data set given .ts file is form of list of vertices with 3D
coordinates and associated function value and then a list of
tetrahedrons with asociated 4 vertices.
• We are first loading this information into memory.
• While loading the vertices we are computing minimum and
maximum values for (x,y,z) coordinates and storing it as minX,
minY, minZ, maxX, maxY, maxZ.
• We are then finding the difference between these minimum and
maximum values and storing it as diffX, diffY, diffZ.
• We are then computing diff equal to maximum of diffX, diffY
and diffZ.
• We are then finding dimensions of our bounding box with side
equal to diff.
04-06-2014
Nitesh Bhatia | CPDM
12
Step 2:
• Given
• We are computing A-1 for each tetrahedron
• We define a constant STEP_SIZE = 128 (or any other
value) which gives dimension of our volume as
128*128*128.
• We are setting the resolution (step size) of our volume as
res = diff / STEP_SIZE
04-06-2014
Nitesh Bhatia | CPDM
13
Scheme 1:
04-06-2014
Nitesh Bhatia | CPDM
14
1. Finding point lying
on SG
2. searching for
associated T in UG
and finding f value
using interpolation
• This scheme is implemented in both OpenCL and
OpenMP
• In OpenMP implementation we are adding following two
lines as compiler directive in starting of loop:
• #paragma omp set_num_threads(8)
• #paragma omp parallel for shared(i,j,k)
• In OpenCL implementation we are setting our dimensions
as 1D with
• size_t global_size = {STEP_SIZE * STEP_SIZE * STEP_SIZE}
• Here we are Parallelizing in terms of volume element
04-06-2014
Nitesh Bhatia | CPDM
15
Scheme2:
04-06-2014
Nitesh Bhatia | CPDM
16
1. Finding limits of
points lying inside
tetrahedral
2. For given limits finding f
values of points associated
with SG
• Scheme 2 is implemented in OpenCL. We are setting our
dimensions as 1D with
size_t global_size = tet_qty
• Here we are Parallelizing in terms of tetrahedral quantity
Step 3:
• We are then giving this 1D grid of function values to
existing ray tracer (provided by nVidia in their SDK) as
input.
04-06-2014
Nitesh Bhatia | CPDM
17
Results
• Hardware / Software for tests
04-06-2014
Nitesh Bhatia | CPDM
18
GPU
Model: nVidia Quadro FX 580
Cores: 32
Core Clock: 450 MHz
Memory: 512MB
Memory Bandwidth: 25.6 GiB/s
CPU
Model: Intel Core i7 860
Cores / Threads: 4/8
Clock Speed: 2.8GHz (3.0GHz when running on full load)
Memory: 8 GB
Memory Bandwidth: 21GB/s
OS / SDKs
Microsoft Windows 7 Professional 64Bit
Visual Studio 2010 32Bit
Microsoft OpenMP
nVidia CUDA SDK 3.2
nVidia OpenCL 1.1
Intel OpenCL 1.1 alpha
Input UG
Torus1.ts
Torusf1.ts
Torus8.ts
Engine.ts
04-06-2014
Nitesh Bhatia | CPDM
19
Scheme 1 Scheme 2
STEP_SIZE = 512
Time: 8.4 sec
STEP_SIZE = 512
Time: 2.5 sec
04-06-2014
Nitesh Bhatia | CPDM
20
Scheme 1 Scheme 2
STEP_SIZE = 512
Time: 2.5 sec
STEP_SIZE = 512
Time: 3.3 sec
04-06-2014
Nitesh Bhatia | CPDM
21
04-06-2014
Nitesh Bhatia | CPDM
22
• Demo Video URL:
https://www.youtube.com/watch?v=CaBuZ7
se7-o
04-06-2014
Nitesh Bhatia | CPDM
23
Impressions
• Learning OpenCL was a challenging task but we it was
interesting.
• Debugging OpenCL is difficult task as stream output
(“printf” function) cannot be called in openCL kernel. In
Intel’s compiler is based on OpenCL 1.1 in which “printf” is
supported.
• Double precision computations are not supported on my
card.
• Graphic Driver Crash Problem
04-06-2014
Nitesh Bhatia | CPDM
24
“We now know a thousand ways not to
build a light bulb”
04-06-2014
Nitesh Bhatia | CPDM
25
THANKS !

Contenu connexe

Tendances

Overview of SCTP (Stream Control Transmission Protocol)
Overview of SCTP (Stream Control Transmission Protocol)Overview of SCTP (Stream Control Transmission Protocol)
Overview of SCTP (Stream Control Transmission Protocol)Peter R. Egli
 
PIC 16F877A by PARTHIBAN. S.
PIC 16F877A   by PARTHIBAN. S.PIC 16F877A   by PARTHIBAN. S.
PIC 16F877A by PARTHIBAN. S.parthi_arjun
 
Xilinx lca and altera flex
Xilinx lca and altera flexXilinx lca and altera flex
Xilinx lca and altera flexanishgoel
 
All About Decoders DLD.
All About Decoders DLD.All About Decoders DLD.
All About Decoders DLD.Zain Jafri
 
Computer networks unit iii
Computer networks    unit iiiComputer networks    unit iii
Computer networks unit iiiJAIGANESH SEKAR
 
Floating point ALU using VHDL implemented on FPGA
Floating point ALU using VHDL implemented on FPGAFloating point ALU using VHDL implemented on FPGA
Floating point ALU using VHDL implemented on FPGAAzhar Syed
 
Memory & I/O interfacing
Memory & I/O  interfacingMemory & I/O  interfacing
Memory & I/O interfacingdeval patel
 
Metastability,MTBF,synchronizer & synchronizer failure
Metastability,MTBF,synchronizer & synchronizer failureMetastability,MTBF,synchronizer & synchronizer failure
Metastability,MTBF,synchronizer & synchronizer failureprashant singh
 
02 addressing modes 6800
02 addressing modes 680002 addressing modes 6800
02 addressing modes 6800kashambabu
 
MPLS L3 VPN Tutorial, by Nurul Islam Roman [APNIC 38]
MPLS L3 VPN Tutorial, by Nurul Islam Roman [APNIC 38]MPLS L3 VPN Tutorial, by Nurul Islam Roman [APNIC 38]
MPLS L3 VPN Tutorial, by Nurul Islam Roman [APNIC 38]APNIC
 
20170925 onos and p4
20170925 onos and p420170925 onos and p4
20170925 onos and p4Yi Tseng
 
Contamination delay
Contamination delayContamination delay
Contamination delayNima Afraz
 

Tendances (20)

Overview of SCTP (Stream Control Transmission Protocol)
Overview of SCTP (Stream Control Transmission Protocol)Overview of SCTP (Stream Control Transmission Protocol)
Overview of SCTP (Stream Control Transmission Protocol)
 
dual-port RAM (DPRAM)
dual-port RAM (DPRAM)dual-port RAM (DPRAM)
dual-port RAM (DPRAM)
 
Verilog HDL
Verilog HDLVerilog HDL
Verilog HDL
 
Lecture 17
Lecture 17Lecture 17
Lecture 17
 
PIC 16F877A by PARTHIBAN. S.
PIC 16F877A   by PARTHIBAN. S.PIC 16F877A   by PARTHIBAN. S.
PIC 16F877A by PARTHIBAN. S.
 
Xilinx lca and altera flex
Xilinx lca and altera flexXilinx lca and altera flex
Xilinx lca and altera flex
 
boolean 8051
boolean 8051boolean 8051
boolean 8051
 
All About Decoders DLD.
All About Decoders DLD.All About Decoders DLD.
All About Decoders DLD.
 
Serial Communication in 8051
Serial Communication in 8051Serial Communication in 8051
Serial Communication in 8051
 
Computer networks unit iii
Computer networks    unit iiiComputer networks    unit iii
Computer networks unit iii
 
Floating point ALU using VHDL implemented on FPGA
Floating point ALU using VHDL implemented on FPGAFloating point ALU using VHDL implemented on FPGA
Floating point ALU using VHDL implemented on FPGA
 
Memory & I/O interfacing
Memory & I/O  interfacingMemory & I/O  interfacing
Memory & I/O interfacing
 
Metastability,MTBF,synchronizer & synchronizer failure
Metastability,MTBF,synchronizer & synchronizer failureMetastability,MTBF,synchronizer & synchronizer failure
Metastability,MTBF,synchronizer & synchronizer failure
 
02 addressing modes 6800
02 addressing modes 680002 addressing modes 6800
02 addressing modes 6800
 
MPLS L3 VPN Tutorial, by Nurul Islam Roman [APNIC 38]
MPLS L3 VPN Tutorial, by Nurul Islam Roman [APNIC 38]MPLS L3 VPN Tutorial, by Nurul Islam Roman [APNIC 38]
MPLS L3 VPN Tutorial, by Nurul Islam Roman [APNIC 38]
 
20170925 onos and p4
20170925 onos and p420170925 onos and p4
20170925 onos and p4
 
8251 USART
8251 USART8251 USART
8251 USART
 
Contamination delay
Contamination delayContamination delay
Contamination delay
 
IPv6
IPv6IPv6
IPv6
 
RTP & RTCP
RTP & RTCPRTP & RTCP
RTP & RTCP
 

Similaire à Volume Rendering of Unstructured Tetrahedral Grids using Intel / nVidia OpenCL

Writing distributed N-body code using distributed FFT - 1
Writing distributed N-body code using distributed FFT - 1Writing distributed N-body code using distributed FFT - 1
Writing distributed N-body code using distributed FFT - 1kr0y
 
Optimizing Set-Similarity Join and Search with Different Prefix Schemes
Optimizing Set-Similarity Join and Search with Different Prefix SchemesOptimizing Set-Similarity Join and Search with Different Prefix Schemes
Optimizing Set-Similarity Join and Search with Different Prefix SchemesHPCC Systems
 
Optimizing Data Partitioning at Broadcasting the Data
Optimizing Data Partitioning at Broadcasting the DataOptimizing Data Partitioning at Broadcasting the Data
Optimizing Data Partitioning at Broadcasting the DataTakashi Yamanoue
 
Parallel Hardware Implementation of Convolution using Vedic Mathematics
Parallel Hardware Implementation of Convolution using Vedic MathematicsParallel Hardware Implementation of Convolution using Vedic Mathematics
Parallel Hardware Implementation of Convolution using Vedic MathematicsIOSR Journals
 
대용량 데이터 분석을 위한 병렬 Clustering 알고리즘 최적화
대용량 데이터 분석을 위한 병렬 Clustering 알고리즘 최적화대용량 데이터 분석을 위한 병렬 Clustering 알고리즘 최적화
대용량 데이터 분석을 위한 병렬 Clustering 알고리즘 최적화NAVER Engineering
 
AI optimizing HPC simulations (presentation from 6th EULAG Workshop)
AI optimizing HPC simulations (presentation from  6th EULAG Workshop)AI optimizing HPC simulations (presentation from  6th EULAG Workshop)
AI optimizing HPC simulations (presentation from 6th EULAG Workshop)byteLAKE
 
Data streaming algorithms
Data streaming algorithmsData streaming algorithms
Data streaming algorithmsSandeep Joshi
 
Efficient Variable Size Template Matching Using Fast Normalized Cross Correla...
Efficient Variable Size Template Matching Using Fast Normalized Cross Correla...Efficient Variable Size Template Matching Using Fast Normalized Cross Correla...
Efficient Variable Size Template Matching Using Fast Normalized Cross Correla...Gurbinder Gill
 
Implementation Of Grigoryan FFT For Its Performance Case Study Over Cooley-Tu...
Implementation Of Grigoryan FFT For Its Performance Case Study Over Cooley-Tu...Implementation Of Grigoryan FFT For Its Performance Case Study Over Cooley-Tu...
Implementation Of Grigoryan FFT For Its Performance Case Study Over Cooley-Tu...ijma
 
Approximation Data Structures for Streaming Applications
Approximation Data Structures for Streaming ApplicationsApproximation Data Structures for Streaming Applications
Approximation Data Structures for Streaming ApplicationsDebasish Ghosh
 
Support Vector Machine (SVM) Artificial Intelligence
Support Vector Machine (SVM) Artificial IntelligenceSupport Vector Machine (SVM) Artificial Intelligence
Support Vector Machine (SVM) Artificial IntelligenceHiew Moi Sim
 

Similaire à Volume Rendering of Unstructured Tetrahedral Grids using Intel / nVidia OpenCL (20)

TensorRT survey
TensorRT surveyTensorRT survey
TensorRT survey
 
Writing distributed N-body code using distributed FFT - 1
Writing distributed N-body code using distributed FFT - 1Writing distributed N-body code using distributed FFT - 1
Writing distributed N-body code using distributed FFT - 1
 
Optimizing Set-Similarity Join and Search with Different Prefix Schemes
Optimizing Set-Similarity Join and Search with Different Prefix SchemesOptimizing Set-Similarity Join and Search with Different Prefix Schemes
Optimizing Set-Similarity Join and Search with Different Prefix Schemes
 
Optimizing Data Partitioning at Broadcasting the Data
Optimizing Data Partitioning at Broadcasting the DataOptimizing Data Partitioning at Broadcasting the Data
Optimizing Data Partitioning at Broadcasting the Data
 
aspice
aspiceaspice
aspice
 
Id3313941396
Id3313941396Id3313941396
Id3313941396
 
Id3313941396
Id3313941396Id3313941396
Id3313941396
 
Parallel Hardware Implementation of Convolution using Vedic Mathematics
Parallel Hardware Implementation of Convolution using Vedic MathematicsParallel Hardware Implementation of Convolution using Vedic Mathematics
Parallel Hardware Implementation of Convolution using Vedic Mathematics
 
대용량 데이터 분석을 위한 병렬 Clustering 알고리즘 최적화
대용량 데이터 분석을 위한 병렬 Clustering 알고리즘 최적화대용량 데이터 분석을 위한 병렬 Clustering 알고리즘 최적화
대용량 데이터 분석을 위한 병렬 Clustering 알고리즘 최적화
 
AI optimizing HPC simulations (presentation from 6th EULAG Workshop)
AI optimizing HPC simulations (presentation from  6th EULAG Workshop)AI optimizing HPC simulations (presentation from  6th EULAG Workshop)
AI optimizing HPC simulations (presentation from 6th EULAG Workshop)
 
Ijetr042170
Ijetr042170Ijetr042170
Ijetr042170
 
Data streaming algorithms
Data streaming algorithmsData streaming algorithms
Data streaming algorithms
 
Efficient Variable Size Template Matching Using Fast Normalized Cross Correla...
Efficient Variable Size Template Matching Using Fast Normalized Cross Correla...Efficient Variable Size Template Matching Using Fast Normalized Cross Correla...
Efficient Variable Size Template Matching Using Fast Normalized Cross Correla...
 
distance_matrix_ch
distance_matrix_chdistance_matrix_ch
distance_matrix_ch
 
Nbvtalkataitamimageprocessingconf
NbvtalkataitamimageprocessingconfNbvtalkataitamimageprocessingconf
Nbvtalkataitamimageprocessingconf
 
Implementation Of Grigoryan FFT For Its Performance Case Study Over Cooley-Tu...
Implementation Of Grigoryan FFT For Its Performance Case Study Over Cooley-Tu...Implementation Of Grigoryan FFT For Its Performance Case Study Over Cooley-Tu...
Implementation Of Grigoryan FFT For Its Performance Case Study Over Cooley-Tu...
 
Lecture set 5
Lecture set 5Lecture set 5
Lecture set 5
 
R04603104107
R04603104107R04603104107
R04603104107
 
Approximation Data Structures for Streaming Applications
Approximation Data Structures for Streaming ApplicationsApproximation Data Structures for Streaming Applications
Approximation Data Structures for Streaming Applications
 
Support Vector Machine (SVM) Artificial Intelligence
Support Vector Machine (SVM) Artificial IntelligenceSupport Vector Machine (SVM) Artificial Intelligence
Support Vector Machine (SVM) Artificial Intelligence
 

Plus de Nitesh Bhatia

JTAG Interface (Intro)
JTAG Interface (Intro)JTAG Interface (Intro)
JTAG Interface (Intro)Nitesh Bhatia
 
Cost Estimation in Project Management - Case of Solar Assisted Water Pump
Cost Estimation in Project Management - Case of Solar Assisted Water PumpCost Estimation in Project Management - Case of Solar Assisted Water Pump
Cost Estimation in Project Management - Case of Solar Assisted Water PumpNitesh Bhatia
 
Solution Neutral Problem Statement (SNPS) Generation (Example - Cooking India...
Solution Neutral Problem Statement (SNPS) Generation (Example - Cooking India...Solution Neutral Problem Statement (SNPS) Generation (Example - Cooking India...
Solution Neutral Problem Statement (SNPS) Generation (Example - Cooking India...Nitesh Bhatia
 
Mapping - Reality and Virtual Reality (Strictly No AR!!)
Mapping - Reality and Virtual Reality (Strictly No AR!!)Mapping - Reality and Virtual Reality (Strictly No AR!!)
Mapping - Reality and Virtual Reality (Strictly No AR!!)Nitesh Bhatia
 
Natural User Interface Demo based on - 3D Brick Game using Kinect
Natural User Interface Demo based on - 3D Brick Game using KinectNatural User Interface Demo based on - 3D Brick Game using Kinect
Natural User Interface Demo based on - 3D Brick Game using KinectNitesh Bhatia
 
iKeymote - Internet Keyboard cum Remote (Idea Design)
iKeymote - Internet Keyboard cum Remote (Idea Design)iKeymote - Internet Keyboard cum Remote (Idea Design)
iKeymote - Internet Keyboard cum Remote (Idea Design)Nitesh Bhatia
 
Visual space perception
Visual space perceptionVisual space perception
Visual space perceptionNitesh Bhatia
 
PPT- Chaos Prediction using Visual Surveillance and Network Computing
PPT- Chaos Prediction using Visual Surveillance and Network ComputingPPT- Chaos Prediction using Visual Surveillance and Network Computing
PPT- Chaos Prediction using Visual Surveillance and Network ComputingNitesh Bhatia
 
Lecture 1 - Web Engineering - Apple iClub at DA-IICT
Lecture 1 - Web Engineering - Apple iClub at DA-IICTLecture 1 - Web Engineering - Apple iClub at DA-IICT
Lecture 1 - Web Engineering - Apple iClub at DA-IICTNitesh Bhatia
 
Introduction to Lectures in Apple iClub at DA-IICT
Introduction to Lectures in Apple iClub  at DA-IICTIntroduction to Lectures in Apple iClub  at DA-IICT
Introduction to Lectures in Apple iClub at DA-IICTNitesh Bhatia
 
Apple iClub at DA-IICT Opening PPT
Apple iClub at DA-IICT Opening PPTApple iClub at DA-IICT Opening PPT
Apple iClub at DA-IICT Opening PPTNitesh Bhatia
 
Design Flaws In Products
Design Flaws In ProductsDesign Flaws In Products
Design Flaws In ProductsNitesh Bhatia
 

Plus de Nitesh Bhatia (13)

JTAG Interface (Intro)
JTAG Interface (Intro)JTAG Interface (Intro)
JTAG Interface (Intro)
 
Cost Estimation in Project Management - Case of Solar Assisted Water Pump
Cost Estimation in Project Management - Case of Solar Assisted Water PumpCost Estimation in Project Management - Case of Solar Assisted Water Pump
Cost Estimation in Project Management - Case of Solar Assisted Water Pump
 
Solution Neutral Problem Statement (SNPS) Generation (Example - Cooking India...
Solution Neutral Problem Statement (SNPS) Generation (Example - Cooking India...Solution Neutral Problem Statement (SNPS) Generation (Example - Cooking India...
Solution Neutral Problem Statement (SNPS) Generation (Example - Cooking India...
 
Mapping - Reality and Virtual Reality (Strictly No AR!!)
Mapping - Reality and Virtual Reality (Strictly No AR!!)Mapping - Reality and Virtual Reality (Strictly No AR!!)
Mapping - Reality and Virtual Reality (Strictly No AR!!)
 
Natural User Interface Demo based on - 3D Brick Game using Kinect
Natural User Interface Demo based on - 3D Brick Game using KinectNatural User Interface Demo based on - 3D Brick Game using Kinect
Natural User Interface Demo based on - 3D Brick Game using Kinect
 
iKeymote - Internet Keyboard cum Remote (Idea Design)
iKeymote - Internet Keyboard cum Remote (Idea Design)iKeymote - Internet Keyboard cum Remote (Idea Design)
iKeymote - Internet Keyboard cum Remote (Idea Design)
 
Visual space perception
Visual space perceptionVisual space perception
Visual space perception
 
PPT- Chaos Prediction using Visual Surveillance and Network Computing
PPT- Chaos Prediction using Visual Surveillance and Network ComputingPPT- Chaos Prediction using Visual Surveillance and Network Computing
PPT- Chaos Prediction using Visual Surveillance and Network Computing
 
Give up - Orkut App
Give up - Orkut AppGive up - Orkut App
Give up - Orkut App
 
Lecture 1 - Web Engineering - Apple iClub at DA-IICT
Lecture 1 - Web Engineering - Apple iClub at DA-IICTLecture 1 - Web Engineering - Apple iClub at DA-IICT
Lecture 1 - Web Engineering - Apple iClub at DA-IICT
 
Introduction to Lectures in Apple iClub at DA-IICT
Introduction to Lectures in Apple iClub  at DA-IICTIntroduction to Lectures in Apple iClub  at DA-IICT
Introduction to Lectures in Apple iClub at DA-IICT
 
Apple iClub at DA-IICT Opening PPT
Apple iClub at DA-IICT Opening PPTApple iClub at DA-IICT Opening PPT
Apple iClub at DA-IICT Opening PPT
 
Design Flaws In Products
Design Flaws In ProductsDesign Flaws In Products
Design Flaws In Products
 

Dernier

Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 

Dernier (20)

Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 

Volume Rendering of Unstructured Tetrahedral Grids using Intel / nVidia OpenCL

  • 2. Flow • Introduction • Problem Formulation • Tetrahedral Interpolation • Implementation • Results • Demo • Endnotes 04-06-2014 Nitesh Bhatia | CPDM 2
  • 3. Introduction: Volume Rendering • Volume rendering is a technique that can be used to visualize sampled 3D scalar data as a continuous medium or extract features. Most algorithms for direct volume rendering have assumed structured data in form of rectilinear grid. • In this project we worked on a method for rendering unstructured volume; volume represented by group of tetrahedrals. 04-06-2014 Nitesh Bhatia | CPDM 3
  • 4. Problem Formulation • The idea is to convert unstructured input tetrahedral grid (UG) to output structured regular grid (SG) and render it using existing ray casting system. • The data represented in UG must be interpolated to produce SG. • The UG consists of tetrahedrals bounded by four vertices numbered 1,2,3,4, the coordinates of ith vertex being (xi, yi, zi) and associated data value is denoted fi. • The data values are assumed to be the values of an unknown locally smooth trivariate function interpolate discussed in next heading. 04-06-2014 Nitesh Bhatia | CPDM 4 1/3
  • 5. Problem Formulation • Let P = (x,y,z) be the point at which the value of interpolation function is to be estimated. Two different interpolation schemes are followed here: • Scheme 1: Map SG to UG • For a given point P of SG and find the tetrahedral associated with P in UG • Estimate the function values for given cell based on interpolate. 04-06-2014 Nitesh Bhatia | CPDM 5 empty SG UG SG 2/3
  • 6. Problem Formulation • Scheme 2: Map UG to SG • Take a tetrahedral from UG and find points Ps lying on SG • Estimate the function value at Ps based on interpolate. 04-06-2014 Nitesh Bhatia | CPDM 6 UG empty SG SG 3/3
  • 7. Tetrahedral Interpolation: interpolate • Given a tetrahedron T with vertices v1, v2, v3, v4 and function value associated with these vertices be f1, f2, f3 and f4, the problem is to find interpolated function value f for any given point P. 04-06-2014 Nitesh Bhatia | CPDM 7 .P(f) v1(f1) v2(f2)v4(f4) v3(f3) 1/4
  • 8. Tetrahedral Interpolation: interpolate Geometric Solution • Take ratio of perpendicular distance of P to a face with perpendicular distance of opposite vertex to that face. • Find these ratios with all four faces and name them l1, l2, l3 and l4. • If the point P is lying inside tetrahedral these ratios will come between 0 and 1. • Sum of these ratios will always be 1. • These l1,l2, l3 and l4 are known as barycentric coordinates of point P with respect to tetrahedral T. • f = l1*f1 + l2*f2 + l3*f3 + l4*f4 04-06-2014 8 2/4 Nitesh Bhatia | CPDM
  • 9. Tetrahedral Interpolation: interpolate • Mathemetical Interpretation 04-06-2014 Nitesh Bhatia | CPDM 9 3/4
  • 11. Implementation In implementation we are following 3 step approach 1. Load the vertices and tetrahedron information from given .ts file into CPU memory 2. Based on two schemes presented, perform computations using OpenCL (or OpenMP) to form a regular grid 3. Display the grid by Ray Casting in OpenCL using CL-GL Interoperability. 04-06-2014 Nitesh Bhatia | CPDM 11
  • 12. Implementation: Description Step1: • The data set given .ts file is form of list of vertices with 3D coordinates and associated function value and then a list of tetrahedrons with asociated 4 vertices. • We are first loading this information into memory. • While loading the vertices we are computing minimum and maximum values for (x,y,z) coordinates and storing it as minX, minY, minZ, maxX, maxY, maxZ. • We are then finding the difference between these minimum and maximum values and storing it as diffX, diffY, diffZ. • We are then computing diff equal to maximum of diffX, diffY and diffZ. • We are then finding dimensions of our bounding box with side equal to diff. 04-06-2014 Nitesh Bhatia | CPDM 12
  • 13. Step 2: • Given • We are computing A-1 for each tetrahedron • We define a constant STEP_SIZE = 128 (or any other value) which gives dimension of our volume as 128*128*128. • We are setting the resolution (step size) of our volume as res = diff / STEP_SIZE 04-06-2014 Nitesh Bhatia | CPDM 13
  • 14. Scheme 1: 04-06-2014 Nitesh Bhatia | CPDM 14 1. Finding point lying on SG 2. searching for associated T in UG and finding f value using interpolation
  • 15. • This scheme is implemented in both OpenCL and OpenMP • In OpenMP implementation we are adding following two lines as compiler directive in starting of loop: • #paragma omp set_num_threads(8) • #paragma omp parallel for shared(i,j,k) • In OpenCL implementation we are setting our dimensions as 1D with • size_t global_size = {STEP_SIZE * STEP_SIZE * STEP_SIZE} • Here we are Parallelizing in terms of volume element 04-06-2014 Nitesh Bhatia | CPDM 15
  • 16. Scheme2: 04-06-2014 Nitesh Bhatia | CPDM 16 1. Finding limits of points lying inside tetrahedral 2. For given limits finding f values of points associated with SG
  • 17. • Scheme 2 is implemented in OpenCL. We are setting our dimensions as 1D with size_t global_size = tet_qty • Here we are Parallelizing in terms of tetrahedral quantity Step 3: • We are then giving this 1D grid of function values to existing ray tracer (provided by nVidia in their SDK) as input. 04-06-2014 Nitesh Bhatia | CPDM 17
  • 18. Results • Hardware / Software for tests 04-06-2014 Nitesh Bhatia | CPDM 18 GPU Model: nVidia Quadro FX 580 Cores: 32 Core Clock: 450 MHz Memory: 512MB Memory Bandwidth: 25.6 GiB/s CPU Model: Intel Core i7 860 Cores / Threads: 4/8 Clock Speed: 2.8GHz (3.0GHz when running on full load) Memory: 8 GB Memory Bandwidth: 21GB/s OS / SDKs Microsoft Windows 7 Professional 64Bit Visual Studio 2010 32Bit Microsoft OpenMP nVidia CUDA SDK 3.2 nVidia OpenCL 1.1 Intel OpenCL 1.1 alpha Input UG Torus1.ts Torusf1.ts Torus8.ts Engine.ts
  • 19. 04-06-2014 Nitesh Bhatia | CPDM 19 Scheme 1 Scheme 2 STEP_SIZE = 512 Time: 8.4 sec STEP_SIZE = 512 Time: 2.5 sec
  • 20. 04-06-2014 Nitesh Bhatia | CPDM 20 Scheme 1 Scheme 2 STEP_SIZE = 512 Time: 2.5 sec STEP_SIZE = 512 Time: 3.3 sec
  • 23. • Demo Video URL: https://www.youtube.com/watch?v=CaBuZ7 se7-o 04-06-2014 Nitesh Bhatia | CPDM 23
  • 24. Impressions • Learning OpenCL was a challenging task but we it was interesting. • Debugging OpenCL is difficult task as stream output (“printf” function) cannot be called in openCL kernel. In Intel’s compiler is based on OpenCL 1.1 in which “printf” is supported. • Double precision computations are not supported on my card. • Graphic Driver Crash Problem 04-06-2014 Nitesh Bhatia | CPDM 24
  • 25. “We now know a thousand ways not to build a light bulb” 04-06-2014 Nitesh Bhatia | CPDM 25 THANKS !