SlideShare a Scribd company logo
1 of 52
Download to read offline
1" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
TAKAHIRO"HARADA,"DMITRY"KOZLOV"
3/16/2016"
MULTIPLATFORM+GPU+RAY.TRACING+SOLUTIONS+
WITH+FIRERENDER+AND+FIRERAYS+
2" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
!  FireRender"
‒ All"in"package"(ray"casKng,"shading)"
‒ For"renderer"users"
‒ Output"Q"Rendered"image"
‒ Physically"based"rendering"library"
!  FireRays"
‒ For"renderer"developers"
‒ Output"Q"IntersecKons"
‒ Ray"intersecKon"library"
!  Implemented"using"OpenCL"
MULTIPLATFORM"GPU"RAYQTRACING"SOLUTIONS"
3" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
!  FireRender"
‒ Features"
‒ Architecture"
‒ Examples"
!  FireRays"
‒ IntroducKon"
‒ Technology"
‒ Examples"
AGENDA"
4" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
FIRERENDER+
5" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
!  “Fast"high"quality"rendering"everywhere”"
""""""""GPU""""""""Path"tracing"""""""""""""OpenCL"
!  C"API"
!  OpenCL"1.2"
!  MulK"pla`orm"soluKon"
‒ OS"(Windows,"Linux)"
‒ Vendor"(AMD,…)"
FIRERENDER"
6" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
FEATURES"
! Camera"
MoKon"Blur"DOF" Bokeh"
! Geometry"
Instancing"Mesh" Subdivision"
! Lights"
Area"IES"Spot"Point"
7" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
FEATURES"
MATERIALS"
! BSDFs"
! Basic"components"
Diffuse"reflecKon"
! Shader"graph"
! Arbitrary"connecKon"of"shader"nodes"for"flexible"shading"system"
Diffuse"refracKon" Glossy"reflecKon" Glossy"refracKon" Spec."reflecKon" Spec."refracKon" SSS"
Input"Lookup" ArithmeKc" Example" Example" Example"Procedural" Blend"BSDFs""
8" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
HOW"FIRERENDER"IS"BUILT"
FIRERENDER+ARCHITECTURE+
9" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
ARCHITECTURE"OVERVIEW"
!  Input:"scene"info"
!  Output:"rendered"image"
!  Runs"on""
‒ Single"GPU"
‒ MulKple"GPUs"
‒ CPUs"
‒ Mix"of"these"
CPU+
OpenCL+
FireRender+Core+
User+
Geometry,"material,"light" Rendered"image"
FireRender+API+
GPU+#2+GPU+#1+
10" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
FIRERENDER+CORE+
11" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
!  Split"kernel"implementaKon"
‒ Modular"
‒ Easy"to"modify,"extend,"debug"
‒ Change"behavior"by"replacing"a"kernel"
‒  Ray"casKng"kernel"=>"FireRays,"Vector"displacement,"Out"of"core"support"
‒  Camera"=>"Bake"camera"
‒ High"GPU"uKlizaKon"
‒ Less"GPR"usage"
‒ Bener"performance"
IMPLEMENTATION"
12" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
!  Textures"
‒ Manually"managed"
‒ No"limit"to"the"number"of"textures"(up"to"the"memory"limit)"
!  Lights"
‒ Many"lights"are"challenging"
‒ Slow"convergence"
‒ OpKmized"for"many"lights"
‒ GPU"opKmized"stochasKc"light"culling"
IMPLEMENTATION"
6,000"area"lights"
13" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
IMPLEMENTATION"
MATERIAL"SYSTEM"
!  Material"=="shader"graph"
‒ Arbitrary"node"connecKon"
‒ BSDFs"(Closures),"textures,"arithmeKc"operaKon"
!  For"each"shading"point"
‒ Traverse"the"graph"
=>"BSDF"+"Parameters"
‒ Evaluate"BSDF"
‒ Sample"using"BSDF"
14" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
!  Make"single"frame"render"faster"
!  Screen"split"
!  Support"heterogeneous"GPUs"
!  Load"balancing"
‒ Minimize"the"idle"Kme"on"GPU"
IMPLEMENTATION"
MULTI"GPU"SUPPORT"
7"GPUs"
15" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
HOW"TO"USE"FIRERENDER"
FIRERENDER+API+
16" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
Initialization
FIRERENDER"API"EXAMPLE"(1/4)"
SIMPLE"RENDER"
Camera Set up
// Create OpenCL context using a single GPU
fr_context context;
fr_material_system matsys;
fr_scene scene;
frCreateContext(FR_API_VERSION, FR_CONTEXT_OPENCL, FR_CREATION_FLAGS_ENABLE_GPU0, NULL, NULL, &context);
frContextCreateMaterialSystem(context, 0, &matsys);
frContextCreateScene(context, &scene);
frContextSetScene(context, scene);
// Create camera
fr_camera camera;
frContextCreateCamera(context, &camera);
frCameraLookAt(camera, 5, 5, 20, 0, 0, 0, 0, 1, 0);
frCameraSetFocalLength(camera, 75.f);
frSceneSetCamera(scene, camera);
17" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
// Create point light
fr_light light;
frContextCreatePointLight(context, &light);
frLightSetTransform(light, FR_TRUE, &lightm(0,0));
frPointLightSetRadiantPower3f(light, 255, 241, 224);
frSceneAttachLight(scene, light);
// Create plane mesh
fr_shape plane;
frContextCreateMesh(context,...);
frSceneAttachShape(scene, plane);
// Create simple diffuse shader
fr_material_node diffuse;
frMaterialSystemCreateNode(matsys, FR_MATERIAL_NODE_DIFFUSE, &diffuse);
frMaterialNodeSetInputF(diffuse, "color", 0.5f, 0.5f, 0.5f, 1.f);
frShapeSetMaterial(plane, diffuse);
FIRERENDER"API"EXAMPLE"(2/4)"
SIMPLE"RENDER"
"
Create Point Light
Create Mesh
Create shader
18" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
Create frame buffer
Render & Save
// Create framebuffer to store rendering result
fr_framebuffer_desc desc;
desc.fb_width = 800;
desc.fb_height = 600;
fr_framebuffer_format fmt = {4, FR_COMPONENT_TYPE_FLOAT32};
fr_framebuffer frame_buffer;
frContextCreateFrameBuffer(context, fmt, &desc, &frame_buffer);
frFrameBufferClear(frame_buffer);
frContextSetAOV(context, FR_AOV_COLOR, frame_buffer);
// Render
frContextRender(context);
// Save the result to file
frFrameBufferSaveToFile(frame_buffer, "simple_render.png");
FIRERENDER"API"EXAMPLE"(3/4)"
SIMPLE"RENDER"
"
19" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
Create frame buffer
Render & Save
// Create framebuffer to store rendering result
fr_framebuffer_desc desc;
desc.fb_width = 800;
desc.fb_height = 600;
fr_framebuffer_format fmt = {4, FR_COMPONENT_TYPE_FLOAT32};
fr_framebuffer frame_buffer;
frContextCreateFrameBuffer(context, fmt, &desc, &frame_buffer);
frFrameBufferClear(frame_buffer);
frContextSetAOV(context, FR_AOV_COLOR, frame_buffer);
// Render
frContextRender(context);
// Save the result to file
frFrameBufferSaveToFile(frame_buffer, "simple_render.png");
FIRERENDER"API"EXAMPLE"(3/4)"
SIMPLE"RENDER"
"
20" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
// Create BXDFs
fr_material_node base, top;
{
frMaterialSystemCreateNode(matsys, FR_MATERIAL_NODE_DIFFUSE, &base);
frMaterialNodeSetInputF(base, "color", r0, g0, b0, 1.f);
frMaterialSystemCreateNode(matsys, FR_MATERIAL_NODE_MICROFACET, &top);
frMaterialNodeSetInputF(top, "color", r1, g1, b1, 1.f);
frMaterialNodeSetInputF(top, "roughness", 0.1f, 0.f, 0.f, 1.f);
}
// Create a layered shader
fr_material_node layered;
{
frMaterialSystemCreateNode(matsys, FR_MATERIAL_NODE_BLEND, &layered);
frMaterialNodeSetInputN(layered, "color0", base);
frMaterialNodeSetInputN(layered, "color1", top);
frMaterialNodeSetInputF(layered, "weight", 0.5f, 0.5f, 0.5f, 1.f);
}+
FIRERENDER"API"EXAMPLE"(4/4)"
LAYERED"SHADER"
Blend+
Diffuse+ Glossy+ Weight+
+
+
0.5+
21" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
PERFORMANCE+
22" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
FEBRUARY"2015"""|"""CONFIDENTIAL"
RENDERING"TIME?"
2"X"RADEON"PRO"DUO"@"1280"X"720"
23" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
FEBRUARY"2015"""|"""CONFIDENTIAL"
RENDERING"TIME?"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""~"5"SECONDS"
2"X"RADEON"PRO"DUO"@"1280"X"720"
24" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
PERFORMANCE"
2"X"RADEON"PRO"DUO"@"1280"X"720"
5s+ 30s+
25" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
PERFORMANCE"
2"X"RADEON"PRO"DUO"@"1280"X"720"
5s+ 30s+
26" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
PERFORMANCE"
2"X"RADEON"PRO"DUO"@"1280"X"720"
5s+ 30s+
27" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
EXAMPLES+
28" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
EXAMPLES"
29" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
30" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
31" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
32" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
33" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
3DS"MAX"PLUGIN"DEMO"
34" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
!  Open"to"registered"developers"
!  hnp://developer.amd.com/toolsQandQsdks/graphicsQdevelopment/
fireproQsdk/amdQfirerenderQtechnology/"
!  FirePro.Developers@amd.com"
FIRERENDER"SDK"
35" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
FIRERAYS+
36" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
!  PhotorealisKc"rendering"
!  Collision"detecKon"
!  ParKcle"physics"
!  Game"AI""
!  Medical"imaging"
!  PredicKve"rendering"
!  Sound"propagaKon"
!  RealQKme"effects"
MOTIVATION"
37" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
!  Massively"parallel"architecture"
!  Naïve"approach"does"not"work"on"
GPUs"
!  Variety"of"hardware"to"support"
!  Rapidly"changing"sovware""
‒ DX/GL"
‒ "OpenCL"
‒ "Vulkan/DX12"
‒ "HCC"
GPU"ACCELERATION"
38" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
!  Fast"intersecKon"API:""
‒ Best"perf"on"AMD"
‒ CPU/GPU/MGPU"
GPU"ACCELERATION:""FIRERAYS"
!  CrossQpla`orm"
‒ Windows"/"Linux"/""OSX"
!  CrossQvendor"
!  OpenQsource"renderer"
!  Hosted"on"GPUOpen"
39" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
!  Triangle"meshes"
!  Instancing"support"
"
GPU"ACCELERATION:""FIRERAYS"
!  Fast"traversal"
!  Ray"masking"
"
!  CPU/GPU"BVH"
!  OpenCL"interop"
"
40" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
!  SDK"is"hosted"on"GitHub"
!  Library"binaries:"
‒ "Windows""
‒ "Mac"OS"(coming"soon)"
‒ "Linux"("coming"soon)"
!  OpenQsource"sample"renderer"
‒ "Efficient"streaming"pathQtracer"
‒ "Illustrates"FireRays"usage"
!  Benchmark"
FIRERAYS:"SDK"
hnps://github.com/GPUOpenQLibrariesAndSDKs/FireRays_SDK"
41" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
!  High"quality"CPU"SBVH"
‒ "Takes"longer"to"build""
‒ "Fastest"traversal"
‒ "Stackless"and"short"LDS"stack"
‒ "Good"for"final"rendering"
FIRERAYS:"TECHNOLOGY"
!  GPU"HLBVH"
‒ "Fastest"build"
‒ "Slower"traversal"(stacked"LDS)"
‒ "Good"for"animaKon"&"preview"
42" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
!  Fully"openQsource"
!  Reference"path"tracer"
!  Microkernel"based"
!  Efficient"reQcompacKon"
!  Supports"mulKple"GPUs"
!  Implemented"using"
FireRays"OpenCL"interop"
FIRERAYS:"EXAMPLE"RENDERER"
!  Compound"materials"
‒ "Diffuse"
‒ "ReflecKon"/"refracKon"
‒ "Microfacet"Blinn"/"GGX"/"
Beckmann"
‒ "Blend"
‒ "Bump"
‒ "Volume"scanering"
‒ "SSS""
43" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
!  Renderer"developers"
‒ "Easy"integraKon"
‒ "CrossQpla`orm"
FIRERAYS:"APPLICATIONS"
!  CG"researchers"
‒ "Fast"prototyping"
‒ "OpenQsource"renderer"
‒ "Going"fully"openQsource!"
!  Physics"researchers"
‒ "Easy"to"use"API"
‒ "Not"specific"to"CG"
!  Game"developers"
‒ "Light"baking"
‒ "Future"effects"
‒ "We"are"going"Vulkan!"
44" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
FIRERAYS:"API"USAGE"
!  Pass"your"meshes"into"FireRays"
!  Setup"ray"buffers"
‒ "From"the"host"
‒ "Or"CL"kernel"
!  Query"intersecKons"
!  Handle"intersecKons"
// Enumerate all shapes in the scene !
for (int i = 0; i < (int)shapes.size(); ++i) !
{ !
Shape* shape = nullptr; !
shape = api->CreateMesh(vertices, numvertices, sizeof(float3),
indices, 0, nullptr, numprims);
!
shape->SetTransform(shapes[i].m, inverse(shapes[i].m)); !
api->AttachShape(shape); !
} !
!
api->Commit();!
"
// Intersect ray batch !
api->IntersectBatch(rays[pass & 0x1], hitcount[pass & 0x1], maxrays, intersections, nullptr, nullptr); !
45" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
FIRERAYS:"BEST"PRACTICES"
!  Use"two"buffers"pingQpong"
‒ "Helps"to"handle"many"bounces"
!  Compact"the"work"
‒ "Helps"to"avoid"divergence"
‒ "Bener"memory"access"
!  Do"not"use"mega"kernels"
‒ "Helps"to"reduce"VGPR"usage"
!  Try"to"generate"coherent"rays"
!  Use"mulKple"API"instances"for"
mGPU"
!  Let"GPUs"work"asynchronously"
!  MonteQCarlo"is"good"to"
distribute"to"mulKple"GPUs"
!  Use"lockQless"interacKon"
46" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
FIRERAYS:"EXAMPLE"RENDERER"
! Intersect"ray"buffer"
! Evaluate"volume"
! Compact"
! Evaluate"volume"
! Evaluate"surface"
! Extend"path"
47" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
!  Web"interface"
‒ "InteracKve"web"product"viewer"
‒ "InteracKve"3D"configurator"
!  Specific"requirements"
‒ "Mainly"jewelry"rendering"
‒ "RGB"is"not"enough"
‒ "Need"realQKme"post"effects"
FIRERAYS:"USECASE"
48" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
FIRERAYS:"STARQSHAPED"FILTER"
Bague"Lady"
Gemmyo""©"2016"
49" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
FIRERAYS:"SPECTRAL"RENDERING"
Bague"Lady"
Gemmyo""©"2016"
50" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
MARCH"2016"""|"""FIRERENDER,"FIRERAYS"
!  Go"fully"openQsource"on"GPUOpen!"
!  Vulkan"port"
‒ "Gaming"applicaKons"
‒ "Flexible"3DQcompute"interop"
‒ "Asynchronous"operaKon"
!  NonQbatched"mode"
!  FireRender"backend"
FIRERAYS:"WHAT’S"NEXT?"
!  Features"
‒ "Faster"builds"/"traversal"
‒ "Subdivision"&"displacement"
‒ "Out"of"core"
‒ "Improved"moKon"blur"
1	 MARCH	2016			|			FIRERENDER,	FIRERAYS	
MARCH	2016			|			FIRERENDER,	FIRERAYS
2	 MARCH	2016			|			FIRERENDER,	FIRERAYS	
MARCH	2016			|			FIRERENDER,	FIRERAYS	
§  We	are	looking	for	people	who	can	work	with	us	on	Firerender	&	
FireRays	
§  Several	posiJons	are	available	
‒ Development	of	Firerender	&	FireRays	
‒ Research	on	Monte	Carlo	ray	tracing	algorithm	
‒ Research	on	designing	algorithm	for	future	AMD’s	GPU,	CPU	architecture	
‒ Internship	posiJon	is	also	available	
§  If	you	are	interested	in	these,	contact	me	(takahiro.harada@amd.com)	
LOOKING	FOR	PEOPLE	WHO	CAN	WORK	WITH	US

More Related Content

What's hot

What's hot (20)

WT-4072, Rendering Web Content at 60fps, by Vangelis Kokkevis, Antoine Labour...
WT-4072, Rendering Web Content at 60fps, by Vangelis Kokkevis, Antoine Labour...WT-4072, Rendering Web Content at 60fps, by Vangelis Kokkevis, Antoine Labour...
WT-4072, Rendering Web Content at 60fps, by Vangelis Kokkevis, Antoine Labour...
 
PostgreSQL with OpenCL
PostgreSQL with OpenCLPostgreSQL with OpenCL
PostgreSQL with OpenCL
 
PL-4042, Wholly Graal: Accelerating GPU offload for Java/Sumatra using the Op...
PL-4042, Wholly Graal: Accelerating GPU offload for Java/Sumatra using the Op...PL-4042, Wholly Graal: Accelerating GPU offload for Java/Sumatra using the Op...
PL-4042, Wholly Graal: Accelerating GPU offload for Java/Sumatra using the Op...
 
WT-4069, WebCL: Enabling OpenCL Acceleration of Web Applications, by Mikael ...
WT-4069, WebCL: Enabling OpenCL Acceleration of Web Applications, by  Mikael ...WT-4069, WebCL: Enabling OpenCL Acceleration of Web Applications, by  Mikael ...
WT-4069, WebCL: Enabling OpenCL Acceleration of Web Applications, by Mikael ...
 
PT-4142, Porting and Optimizing OpenMP applications to APU using CAPS tools, ...
PT-4142, Porting and Optimizing OpenMP applications to APU using CAPS tools, ...PT-4142, Porting and Optimizing OpenMP applications to APU using CAPS tools, ...
PT-4142, Porting and Optimizing OpenMP applications to APU using CAPS tools, ...
 
PT-4055, Optimizing Raytracing on GCN with AMD Development Tools, by Tzachi C...
PT-4055, Optimizing Raytracing on GCN with AMD Development Tools, by Tzachi C...PT-4055, Optimizing Raytracing on GCN with AMD Development Tools, by Tzachi C...
PT-4055, Optimizing Raytracing on GCN with AMD Development Tools, by Tzachi C...
 
Leverage the Speed of OpenCL™ with AMD Math Libraries
Leverage the Speed of OpenCL™ with AMD Math LibrariesLeverage the Speed of OpenCL™ with AMD Math Libraries
Leverage the Speed of OpenCL™ with AMD Math Libraries
 
Gcn performance ftw by stephan hodes
Gcn performance ftw by stephan hodesGcn performance ftw by stephan hodes
Gcn performance ftw by stephan hodes
 
PL-4044, OpenACC on AMD APUs and GPUs with the PGI Accelerator Compilers, by ...
PL-4044, OpenACC on AMD APUs and GPUs with the PGI Accelerator Compilers, by ...PL-4044, OpenACC on AMD APUs and GPUs with the PGI Accelerator Compilers, by ...
PL-4044, OpenACC on AMD APUs and GPUs with the PGI Accelerator Compilers, by ...
 
Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...
Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...
Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...
 
Direct3D12 and the Future of Graphics APIs by Dave Oldcorn
Direct3D12 and the Future of Graphics APIs by Dave OldcornDirect3D12 and the Future of Graphics APIs by Dave Oldcorn
Direct3D12 and the Future of Graphics APIs by Dave Oldcorn
 
CC-4005, Performance analysis of 3D Finite Difference computational stencils ...
CC-4005, Performance analysis of 3D Finite Difference computational stencils ...CC-4005, Performance analysis of 3D Finite Difference computational stencils ...
CC-4005, Performance analysis of 3D Finite Difference computational stencils ...
 
PL-4051, An Introduction to SPIR for OpenCL Application Developers and Compil...
PL-4051, An Introduction to SPIR for OpenCL Application Developers and Compil...PL-4051, An Introduction to SPIR for OpenCL Application Developers and Compil...
PL-4051, An Introduction to SPIR for OpenCL Application Developers and Compil...
 
HC-4017, HSA Compilers Technology, by Debyendu Das
HC-4017, HSA Compilers Technology, by Debyendu DasHC-4017, HSA Compilers Technology, by Debyendu Das
HC-4017, HSA Compilers Technology, by Debyendu Das
 
Solving channel coding simulation and optimization problems using GPU
Solving channel coding simulation and optimization problems using GPUSolving channel coding simulation and optimization problems using GPU
Solving channel coding simulation and optimization problems using GPU
 
An Introduction to OpenCL™ Programming with AMD GPUs - AMD & Acceleware Webinar
An Introduction to OpenCL™ Programming with AMD GPUs - AMD & Acceleware WebinarAn Introduction to OpenCL™ Programming with AMD GPUs - AMD & Acceleware Webinar
An Introduction to OpenCL™ Programming with AMD GPUs - AMD & Acceleware Webinar
 
WT-4066, The Making of Turbulenz’ Polycraft WebGL Benchmark, by Ian Ballantyne
WT-4066, The Making of Turbulenz’ Polycraft WebGL Benchmark, by Ian BallantyneWT-4066, The Making of Turbulenz’ Polycraft WebGL Benchmark, by Ian Ballantyne
WT-4066, The Making of Turbulenz’ Polycraft WebGL Benchmark, by Ian Ballantyne
 
PG-4037, Fast modal analysis with NX Nastran and GPUs, by Leonard Hoffnung
PG-4037, Fast modal analysis with NX Nastran and GPUs, by Leonard HoffnungPG-4037, Fast modal analysis with NX Nastran and GPUs, by Leonard Hoffnung
PG-4037, Fast modal analysis with NX Nastran and GPUs, by Leonard Hoffnung
 
GS-4150, Bullet 3 OpenCL Rigid Body Simulation, by Erwin Coumans
GS-4150, Bullet 3 OpenCL Rigid Body Simulation, by Erwin CoumansGS-4150, Bullet 3 OpenCL Rigid Body Simulation, by Erwin Coumans
GS-4150, Bullet 3 OpenCL Rigid Body Simulation, by Erwin Coumans
 
PL-4047, Big Data Workload Analysis Using SWAT and Ipython Notebooks, by Moni...
PL-4047, Big Data Workload Analysis Using SWAT and Ipython Notebooks, by Moni...PL-4047, Big Data Workload Analysis Using SWAT and Ipython Notebooks, by Moni...
PL-4047, Big Data Workload Analysis Using SWAT and Ipython Notebooks, by Moni...
 

Viewers also liked

Physics Tutorial, GPU Physics (GDC2010)
Physics Tutorial, GPU Physics (GDC2010)Physics Tutorial, GPU Physics (GDC2010)
Physics Tutorial, GPU Physics (GDC2010)
Takahiro Harada
 
Introduction to Monte Carlo Ray Tracing (CEDEC 2013)
Introduction to Monte Carlo Ray Tracing (CEDEC 2013)Introduction to Monte Carlo Ray Tracing (CEDEC 2013)
Introduction to Monte Carlo Ray Tracing (CEDEC 2013)
Takahiro Harada
 
Forward+ (EUROGRAPHICS 2012)
Forward+ (EUROGRAPHICS 2012)Forward+ (EUROGRAPHICS 2012)
Forward+ (EUROGRAPHICS 2012)
Takahiro Harada
 
A 2.5D Culling for Forward+ (SIGGRAPH ASIA 2012)
A 2.5D Culling for Forward+ (SIGGRAPH ASIA 2012)A 2.5D Culling for Forward+ (SIGGRAPH ASIA 2012)
A 2.5D Culling for Forward+ (SIGGRAPH ASIA 2012)
Takahiro Harada
 
Heterogeneous Particle based Simulation (SIGGRAPH ASIA 2011)
Heterogeneous Particle based Simulation (SIGGRAPH ASIA 2011)Heterogeneous Particle based Simulation (SIGGRAPH ASIA 2011)
Heterogeneous Particle based Simulation (SIGGRAPH ASIA 2011)
Takahiro Harada
 
A Parallel Constraint Solver for a Rigid Body Simulation (SIGGRAPH ASIA 2011)
A Parallel Constraint Solver for a Rigid Body Simulation (SIGGRAPH ASIA 2011)A Parallel Constraint Solver for a Rigid Body Simulation (SIGGRAPH ASIA 2011)
A Parallel Constraint Solver for a Rigid Body Simulation (SIGGRAPH ASIA 2011)
Takahiro Harada
 
Using GPUs for Collision detection, Recent Advances in Real-Time Collision an...
Using GPUs for Collision detection, Recent Advances in Real-Time Collision an...Using GPUs for Collision detection, Recent Advances in Real-Time Collision an...
Using GPUs for Collision detection, Recent Advances in Real-Time Collision an...
Takahiro Harada
 

Viewers also liked (20)

確率的ライトカリング 理論と実装 (CEDEC2016)
確率的ライトカリング 理論と実装 (CEDEC2016)確率的ライトカリング 理論と実装 (CEDEC2016)
確率的ライトカリング 理論と実装 (CEDEC2016)
 
[2017 GDC] Radeon ProRender and Radeon Rays in a Gaming Rendering Workflow
[2017 GDC] Radeon ProRender and Radeon Rays in a Gaming Rendering Workflow[2017 GDC] Radeon ProRender and Radeon Rays in a Gaming Rendering Workflow
[2017 GDC] Radeon ProRender and Radeon Rays in a Gaming Rendering Workflow
 
Introducing Firerender for 3DS Max
Introducing Firerender for 3DS MaxIntroducing Firerender for 3DS Max
Introducing Firerender for 3DS Max
 
Physics Tutorial, GPU Physics (GDC2010)
Physics Tutorial, GPU Physics (GDC2010)Physics Tutorial, GPU Physics (GDC2010)
Physics Tutorial, GPU Physics (GDC2010)
 
Introduction to Monte Carlo Ray Tracing (CEDEC 2013)
Introduction to Monte Carlo Ray Tracing (CEDEC 2013)Introduction to Monte Carlo Ray Tracing (CEDEC 2013)
Introduction to Monte Carlo Ray Tracing (CEDEC 2013)
 
Forward+ (EUROGRAPHICS 2012)
Forward+ (EUROGRAPHICS 2012)Forward+ (EUROGRAPHICS 2012)
Forward+ (EUROGRAPHICS 2012)
 
Introduction to Monte Carlo Ray Tracing, OpenCL Implementation (CEDEC 2014)
Introduction to Monte Carlo Ray Tracing, OpenCL Implementation (CEDEC 2014)Introduction to Monte Carlo Ray Tracing, OpenCL Implementation (CEDEC 2014)
Introduction to Monte Carlo Ray Tracing, OpenCL Implementation (CEDEC 2014)
 
Introduction to Bidirectional Path Tracing (BDPT) & Implementation using Open...
Introduction to Bidirectional Path Tracing (BDPT) & Implementation using Open...Introduction to Bidirectional Path Tracing (BDPT) & Implementation using Open...
Introduction to Bidirectional Path Tracing (BDPT) & Implementation using Open...
 
Foveated Ray Tracing for VR on Multiple GPUs
Foveated Ray Tracing for VR on Multiple GPUsFoveated Ray Tracing for VR on Multiple GPUs
Foveated Ray Tracing for VR on Multiple GPUs
 
A 2.5D Culling for Forward+ (SIGGRAPH ASIA 2012)
A 2.5D Culling for Forward+ (SIGGRAPH ASIA 2012)A 2.5D Culling for Forward+ (SIGGRAPH ASIA 2012)
A 2.5D Culling for Forward+ (SIGGRAPH ASIA 2012)
 
Heterogeneous Particle based Simulation (SIGGRAPH ASIA 2011)
Heterogeneous Particle based Simulation (SIGGRAPH ASIA 2011)Heterogeneous Particle based Simulation (SIGGRAPH ASIA 2011)
Heterogeneous Particle based Simulation (SIGGRAPH ASIA 2011)
 
A Parallel Constraint Solver for a Rigid Body Simulation (SIGGRAPH ASIA 2011)
A Parallel Constraint Solver for a Rigid Body Simulation (SIGGRAPH ASIA 2011)A Parallel Constraint Solver for a Rigid Body Simulation (SIGGRAPH ASIA 2011)
A Parallel Constraint Solver for a Rigid Body Simulation (SIGGRAPH ASIA 2011)
 
Using GPUs for Collision detection, Recent Advances in Real-Time Collision an...
Using GPUs for Collision detection, Recent Advances in Real-Time Collision an...Using GPUs for Collision detection, Recent Advances in Real-Time Collision an...
Using GPUs for Collision detection, Recent Advances in Real-Time Collision an...
 
FrameGraph: Extensible Rendering Architecture in Frostbite
FrameGraph: Extensible Rendering Architecture in FrostbiteFrameGraph: Extensible Rendering Architecture in Frostbite
FrameGraph: Extensible Rendering Architecture in Frostbite
 
自由なデータ
自由なデータ自由なデータ
自由なデータ
 
レイトレ合宿4!? 実装紹介スライド
レイトレ合宿4!? 実装紹介スライドレイトレ合宿4!? 実装紹介スライド
レイトレ合宿4!? 実装紹介スライド
 
Scalable Gaming with AWS - GDC 2014
Scalable Gaming with AWS - GDC 2014Scalable Gaming with AWS - GDC 2014
Scalable Gaming with AWS - GDC 2014
 
Introduction to Bidirectional Path Tracing (BDPT) & Implementation using Open...
Introduction to Bidirectional Path Tracing (BDPT) & Implementation using Open...Introduction to Bidirectional Path Tracing (BDPT) & Implementation using Open...
Introduction to Bidirectional Path Tracing (BDPT) & Implementation using Open...
 
ボリュームレンダリング入門
ボリュームレンダリング入門ボリュームレンダリング入門
ボリュームレンダリング入門
 
MCMCベースレンダリング入門
MCMCベースレンダリング入門MCMCベースレンダリング入門
MCMCベースレンダリング入門
 

Similar to [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

From HelloWorld to Configurable and Reusable Apache Spark Applications in Sca...
From HelloWorld to Configurable and Reusable Apache Spark Applications in Sca...From HelloWorld to Configurable and Reusable Apache Spark Applications in Sca...
From HelloWorld to Configurable and Reusable Apache Spark Applications in Sca...
Databricks
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
ESUG
 
Firefox OS, the Open Web & WebAPIs - Geek Meet Västerås
Firefox OS, the Open Web & WebAPIs - Geek Meet VästeråsFirefox OS, the Open Web & WebAPIs - Geek Meet Västerås
Firefox OS, the Open Web & WebAPIs - Geek Meet Västerås
Robert Nyman
 

Similar to [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays (20)

Narcissus — mapping configs in Go
Narcissus — mapping configs in GoNarcissus — mapping configs in Go
Narcissus — mapping configs in Go
 
Rendering Large Models in the Browser in Real-Time
Rendering Large Models in the Browser in Real-TimeRendering Large Models in the Browser in Real-Time
Rendering Large Models in the Browser in Real-Time
 
Big Data Processing with Spark and .NET - Microsoft Ignite 2019
Big Data Processing with Spark and .NET - Microsoft Ignite 2019Big Data Processing with Spark and .NET - Microsoft Ignite 2019
Big Data Processing with Spark and .NET - Microsoft Ignite 2019
 
Running R at Scale with Apache Arrow on Spark
Running R at Scale with Apache Arrow on SparkRunning R at Scale with Apache Arrow on Spark
Running R at Scale with Apache Arrow on Spark
 
Introduction to Apache Beam
Introduction to Apache BeamIntroduction to Apache Beam
Introduction to Apache Beam
 
Running Spark In Production in the Cloud is Not Easy with Nayur Khan
Running Spark In Production in the Cloud is Not Easy with Nayur KhanRunning Spark In Production in the Cloud is Not Easy with Nayur Khan
Running Spark In Production in the Cloud is Not Easy with Nayur Khan
 
MLflow with R
MLflow with RMLflow with R
MLflow with R
 
From HelloWorld to Configurable and Reusable Apache Spark Applications in Sca...
From HelloWorld to Configurable and Reusable Apache Spark Applications in Sca...From HelloWorld to Configurable and Reusable Apache Spark Applications in Sca...
From HelloWorld to Configurable and Reusable Apache Spark Applications in Sca...
 
Let's break apache spark workshop
Let's break apache spark workshopLet's break apache spark workshop
Let's break apache spark workshop
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
 
Firefox OS, the Open Web & WebAPIs - Geek Meet Västerås
Firefox OS, the Open Web & WebAPIs - Geek Meet VästeråsFirefox OS, the Open Web & WebAPIs - Geek Meet Västerås
Firefox OS, the Open Web & WebAPIs - Geek Meet Västerås
 
Homer - Workshop at Kamailio World 2017
Homer - Workshop at Kamailio World 2017Homer - Workshop at Kamailio World 2017
Homer - Workshop at Kamailio World 2017
 
Things to do with OpenStreetMap
Things to do with OpenStreetMapThings to do with OpenStreetMap
Things to do with OpenStreetMap
 
DEF CON 27 - workshop - ISAAC EVANS - discover exploit and eradicate entire v...
DEF CON 27 - workshop - ISAAC EVANS - discover exploit and eradicate entire v...DEF CON 27 - workshop - ISAAC EVANS - discover exploit and eradicate entire v...
DEF CON 27 - workshop - ISAAC EVANS - discover exploit and eradicate entire v...
 
Transforming WebSockets
Transforming WebSocketsTransforming WebSockets
Transforming WebSockets
 
Songbird
SongbirdSongbird
Songbird
 
FTC3 Philippe Collin Designing a Frogans site 2015/01/26
FTC3 Philippe Collin Designing a Frogans site 2015/01/26FTC3 Philippe Collin Designing a Frogans site 2015/01/26
FTC3 Philippe Collin Designing a Frogans site 2015/01/26
 
Chicago Hashicorp User Group - Terraform Public Module Registry
Chicago Hashicorp User Group - Terraform Public Module RegistryChicago Hashicorp User Group - Terraform Public Module Registry
Chicago Hashicorp User Group - Terraform Public Module Registry
 
PGDay.Amsterdam 2018 - Bruce Momjian - Will postgres live forever
PGDay.Amsterdam 2018 - Bruce Momjian - Will postgres live foreverPGDay.Amsterdam 2018 - Bruce Momjian - Will postgres live forever
PGDay.Amsterdam 2018 - Bruce Momjian - Will postgres live forever
 
Zebra -bar one label printing
Zebra -bar one label printingZebra -bar one label printing
Zebra -bar one label printing
 

Recently uploaded

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Recently uploaded (20)

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 

[2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays