SlideShare a Scribd company logo
1 of 31
Download to read offline
HSA	
  AND	
  FABRIC	
  ENGINE:	
  A	
  GAME	
  CHANGER	
  FOR	
  DIGITAL	
  
CONTENT	
  CREATION	
  

PETER	
  ZION	
  
CHIEF	
  ARCHITECT	
  
FABRIC	
  ENGINE	
  INC.	
  
PERFORMANCE	
  AND	
  3D	
  
y 

Performance	
  is	
  very	
  important	
  for	
  high-­‐end	
  3D	
  
‒ SimulaSons:	
  parScles,	
  crowds,	
  materials,	
  hair	
  
‒ Rendering:	
  scene	
  culling,	
  subdivisions,	
  path	
  tracing	
  

y 

Quality	
  of	
  3D	
  content	
  is	
  largely	
  driven	
  by	
  available	
  
performance	
  

2	
   |	
  	
  	
  HSA	
  AND	
  FABRIC	
  ENGINE:	
  A	
  GAME	
  CHANGER	
  FOR	
  DIGITAL	
  CONTENT	
  CREATION	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  
PERFORMANCE	
  AND	
  3D	
  
y 

GPU	
  came	
  from	
  3D,	
  but	
  sSll	
  mostly	
  used	
  for	
  rendering	
  in	
  
high-­‐end	
  3D	
  content	
  creaSon	
  
‒ GPU	
  compute	
  is	
  domain	
  of	
  “ninja	
  coders”	
  
‒ SSll	
  o[en	
  done	
  through	
  “shader	
  hacks”!	
  

y 

Need	
  to	
  democraSze	
  the	
  GPU!	
  

3	
   |	
  	
  	
  HSA	
  AND	
  FABRIC	
  ENGINE:	
  A	
  GAME	
  CHANGER	
  FOR	
  DIGITAL	
  CONTENT	
  CREATION	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  
WHAT	
  IS	
  FABRIC	
  ENGINE?	
  
y 

A	
  high-­‐performance	
  plaborm	
  for	
  building	
  3D	
  
applicaSons,	
  effects	
  and	
  tools.	
  
‒ OpSmized	
  naSve	
  code	
  
‒ Parallelism	
  
‒ High-­‐end	
  3D	
  for	
  media	
  and	
  entertainment	
  

y 

ApplicaSons	
  can	
  be	
  standalone	
  and/or	
  embedded	
  in	
  
DCCs	
  (Maya,	
  So[image,	
  3DSMax,	
  …)	
  

4	
   |	
  	
  	
  HSA	
  AND	
  FABRIC	
  ENGINE:	
  A	
  GAME	
  CHANGER	
  FOR	
  DIGITAL	
  CONTENT	
  CREATION	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  
WHAT	
  IS	
  FABRIC	
  ENGINE?	
  
} Fabric	
  Engine	
  SIGGRAPH	
  2013	
  teaser	
  video:	
  hjp://vimeo.com/70421665	
  

5	
   |	
  	
  	
  HSA	
  AND	
  FABRIC	
  ENGINE:	
  A	
  GAME	
  CHANGER	
  FOR	
  DIGITAL	
  CONTENT	
  CREATION	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  
WHAT	
  IS	
  FABRIC	
  ENGINE?	
  
y 

ApplicaSons	
  are	
  a	
  combinaSon	
  of	
  Python	
  (or	
  a	
  DCC)	
  and	
  
KL	
  
‒ Python/DCC:	
  UI,	
  construcSon	
  of	
  3D	
  scenes	
  
‒ KL:	
  rendering,	
  simulaSon,	
  effects	
  and	
  data	
  import/export	
  
‒ Python/DCC	
  drives	
  execuSon	
  of	
  KL	
  code	
  

6	
   |	
  	
  	
  HSA	
  AND	
  FABRIC	
  ENGINE:	
  A	
  GAME	
  CHANGER	
  FOR	
  DIGITAL	
  CONTENT	
  CREATION	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  
HORDE	
  
y 

Horde:	
  High-­‐End	
  Crowd	
  SimulaSon	
  
‒ Thousands	
  of	
  interacSng	
  characters	
  
‒ Rigging	
  (puppetry)	
  of	
  each	
  character	
  
‒ Behaviour	
  of	
  characters	
  
‒ A	
  typical	
  Fabric	
  Engine	
  applicaSon	
  

7	
   |	
  	
  	
  HSA	
  AND	
  FABRIC	
  ENGINE:	
  A	
  GAME	
  CHANGER	
  FOR	
  DIGITAL	
  CONTENT	
  CREATION	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  
THE	
  KL	
  LANGUAGE	
  
Procedural	
  
y  JavaScript-­‐like	
  syntax	
  
y  Rich	
  type	
  system	
  
y 

‒ Integers,	
  Booleans,	
  Floats,	
  Strings	
  
‒ Fixed-­‐	
  and	
  variable-­‐size	
  arrays;	
  
dicSonaries	
  
‒ Structures	
  and	
  Objects	
  
y 

Pointer-­‐free	
  

8	
   |	
  	
  	
  HSA	
  AND	
  FABRIC	
  ENGINE:	
  A	
  GAME	
  CHANGER	
  FOR	
  DIGITAL	
  CONTENT	
  CREATION	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  
THE	
  KL	
  LANGUAGE	
  
y 

A	
  simple	
  language	
  
‒ Accessible	
  to	
  “technical	
  arSsts”	
  

9	
   |	
  	
  	
  HSA	
  AND	
  FABRIC	
  ENGINE:	
  A	
  GAME	
  CHANGER	
  FOR	
  DIGITAL	
  CONTENT	
  CREATION	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  
THE	
  KL	
  LANGUAGE	
  
y 

KL	
  is	
  built	
  on	
  LLVM	
  
‒ Targets	
  many	
  plaborms	
  
‒ Rich	
  opSmizaSons	
  
‒ Amazing	
  API	
  

y 

KL	
  was	
  originally	
  designed	
  with	
  only	
  CPUs	
  in	
  mind	
  
‒ Can	
  it	
  target	
  the	
  GPU?	
  

10	
   |	
  	
  	
  HSA	
  AND	
  FABRIC	
  ENGINE:	
  A	
  GAME	
  CHANGER	
  FOR	
  DIGITAL	
  CONTENT	
  CREATION	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  
SUPPORTING	
  HSA	
  GPUS	
  
y 

Goals	
  
‒ Allow	
  most	
  KL	
  code	
  to	
  run	
  without	
  modificaSon	
  on	
  HSA	
  GPUs	
  
‒ Allow	
  KL	
  code	
  on	
  CPU	
  to	
  perform	
  a	
  parallel	
  evaluaSon	
  of	
  other	
  
KL	
  code	
  on	
  GPU	
  
‒ Make	
  memory	
  management	
  as	
  easy	
  as	
  possible	
  

11	
   |	
  	
  	
  HSA	
  AND	
  FABRIC	
  ENGINE:	
  A	
  GAME	
  CHANGER	
  FOR	
  DIGITAL	
  CONTENT	
  CREATION	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  
SUPPORTING	
  HSA	
  GPUS	
  
} Video	
  demo	
  of	
  Maya	
  integraSon	
  of	
  water	
  simulaSon	
  running	
  on	
  HSA	
  inside	
  Maya	
  

12	
   |	
  	
  	
  HSA	
  AND	
  FABRIC	
  ENGINE:	
  A	
  GAME	
  CHANGER	
  FOR	
  DIGITAL	
  CONTENT	
  CREATION	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  
SUPPORTING	
  HSA	
  GPUS	
  
y 

Challenges	
  
‒ KL	
  runSme	
  library	
  is	
  C++	
  
‒ MulSple	
  address	
  spaces	
  on	
  GPUs	
  
‒ KL	
  is	
  high-­‐level	
  
‒ Dynamic	
  memory	
  management	
  
‒ ExcepSons	
  
‒ “Virtual	
  funcSons”	
  

13	
   |	
  	
  	
  HSA	
  AND	
  FABRIC	
  ENGINE:	
  A	
  GAME	
  CHANGER	
  FOR	
  DIGITAL	
  CONTENT	
  CREATION	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  
STAGE	
  ONE	
  
Goal:	
  get	
  compiler	
  unit	
  tests	
  passing	
  on	
  GPU	
  
y  Convert	
  KL	
  runSme	
  library	
  to	
  LLVM	
  IR	
  
y  Support	
  mulSple	
  address	
  spaces	
  
y 

‒ AutomaSc	
  regeneraSon	
  of	
  LLVM	
  funcSons	
  for	
  correct	
  address	
  
spaces	
  
y 

Create	
  HSA-­‐based	
  test	
  harness	
  

14	
   |	
  	
  	
  HSA	
  AND	
  FABRIC	
  ENGINE:	
  A	
  GAME	
  CHANGER	
  FOR	
  DIGITAL	
  CONTENT	
  CREATION	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  
KL	
  RUNTIME	
  LIBRARY	
  
y 

Originally,	
  KL	
  runSme	
  library	
  was	
  wrijen	
  in	
  C++	
  
‒ Not	
  GPU-­‐compaSble	
  

LLVM	
  is	
  very	
  good	
  at	
  inlining	
  
y  EnSre	
  runSme	
  library	
  was	
  converted	
  into	
  code	
  that	
  
builds	
  LLVM	
  IR	
  
y 

‒ EffecSvely,	
  runSme	
  library	
  is	
  now	
  dynamically	
  compiled	
  
‒ Very	
  low	
  level,	
  eg.	
  conversion	
  of	
  float	
  to	
  string	
  

15	
   |	
  	
  	
  HSA	
  AND	
  FABRIC	
  ENGINE:	
  A	
  GAME	
  CHANGER	
  FOR	
  DIGITAL	
  CONTENT	
  CREATION	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  
MULTIPLE	
  ADDRESS	
  SPACES	
  
GPU	
  differenSates	
  between	
  pointers	
  to	
  private,	
  local	
  and	
  
global	
  memory	
  
y  Rewrote	
  KL	
  code	
  generators	
  to	
  account	
  for	
  address	
  
spaces	
  
y 

‒ If	
  same	
  funcSon	
  is	
  used	
  with	
  two	
  different	
  combinaSons	
  of	
  
pointer	
  type,	
  funcSon	
  is	
  generated	
  twice	
  

16	
   |	
  	
  	
  HSA	
  AND	
  FABRIC	
  ENGINE:	
  A	
  GAME	
  CHANGER	
  FOR	
  DIGITAL	
  CONTENT	
  CREATION	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  
KL	
  UNIT	
  TESTS	
  
KL	
  has	
  a	
  rich	
  set	
  of	
  unit	
  tests	
  (~400	
  tests)	
  
y  GPU	
  test	
  harness	
  was	
  easy	
  to	
  write	
  
y 

‒ HSA	
  runSme	
  API	
  
‒ Pass	
  LLVM	
  IR	
  to	
  AMD	
  compiler	
  library	
  in	
  place	
  of	
  OpenCL	
  
‒ Simulate	
  a	
  heap	
  and	
  “prinb”	
  
y 

A	
  few	
  HSA-­‐related	
  problems	
  in	
  our	
  code	
  
‒ Alignment,	
  global	
  iniSalizaSon,	
  intrinsics	
  

17	
   |	
  	
  	
  HSA	
  AND	
  FABRIC	
  ENGINE:	
  A	
  GAME	
  CHANGER	
  FOR	
  DIGITAL	
  CONTENT	
  CREATION	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  
STAGE	
  ONE	
  RESULTS	
  
y 

Vast	
  majority	
  of	
  KL	
  unit	
  tests	
  pass	
  on	
  HSA	
  
‒ Failures	
  are	
  very	
  isolated	
  
‒ eg.	
  unsupported	
  transcendentals	
  
‒ LLVM	
  IR	
  -­‐>	
  HSAIL	
  path	
  in	
  AMD	
  compiler	
  library	
  is	
  stable	
  

18	
   |	
  	
  	
  HSA	
  AND	
  FABRIC	
  ENGINE:	
  A	
  GAME	
  CHANGER	
  FOR	
  DIGITAL	
  CONTENT	
  CREATION	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  
STAGE	
  TWO	
  
y 

Goal:	
  support	
  trampoline	
  from	
  CPU	
  to	
  GPU	
  
‒ Meaning:	
  GPU	
  kernel	
  execuSon	
  from	
  KL	
  code	
  running	
  on	
  CPU	
  
‒ GPU-­‐enable	
  parallel	
  execute	
  (PEX)	
  operaSon

y 

Use	
  OpenGL	
  interop	
  for	
  direct	
  rendering	
  

19	
   |	
  	
  	
  HSA	
  AND	
  FABRIC	
  ENGINE:	
  A	
  GAME	
  CHANGER	
  FOR	
  DIGITAL	
  CONTENT	
  CREATION	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  
PARALLEL	
  EXECUTE	
  (PEX)	
  OPERATION	
  
y 

KL	
  parallel	
  PEX	
  primiSve	
  adapted	
  for	
  GPU	
  execuSon	
  
‒ Simple	
  one-­‐dimensional	
  parallel	
  call	
  
‒ Decision	
  to	
  run	
  on	
  GPU	
  made	
  at	
  runSme	
  

20	
   |	
  	
  	
  HSA	
  AND	
  FABRIC	
  ENGINE:	
  A	
  GAME	
  CHANGER	
  FOR	
  DIGITAL	
  CONTENT	
  CREATION	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  
PARALLEL	
  EXECUTE	
  (PEX)	
  OPERATION
operator gpuKernel<<<index>>>(MyStruct myStruct) {
report(“[“ + index + “]: myStruct=“ + myStruct);
}
operator cpuKernel() {
UInt32 count = 4096;
Boolean useGPU = true;
MyStruct myStruct;
// Execute kernel 4096 times on GPU
kernel<<<count@useGPU>>>(myStruct);
}

21	
   |	
  	
  	
  HSA	
  AND	
  FABRIC	
  ENGINE:	
  A	
  GAME	
  CHANGER	
  FOR	
  DIGITAL	
  CONTENT	
  CREATION	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  
PARALLEL	
  EXECUTE	
  (PEX)	
  OPERATION	
  
y 

KL	
  parallel	
  PEX	
  primiSve	
  adapted	
  for	
  GPU	
  execuSon	
  
‒ Compiles	
  KL	
  code	
  to	
  GPU	
  kernel	
  (if	
  not	
  cached)	
  
‒ Creates	
  “trampoline”	
  from	
  CPU	
  to	
  HSA	
  in	
  CPU	
  code	
  
‒ Passes	
  arguments	
  to	
  kernel	
  
‒ Direct	
  values	
  or	
  pointers	
  to	
  shared	
  memory	
  
‒ Calls	
  HsaSubmitAql

22	
   |	
  	
  	
  HSA	
  AND	
  FABRIC	
  ENGINE:	
  A	
  GAME	
  CHANGER	
  FOR	
  DIGITAL	
  CONTENT	
  CREATION	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  
MEMORY	
  REGISTRATION
y 

HSA	
  runSme:	
  All	
  memory	
  shared	
  between	
  CPU	
  and	
  HSA	
  
must	
  be	
  registered	
  
‒ HsaRegisterSystemMemory
‒ For	
  dynamic	
  memory,	
  this	
  is	
  easy	
  
‒ HSA	
  runSme	
  provides	
  a	
  heap!	
  
‒ What	
  about	
  variables	
  allocated	
  on	
  CPU	
  stack?	
  

23	
   |	
  	
  	
  HSA	
  AND	
  FABRIC	
  ENGINE:	
  A	
  GAME	
  CHANGER	
  FOR	
  DIGITAL	
  CONTENT	
  CREATION	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  
MEMORY	
  REGISTRATION

operator cpuCode() {
UInt32 count = 4096;
Boolean useGPU = true;
MyStruct myStructOnStack;
// Execute kernel 4096 times on GPU
kernel<<<count@useGPU>>>(myStructOnStack);
}

24	
   |	
  	
  	
  HSA	
  AND	
  FABRIC	
  ENGINE:	
  A	
  GAME	
  CHANGER	
  FOR	
  DIGITAL	
  CONTENT	
  CREATION	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  
MEMORY	
  REGISTRATION
y 

SoluSon:	
  alternate	
  stack	
  
‒ Register	
  stack	
  for	
  each	
  CPU	
  thread	
  in	
  HSA-­‐registered	
  memory	
  
‒ Every	
  call	
  to	
  KL	
  code	
  “trampolines”	
  to	
  registered	
  stack	
  

25	
   |	
  	
  	
  HSA	
  AND	
  FABRIC	
  ENGINE:	
  A	
  GAME	
  CHANGER	
  FOR	
  DIGITAL	
  CONTENT	
  CREATION	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  
DYNAMIC	
  MEMORY	
  ALLOCATION
y 

KL	
  supports	
  dynamic	
  allocaSon	
  
‒ Internal	
  to	
  types	
  (eg.	
  variable-­‐length	
  arrays,	
  strings)	
  
‒ HsaAllocateSystemMemory	
  on	
  CPU	
  
‒ Well-­‐known	
  GPU	
  allocaSon	
  algorithms	
  
‒ eg.	
  ScajerAlloc	
  
‒ What	
  about	
  mixed	
  allocaSon?	
  

26	
   |	
  	
  	
  HSA	
  AND	
  FABRIC	
  ENGINE:	
  A	
  GAME	
  CHANGER	
  FOR	
  DIGITAL	
  CONTENT	
  CREATION	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  
DYNAMIC	
  MEMORY	
  ALLOCATION
operator cpuKernel() {
UInt32 a[][];
a.resize(4096); // alloc CPU mem
for (Index i=0; i<4096; ++i) a.resize(i%32); // alloc CPU mem
gpuKernel<<<4096@true>>>(a);
a.clear(); // free GPU mem and CPU mem
}
operator gpuKernel<<<index>>>(UInt32 a[][]) {
a[index].resize(index%64); // free CPU mem, alloc GPU mem
}

27	
   |	
  	
  	
  HSA	
  AND	
  FABRIC	
  ENGINE:	
  A	
  GAME	
  CHANGER	
  FOR	
  DIGITAL	
  CONTENT	
  CREATION	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  
DYNAMIC	
  MEMORY	
  ALLOCATION
y 

How	
  to	
  manage	
  mixed	
  allocaSon?	
  
‒ Defer	
  incompaSble	
  frees	
  
‒ GPU	
  kernels	
  atomically	
  append	
  GPU	
  pointers	
  to	
  be	
  freed	
  to	
  a	
  list	
  
‒ CPU	
  frees	
  pointers	
  when	
  kernel	
  finishes	
  
‒ CPU	
  can	
  free	
  GPU	
  pointers	
  
‒ Using	
  either	
  system	
  atomics	
  or	
  a	
  simple	
  mutex	
  

28	
   |	
  	
  	
  HSA	
  AND	
  FABRIC	
  ENGINE:	
  A	
  GAME	
  CHANGER	
  FOR	
  DIGITAL	
  CONTENT	
  CREATION	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  
STAGE TWO RESULTS"

For	
  command-­‐line	
  tests	
  (eg.	
  naïve	
  matrix	
  mulSplies):	
  
5x-­‐15x	
  performance	
  improvement	
  
y  For	
  real-­‐world	
  tests	
  (eg.	
  embedded	
  in	
  UI):	
  up	
  to	
  5x	
  
performance	
  improvement	
  
y  3D	
  effects	
  can	
  be	
  run	
  in	
  real-­‐Sme	
  
y 

29	
   |	
  	
  	
  HSA	
  AND	
  FABRIC	
  ENGINE:	
  A	
  GAME	
  CHANGER	
  FOR	
  DIGITAL	
  CONTENT	
  CREATION	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  
STAGE TWO RESULTS"
y 

Paradigm	
  shi[	
  for	
  programmaSc	
  effects	
  
‒ Technical	
  arSsts	
  can	
  make	
  run-­‐Sme	
  changes	
  to	
  GPU	
  code	
  and	
  
see	
  the	
  results	
  in	
  real-­‐Sme	
  

30	
   |	
  	
  	
  HSA	
  AND	
  FABRIC	
  ENGINE:	
  A	
  GAME	
  CHANGER	
  FOR	
  DIGITAL	
  CONTENT	
  CREATION	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  
ONGOING	
  WORK	
  
y 

OpenGL	
  interop	
  
‒ Tag	
  KL	
  arrays	
  as	
  bound	
  to	
  VBOs	
  

GPU-­‐to-­‐GPU	
  PEX	
  
y  Virtual	
  funcSons	
  on	
  GPU	
  
y  Debugger	
  for	
  GPU	
  
	
  
y 

31	
   |	
  	
  	
  HSA	
  AND	
  FABRIC	
  ENGINE:	
  A	
  GAME	
  CHANGER	
  FOR	
  DIGITAL	
  CONTENT	
  CREATION	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  

More Related Content

What's hot

CE-4028, Miracast with AMD Wireless Display technology – Kickass gaming and o...
CE-4028, Miracast with AMD Wireless Display technology – Kickass gaming and o...CE-4028, Miracast with AMD Wireless Display technology – Kickass gaming and o...
CE-4028, Miracast with AMD Wireless Display technology – Kickass gaming and o...AMD Developer Central
 
GS-4139, RapidFire for Cloud Gaming, by Dmitry Kozlov
GS-4139, RapidFire for Cloud Gaming, by Dmitry KozlovGS-4139, RapidFire for Cloud Gaming, by Dmitry Kozlov
GS-4139, RapidFire for Cloud Gaming, by Dmitry KozlovAMD Developer Central
 
WT-4073, ANGLE and cross-platform WebGL support, by Shannon Woods
WT-4073, ANGLE and cross-platform WebGL support, by Shannon WoodsWT-4073, ANGLE and cross-platform WebGL support, by Shannon Woods
WT-4073, ANGLE and cross-platform WebGL support, by Shannon WoodsAMD Developer Central
 
PL-4089, Accelerating and Evaluating OpenCL Graph Applications, by Shuai Che,...
PL-4089, Accelerating and Evaluating OpenCL Graph Applications, by Shuai Che,...PL-4089, Accelerating and Evaluating OpenCL Graph Applications, by Shuai Che,...
PL-4089, Accelerating and Evaluating OpenCL Graph Applications, by Shuai Che,...AMD Developer Central
 
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 ...AMD Developer Central
 
WT-4151, Efficient Delivery of 3D Web Contents with Khronos and MPEG Technolo...
WT-4151, Efficient Delivery of 3D Web Contents with Khronos and MPEG Technolo...WT-4151, Efficient Delivery of 3D Web Contents with Khronos and MPEG Technolo...
WT-4151, Efficient Delivery of 3D Web Contents with Khronos and MPEG Technolo...AMD Developer Central
 
WT-4064, Build Rich Applications with HTML5 and WebGL, by Tony Parisi
WT-4064, Build Rich Applications with HTML5 and WebGL, by Tony ParisiWT-4064, Build Rich Applications with HTML5 and WebGL, by Tony Parisi
WT-4064, Build Rich Applications with HTML5 and WebGL, by Tony ParisiAMD Developer Central
 
PT-4053, Advanced OpenCL - Debugging and Profiling Using AMD CodeXL, by Uri S...
PT-4053, Advanced OpenCL - Debugging and Profiling Using AMD CodeXL, by Uri S...PT-4053, Advanced OpenCL - Debugging and Profiling Using AMD CodeXL, by Uri S...
PT-4053, Advanced OpenCL - Debugging and Profiling Using AMD CodeXL, by Uri S...AMD Developer Central
 
PT-4059, Bolt: A C++ Template Library for Heterogeneous Computing, by Ben Sander
PT-4059, Bolt: A C++ Template Library for Heterogeneous Computing, by Ben SanderPT-4059, Bolt: A C++ Template Library for Heterogeneous Computing, by Ben Sander
PT-4059, Bolt: A C++ Template Library for Heterogeneous Computing, by Ben SanderAMD Developer Central
 
HC-4022, Towards an Ecosystem for Heterogeneous Parallel Computing, by Wu Feng
HC-4022, Towards an Ecosystem for Heterogeneous Parallel Computing, by Wu FengHC-4022, Towards an Ecosystem for Heterogeneous Parallel Computing, by Wu Feng
HC-4022, Towards an Ecosystem for Heterogeneous Parallel Computing, by Wu FengAMD Developer Central
 
Keynote (Johan Andersson) - Mantle for Developers - by Johan Andersson, Techn...
Keynote (Johan Andersson) - Mantle for Developers - by Johan Andersson, Techn...Keynote (Johan Andersson) - Mantle for Developers - by Johan Andersson, Techn...
Keynote (Johan Andersson) - Mantle for Developers - by Johan Andersson, Techn...AMD Developer Central
 
PT-4052, Introduction to AMD Developer Tools, by Yaki Tebeka and Gordon Selley
PT-4052, Introduction to AMD Developer Tools, by Yaki Tebeka and Gordon SelleyPT-4052, Introduction to AMD Developer Tools, by Yaki Tebeka and Gordon Selley
PT-4052, Introduction to AMD Developer Tools, by Yaki Tebeka and Gordon SelleyAMD Developer Central
 
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...AMD Developer Central
 
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...AMD Developer Central
 
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, ...AMD Developer Central
 
MM-4099, Adapting game content to the viewing environment, by Noman Hashim
MM-4099, Adapting game content to the viewing environment, by Noman HashimMM-4099, Adapting game content to the viewing environment, by Noman Hashim
MM-4099, Adapting game content to the viewing environment, by Noman HashimAMD Developer Central
 
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...AMD Developer Central
 
CC-4006, Deliver Hardware Accelerated Applications Using RemoteFX vGPU with W...
CC-4006, Deliver Hardware Accelerated Applications Using RemoteFX vGPU with W...CC-4006, Deliver Hardware Accelerated Applications Using RemoteFX vGPU with W...
CC-4006, Deliver Hardware Accelerated Applications Using RemoteFX vGPU with W...AMD Developer Central
 
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 ...AMD Developer Central
 
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...AMD Developer Central
 

What's hot (20)

CE-4028, Miracast with AMD Wireless Display technology – Kickass gaming and o...
CE-4028, Miracast with AMD Wireless Display technology – Kickass gaming and o...CE-4028, Miracast with AMD Wireless Display technology – Kickass gaming and o...
CE-4028, Miracast with AMD Wireless Display technology – Kickass gaming and o...
 
GS-4139, RapidFire for Cloud Gaming, by Dmitry Kozlov
GS-4139, RapidFire for Cloud Gaming, by Dmitry KozlovGS-4139, RapidFire for Cloud Gaming, by Dmitry Kozlov
GS-4139, RapidFire for Cloud Gaming, by Dmitry Kozlov
 
WT-4073, ANGLE and cross-platform WebGL support, by Shannon Woods
WT-4073, ANGLE and cross-platform WebGL support, by Shannon WoodsWT-4073, ANGLE and cross-platform WebGL support, by Shannon Woods
WT-4073, ANGLE and cross-platform WebGL support, by Shannon Woods
 
PL-4089, Accelerating and Evaluating OpenCL Graph Applications, by Shuai Che,...
PL-4089, Accelerating and Evaluating OpenCL Graph Applications, by Shuai Che,...PL-4089, Accelerating and Evaluating OpenCL Graph Applications, by Shuai Che,...
PL-4089, Accelerating and Evaluating OpenCL Graph Applications, by Shuai Che,...
 
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 ...
 
WT-4151, Efficient Delivery of 3D Web Contents with Khronos and MPEG Technolo...
WT-4151, Efficient Delivery of 3D Web Contents with Khronos and MPEG Technolo...WT-4151, Efficient Delivery of 3D Web Contents with Khronos and MPEG Technolo...
WT-4151, Efficient Delivery of 3D Web Contents with Khronos and MPEG Technolo...
 
WT-4064, Build Rich Applications with HTML5 and WebGL, by Tony Parisi
WT-4064, Build Rich Applications with HTML5 and WebGL, by Tony ParisiWT-4064, Build Rich Applications with HTML5 and WebGL, by Tony Parisi
WT-4064, Build Rich Applications with HTML5 and WebGL, by Tony Parisi
 
PT-4053, Advanced OpenCL - Debugging and Profiling Using AMD CodeXL, by Uri S...
PT-4053, Advanced OpenCL - Debugging and Profiling Using AMD CodeXL, by Uri S...PT-4053, Advanced OpenCL - Debugging and Profiling Using AMD CodeXL, by Uri S...
PT-4053, Advanced OpenCL - Debugging and Profiling Using AMD CodeXL, by Uri S...
 
PT-4059, Bolt: A C++ Template Library for Heterogeneous Computing, by Ben Sander
PT-4059, Bolt: A C++ Template Library for Heterogeneous Computing, by Ben SanderPT-4059, Bolt: A C++ Template Library for Heterogeneous Computing, by Ben Sander
PT-4059, Bolt: A C++ Template Library for Heterogeneous Computing, by Ben Sander
 
HC-4022, Towards an Ecosystem for Heterogeneous Parallel Computing, by Wu Feng
HC-4022, Towards an Ecosystem for Heterogeneous Parallel Computing, by Wu FengHC-4022, Towards an Ecosystem for Heterogeneous Parallel Computing, by Wu Feng
HC-4022, Towards an Ecosystem for Heterogeneous Parallel Computing, by Wu Feng
 
Keynote (Johan Andersson) - Mantle for Developers - by Johan Andersson, Techn...
Keynote (Johan Andersson) - Mantle for Developers - by Johan Andersson, Techn...Keynote (Johan Andersson) - Mantle for Developers - by Johan Andersson, Techn...
Keynote (Johan Andersson) - Mantle for Developers - by Johan Andersson, Techn...
 
PT-4052, Introduction to AMD Developer Tools, by Yaki Tebeka and Gordon Selley
PT-4052, Introduction to AMD Developer Tools, by Yaki Tebeka and Gordon SelleyPT-4052, Introduction to AMD Developer Tools, by Yaki Tebeka and Gordon Selley
PT-4052, Introduction to AMD Developer Tools, by Yaki Tebeka and Gordon Selley
 
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...
 
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...
 
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, ...
 
MM-4099, Adapting game content to the viewing environment, by Noman Hashim
MM-4099, Adapting game content to the viewing environment, by Noman HashimMM-4099, Adapting game content to the viewing environment, by Noman Hashim
MM-4099, Adapting game content to the viewing environment, by Noman Hashim
 
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...
 
CC-4006, Deliver Hardware Accelerated Applications Using RemoteFX vGPU with W...
CC-4006, Deliver Hardware Accelerated Applications Using RemoteFX vGPU with W...CC-4006, Deliver Hardware Accelerated Applications Using RemoteFX vGPU with W...
CC-4006, Deliver Hardware Accelerated Applications Using RemoteFX vGPU with W...
 
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 ...
 
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...
 

Viewers also liked

What Fabric Engine Can Do With HSA
What Fabric Engine Can Do With HSAWhat Fabric Engine Can Do With HSA
What Fabric Engine Can Do With HSAHSA Foundation
 
Fabric Engine: Why HSA is Invaluable
Fabric Engine: Why HSA is  InvaluableFabric Engine: Why HSA is  Invaluable
Fabric Engine: Why HSA is InvaluableHSA Foundation
 
"A Better Tomorrow" for Renderman@ddsdream.com
"A Better Tomorrow" for Renderman@ddsdream.com"A Better Tomorrow" for Renderman@ddsdream.com
"A Better Tomorrow" for Renderman@ddsdream.comYonghwan SO
 
Custom fabric shader for unreal engine 4
Custom fabric shader for unreal engine 4Custom fabric shader for unreal engine 4
Custom fabric shader for unreal engine 4동석 김
 
문과생 대상 파이썬을 활용한 데이터 분석 강의
문과생 대상 파이썬을 활용한 데이터 분석 강의문과생 대상 파이썬을 활용한 데이터 분석 강의
문과생 대상 파이썬을 활용한 데이터 분석 강의Kwangyoun Jung
 
Unity Surface Shader for Artist 01
Unity Surface Shader for Artist 01Unity Surface Shader for Artist 01
Unity Surface Shader for Artist 01SangYun Yi
 
Game Visual Art Technologies
Game Visual Art TechnologiesGame Visual Art Technologies
Game Visual Art TechnologiesSangYun Yi
 

Viewers also liked (9)

20120921
2012092120120921
20120921
 
What Fabric Engine Can Do With HSA
What Fabric Engine Can Do With HSAWhat Fabric Engine Can Do With HSA
What Fabric Engine Can Do With HSA
 
Fabric Engine: Why HSA is Invaluable
Fabric Engine: Why HSA is  InvaluableFabric Engine: Why HSA is  Invaluable
Fabric Engine: Why HSA is Invaluable
 
Fabric Engine: Scene graph 2.0
Fabric Engine: Scene graph 2.0Fabric Engine: Scene graph 2.0
Fabric Engine: Scene graph 2.0
 
"A Better Tomorrow" for Renderman@ddsdream.com
"A Better Tomorrow" for Renderman@ddsdream.com"A Better Tomorrow" for Renderman@ddsdream.com
"A Better Tomorrow" for Renderman@ddsdream.com
 
Custom fabric shader for unreal engine 4
Custom fabric shader for unreal engine 4Custom fabric shader for unreal engine 4
Custom fabric shader for unreal engine 4
 
문과생 대상 파이썬을 활용한 데이터 분석 강의
문과생 대상 파이썬을 활용한 데이터 분석 강의문과생 대상 파이썬을 활용한 데이터 분석 강의
문과생 대상 파이썬을 활용한 데이터 분석 강의
 
Unity Surface Shader for Artist 01
Unity Surface Shader for Artist 01Unity Surface Shader for Artist 01
Unity Surface Shader for Artist 01
 
Game Visual Art Technologies
Game Visual Art TechnologiesGame Visual Art Technologies
Game Visual Art Technologies
 

Similar to HSA and Fabric Engine: Boosting 3D Content Creation Performance

HSA-4024, OpenJDK Sumatra Project: Bringing the GPU to Java, by Eric Caspole
HSA-4024, OpenJDK Sumatra Project: Bringing the GPU to Java, by Eric CaspoleHSA-4024, OpenJDK Sumatra Project: Bringing the GPU to Java, by Eric Caspole
HSA-4024, OpenJDK Sumatra Project: Bringing the GPU to Java, by Eric CaspoleAMD Developer Central
 
Accelerating Apache Spark by Several Orders of Magnitude with GPUs and RAPIDS...
Accelerating Apache Spark by Several Orders of Magnitude with GPUs and RAPIDS...Accelerating Apache Spark by Several Orders of Magnitude with GPUs and RAPIDS...
Accelerating Apache Spark by Several Orders of Magnitude with GPUs and RAPIDS...Databricks
 
Heterogeneous Data Mining with Spark
Heterogeneous Data Mining with SparkHeterogeneous Data Mining with Spark
Heterogeneous Data Mining with SparkKNIMESlides
 
Python and H2O with Cliff Click at PyData Dallas 2015
Python and H2O with Cliff Click at PyData Dallas 2015Python and H2O with Cliff Click at PyData Dallas 2015
Python and H2O with Cliff Click at PyData Dallas 2015Sri Ambati
 
ITGM#14 - How do we use Kubernetes in Zalando
ITGM#14 - How do we use Kubernetes in ZalandoITGM#14 - How do we use Kubernetes in Zalando
ITGM#14 - How do we use Kubernetes in ZalandoUri Savelchev
 
Best Practices for Building Open Source Data Layers
Best Practices for Building Open Source Data LayersBest Practices for Building Open Source Data Layers
Best Practices for Building Open Source Data LayersIBMCompose
 
Notebook-based AI Pipelines with Elyra and Kubeflow
Notebook-based AI Pipelines with Elyra and KubeflowNotebook-based AI Pipelines with Elyra and Kubeflow
Notebook-based AI Pipelines with Elyra and KubeflowNick Pentreath
 
Grokking TechTalk #29: Building Realtime Metrics Platform at LinkedIn
Grokking TechTalk #29: Building Realtime Metrics Platform at LinkedInGrokking TechTalk #29: Building Realtime Metrics Platform at LinkedIn
Grokking TechTalk #29: Building Realtime Metrics Platform at LinkedInGrokking VN
 
Building Notebook-based AI Pipelines with Elyra and Kubeflow
Building Notebook-based AI Pipelines with Elyra and KubeflowBuilding Notebook-based AI Pipelines with Elyra and Kubeflow
Building Notebook-based AI Pipelines with Elyra and KubeflowDatabricks
 
AWS Meetup Paris - Short URL project by Pernod Ricard
AWS Meetup Paris - Short URL project by Pernod RicardAWS Meetup Paris - Short URL project by Pernod Ricard
AWS Meetup Paris - Short URL project by Pernod RicardCharles Rapp
 
Building an analytics workflow using Apache Airflow
Building an analytics workflow using Apache AirflowBuilding an analytics workflow using Apache Airflow
Building an analytics workflow using Apache AirflowYohei Onishi
 
Bridging the Gap Between Data Scientists and Software Engineers – Deploying L...
Bridging the Gap Between Data Scientists and Software Engineers – Deploying L...Bridging the Gap Between Data Scientists and Software Engineers – Deploying L...
Bridging the Gap Between Data Scientists and Software Engineers – Deploying L...Databricks
 
Conquering the Lambda architecture in LinkedIn metrics platform with Apache C...
Conquering the Lambda architecture in LinkedIn metrics platform with Apache C...Conquering the Lambda architecture in LinkedIn metrics platform with Apache C...
Conquering the Lambda architecture in LinkedIn metrics platform with Apache C...Khai Tran
 
Build DynamoDB-Compatible Apps with Python
Build DynamoDB-Compatible Apps with PythonBuild DynamoDB-Compatible Apps with Python
Build DynamoDB-Compatible Apps with PythonScyllaDB
 
DevOps Days Tel Aviv - Serverless Architecture
DevOps Days Tel Aviv - Serverless ArchitectureDevOps Days Tel Aviv - Serverless Architecture
DevOps Days Tel Aviv - Serverless ArchitectureAntons Kranga
 
Deep Learning with GPUs in Production - AI By the Bay
Deep Learning with GPUs in Production - AI By the BayDeep Learning with GPUs in Production - AI By the Bay
Deep Learning with GPUs in Production - AI By the BayAdam Gibson
 
EFFICIENT 3D WEB CONTENT DELIVERY WITH KHRONOS AND MPEG TECHNOLOGIES
EFFICIENT 3D WEB CONTENT DELIVERY WITH KHRONOS AND MPEG TECHNOLOGIESEFFICIENT 3D WEB CONTENT DELIVERY WITH KHRONOS AND MPEG TECHNOLOGIES
EFFICIENT 3D WEB CONTENT DELIVERY WITH KHRONOS AND MPEG TECHNOLOGIESKhaled MAMOU
 
Kubernetes, Istio and Knative - noteworthy practical experience
Kubernetes, Istio and Knative - noteworthy practical experienceKubernetes, Istio and Knative - noteworthy practical experience
Kubernetes, Istio and Knative - noteworthy practical experienceSAP HANA Cloud Platform
 

Similar to HSA and Fabric Engine: Boosting 3D Content Creation Performance (20)

HSA-4024, OpenJDK Sumatra Project: Bringing the GPU to Java, by Eric Caspole
HSA-4024, OpenJDK Sumatra Project: Bringing the GPU to Java, by Eric CaspoleHSA-4024, OpenJDK Sumatra Project: Bringing the GPU to Java, by Eric Caspole
HSA-4024, OpenJDK Sumatra Project: Bringing the GPU to Java, by Eric Caspole
 
Accelerating Apache Spark by Several Orders of Magnitude with GPUs and RAPIDS...
Accelerating Apache Spark by Several Orders of Magnitude with GPUs and RAPIDS...Accelerating Apache Spark by Several Orders of Magnitude with GPUs and RAPIDS...
Accelerating Apache Spark by Several Orders of Magnitude with GPUs and RAPIDS...
 
Heterogeneous Data Mining with Spark
Heterogeneous Data Mining with SparkHeterogeneous Data Mining with Spark
Heterogeneous Data Mining with Spark
 
Python and H2O with Cliff Click at PyData Dallas 2015
Python and H2O with Cliff Click at PyData Dallas 2015Python and H2O with Cliff Click at PyData Dallas 2015
Python and H2O with Cliff Click at PyData Dallas 2015
 
ITGM#14 - How do we use Kubernetes in Zalando
ITGM#14 - How do we use Kubernetes in ZalandoITGM#14 - How do we use Kubernetes in Zalando
ITGM#14 - How do we use Kubernetes in Zalando
 
Best Practices for Building Open Source Data Layers
Best Practices for Building Open Source Data LayersBest Practices for Building Open Source Data Layers
Best Practices for Building Open Source Data Layers
 
Notebook-based AI Pipelines with Elyra and Kubeflow
Notebook-based AI Pipelines with Elyra and KubeflowNotebook-based AI Pipelines with Elyra and Kubeflow
Notebook-based AI Pipelines with Elyra and Kubeflow
 
Grokking TechTalk #29: Building Realtime Metrics Platform at LinkedIn
Grokking TechTalk #29: Building Realtime Metrics Platform at LinkedInGrokking TechTalk #29: Building Realtime Metrics Platform at LinkedIn
Grokking TechTalk #29: Building Realtime Metrics Platform at LinkedIn
 
Building Notebook-based AI Pipelines with Elyra and Kubeflow
Building Notebook-based AI Pipelines with Elyra and KubeflowBuilding Notebook-based AI Pipelines with Elyra and Kubeflow
Building Notebook-based AI Pipelines with Elyra and Kubeflow
 
AWS Meetup Paris - Short URL project by Pernod Ricard
AWS Meetup Paris - Short URL project by Pernod RicardAWS Meetup Paris - Short URL project by Pernod Ricard
AWS Meetup Paris - Short URL project by Pernod Ricard
 
AMD It's Time to ROC
AMD It's Time to ROCAMD It's Time to ROC
AMD It's Time to ROC
 
Building an analytics workflow using Apache Airflow
Building an analytics workflow using Apache AirflowBuilding an analytics workflow using Apache Airflow
Building an analytics workflow using Apache Airflow
 
Bridging the Gap Between Data Scientists and Software Engineers – Deploying L...
Bridging the Gap Between Data Scientists and Software Engineers – Deploying L...Bridging the Gap Between Data Scientists and Software Engineers – Deploying L...
Bridging the Gap Between Data Scientists and Software Engineers – Deploying L...
 
Conquering the Lambda architecture in LinkedIn metrics platform with Apache C...
Conquering the Lambda architecture in LinkedIn metrics platform with Apache C...Conquering the Lambda architecture in LinkedIn metrics platform with Apache C...
Conquering the Lambda architecture in LinkedIn metrics platform with Apache C...
 
Build DynamoDB-Compatible Apps with Python
Build DynamoDB-Compatible Apps with PythonBuild DynamoDB-Compatible Apps with Python
Build DynamoDB-Compatible Apps with Python
 
Top conf serverlezz
Top conf   serverlezzTop conf   serverlezz
Top conf serverlezz
 
DevOps Days Tel Aviv - Serverless Architecture
DevOps Days Tel Aviv - Serverless ArchitectureDevOps Days Tel Aviv - Serverless Architecture
DevOps Days Tel Aviv - Serverless Architecture
 
Deep Learning with GPUs in Production - AI By the Bay
Deep Learning with GPUs in Production - AI By the BayDeep Learning with GPUs in Production - AI By the Bay
Deep Learning with GPUs in Production - AI By the Bay
 
EFFICIENT 3D WEB CONTENT DELIVERY WITH KHRONOS AND MPEG TECHNOLOGIES
EFFICIENT 3D WEB CONTENT DELIVERY WITH KHRONOS AND MPEG TECHNOLOGIESEFFICIENT 3D WEB CONTENT DELIVERY WITH KHRONOS AND MPEG TECHNOLOGIES
EFFICIENT 3D WEB CONTENT DELIVERY WITH KHRONOS AND MPEG TECHNOLOGIES
 
Kubernetes, Istio and Knative - noteworthy practical experience
Kubernetes, Istio and Knative - noteworthy practical experienceKubernetes, Istio and Knative - noteworthy practical experience
Kubernetes, Istio and Knative - noteworthy practical experience
 

More from AMD Developer Central

DX12 & Vulkan: Dawn of a New Generation of Graphics APIs
DX12 & Vulkan: Dawn of a New Generation of Graphics APIsDX12 & Vulkan: Dawn of a New Generation of Graphics APIs
DX12 & Vulkan: Dawn of a New Generation of Graphics APIsAMD Developer Central
 
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 LibrariesAMD Developer Central
 
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 WebinarAMD Developer Central
 
Webinar: Whats New in Java 8 with Develop Intelligence
Webinar: Whats New in Java 8 with Develop IntelligenceWebinar: Whats New in Java 8 with Develop Intelligence
Webinar: Whats New in Java 8 with Develop IntelligenceAMD Developer Central
 
The Small Batch (and other) solutions in Mantle API, by Guennadi Riguer, Mant...
The Small Batch (and other) solutions in Mantle API, by Guennadi Riguer, Mant...The Small Batch (and other) solutions in Mantle API, by Guennadi Riguer, Mant...
The Small Batch (and other) solutions in Mantle API, by Guennadi Riguer, Mant...AMD Developer Central
 
TressFX The Fast and The Furry by Nicolas Thibieroz
TressFX The Fast and The Furry by Nicolas ThibierozTressFX The Fast and The Furry by Nicolas Thibieroz
TressFX The Fast and The Furry by Nicolas ThibierozAMD Developer Central
 
Rendering Battlefield 4 with Mantle by Yuriy ODonnell
Rendering Battlefield 4 with Mantle by Yuriy ODonnellRendering Battlefield 4 with Mantle by Yuriy ODonnell
Rendering Battlefield 4 with Mantle by Yuriy ODonnellAMD Developer Central
 
Low-level Shader Optimization for Next-Gen and DX11 by Emil Persson
Low-level Shader Optimization for Next-Gen and DX11 by Emil PerssonLow-level Shader Optimization for Next-Gen and DX11 by Emil Persson
Low-level Shader Optimization for Next-Gen and DX11 by Emil PerssonAMD Developer Central
 
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 OldcornAMD Developer Central
 
Introduction to Direct 3D 12 by Ivan Nevraev
Introduction to Direct 3D 12 by Ivan NevraevIntroduction to Direct 3D 12 by Ivan Nevraev
Introduction to Direct 3D 12 by Ivan NevraevAMD Developer Central
 
Holy smoke! Faster Particle Rendering using Direct Compute by Gareth Thomas
Holy smoke! Faster Particle Rendering using Direct Compute by Gareth ThomasHoly smoke! Faster Particle Rendering using Direct Compute by Gareth Thomas
Holy smoke! Faster Particle Rendering using Direct Compute by Gareth ThomasAMD Developer Central
 
Computer Vision Powered by Heterogeneous System Architecture (HSA) by Dr. Ha...
Computer Vision Powered by Heterogeneous System Architecture (HSA) by  Dr. Ha...Computer Vision Powered by Heterogeneous System Architecture (HSA) by  Dr. Ha...
Computer Vision Powered by Heterogeneous System Architecture (HSA) by Dr. Ha...AMD Developer Central
 
Productive OpenCL Programming An Introduction to OpenCL Libraries with Array...
Productive OpenCL Programming An Introduction to OpenCL Libraries  with Array...Productive OpenCL Programming An Introduction to OpenCL Libraries  with Array...
Productive OpenCL Programming An Introduction to OpenCL Libraries with Array...AMD Developer Central
 
Rendering Battlefield 4 with Mantle by Johan Andersson - AMD at GDC14
Rendering Battlefield 4 with Mantle by Johan Andersson - AMD at GDC14Rendering Battlefield 4 with Mantle by Johan Andersson - AMD at GDC14
Rendering Battlefield 4 with Mantle by Johan Andersson - AMD at GDC14AMD Developer Central
 

More from AMD Developer Central (20)

DX12 & Vulkan: Dawn of a New Generation of Graphics APIs
DX12 & Vulkan: Dawn of a New Generation of Graphics APIsDX12 & Vulkan: Dawn of a New Generation of Graphics APIs
DX12 & Vulkan: Dawn of a New Generation of Graphics APIs
 
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
 
Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.js
 
Media SDK Webinar 2014
Media SDK Webinar 2014Media SDK Webinar 2014
Media SDK Webinar 2014
 
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
 
DirectGMA on AMD’S FirePro™ GPUS
DirectGMA on AMD’S  FirePro™ GPUSDirectGMA on AMD’S  FirePro™ GPUS
DirectGMA on AMD’S FirePro™ GPUS
 
Webinar: Whats New in Java 8 with Develop Intelligence
Webinar: Whats New in Java 8 with Develop IntelligenceWebinar: Whats New in Java 8 with Develop Intelligence
Webinar: Whats New in Java 8 with Develop Intelligence
 
The Small Batch (and other) solutions in Mantle API, by Guennadi Riguer, Mant...
The Small Batch (and other) solutions in Mantle API, by Guennadi Riguer, Mant...The Small Batch (and other) solutions in Mantle API, by Guennadi Riguer, Mant...
The Small Batch (and other) solutions in Mantle API, by Guennadi Riguer, Mant...
 
Inside XBox- One, by Martin Fuller
Inside XBox- One, by Martin FullerInside XBox- One, by Martin Fuller
Inside XBox- One, by Martin Fuller
 
TressFX The Fast and The Furry by Nicolas Thibieroz
TressFX The Fast and The Furry by Nicolas ThibierozTressFX The Fast and The Furry by Nicolas Thibieroz
TressFX The Fast and The Furry by Nicolas Thibieroz
 
Rendering Battlefield 4 with Mantle by Yuriy ODonnell
Rendering Battlefield 4 with Mantle by Yuriy ODonnellRendering Battlefield 4 with Mantle by Yuriy ODonnell
Rendering Battlefield 4 with Mantle by Yuriy ODonnell
 
Low-level Shader Optimization for Next-Gen and DX11 by Emil Persson
Low-level Shader Optimization for Next-Gen and DX11 by Emil PerssonLow-level Shader Optimization for Next-Gen and DX11 by Emil Persson
Low-level Shader Optimization for Next-Gen and DX11 by Emil Persson
 
Gcn performance ftw by stephan hodes
Gcn performance ftw by stephan hodesGcn performance ftw by stephan hodes
Gcn performance ftw by stephan hodes
 
Inside XBOX ONE by Martin Fuller
Inside XBOX ONE by Martin FullerInside XBOX ONE by Martin Fuller
Inside XBOX ONE by Martin Fuller
 
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
 
Introduction to Direct 3D 12 by Ivan Nevraev
Introduction to Direct 3D 12 by Ivan NevraevIntroduction to Direct 3D 12 by Ivan Nevraev
Introduction to Direct 3D 12 by Ivan Nevraev
 
Holy smoke! Faster Particle Rendering using Direct Compute by Gareth Thomas
Holy smoke! Faster Particle Rendering using Direct Compute by Gareth ThomasHoly smoke! Faster Particle Rendering using Direct Compute by Gareth Thomas
Holy smoke! Faster Particle Rendering using Direct Compute by Gareth Thomas
 
Computer Vision Powered by Heterogeneous System Architecture (HSA) by Dr. Ha...
Computer Vision Powered by Heterogeneous System Architecture (HSA) by  Dr. Ha...Computer Vision Powered by Heterogeneous System Architecture (HSA) by  Dr. Ha...
Computer Vision Powered by Heterogeneous System Architecture (HSA) by Dr. Ha...
 
Productive OpenCL Programming An Introduction to OpenCL Libraries with Array...
Productive OpenCL Programming An Introduction to OpenCL Libraries  with Array...Productive OpenCL Programming An Introduction to OpenCL Libraries  with Array...
Productive OpenCL Programming An Introduction to OpenCL Libraries with Array...
 
Rendering Battlefield 4 with Mantle by Johan Andersson - AMD at GDC14
Rendering Battlefield 4 with Mantle by Johan Andersson - AMD at GDC14Rendering Battlefield 4 with Mantle by Johan Andersson - AMD at GDC14
Rendering Battlefield 4 with Mantle by Johan Andersson - AMD at GDC14
 

Recently uploaded

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
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
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
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
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 MenDelhi Call girls
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
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
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
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
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 

Recently uploaded (20)

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
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
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
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
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
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
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
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
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?
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 

HSA and Fabric Engine: Boosting 3D Content Creation Performance

  • 1. HSA  AND  FABRIC  ENGINE:  A  GAME  CHANGER  FOR  DIGITAL   CONTENT  CREATION   PETER  ZION   CHIEF  ARCHITECT   FABRIC  ENGINE  INC.  
  • 2. PERFORMANCE  AND  3D   y  Performance  is  very  important  for  high-­‐end  3D   ‒ SimulaSons:  parScles,  crowds,  materials,  hair   ‒ Rendering:  scene  culling,  subdivisions,  path  tracing   y  Quality  of  3D  content  is  largely  driven  by  available   performance   2   |      HSA  AND  FABRIC  ENGINE:  A  GAME  CHANGER  FOR  DIGITAL  CONTENT  CREATION      |      NOVEMBER  19,  2013      |      CONFIDENTIAL  
  • 3. PERFORMANCE  AND  3D   y  GPU  came  from  3D,  but  sSll  mostly  used  for  rendering  in   high-­‐end  3D  content  creaSon   ‒ GPU  compute  is  domain  of  “ninja  coders”   ‒ SSll  o[en  done  through  “shader  hacks”!   y  Need  to  democraSze  the  GPU!   3   |      HSA  AND  FABRIC  ENGINE:  A  GAME  CHANGER  FOR  DIGITAL  CONTENT  CREATION      |      NOVEMBER  19,  2013      |      CONFIDENTIAL  
  • 4. WHAT  IS  FABRIC  ENGINE?   y  A  high-­‐performance  plaborm  for  building  3D   applicaSons,  effects  and  tools.   ‒ OpSmized  naSve  code   ‒ Parallelism   ‒ High-­‐end  3D  for  media  and  entertainment   y  ApplicaSons  can  be  standalone  and/or  embedded  in   DCCs  (Maya,  So[image,  3DSMax,  …)   4   |      HSA  AND  FABRIC  ENGINE:  A  GAME  CHANGER  FOR  DIGITAL  CONTENT  CREATION      |      NOVEMBER  19,  2013      |      CONFIDENTIAL  
  • 5. WHAT  IS  FABRIC  ENGINE?   } Fabric  Engine  SIGGRAPH  2013  teaser  video:  hjp://vimeo.com/70421665   5   |      HSA  AND  FABRIC  ENGINE:  A  GAME  CHANGER  FOR  DIGITAL  CONTENT  CREATION      |      NOVEMBER  19,  2013      |      CONFIDENTIAL  
  • 6. WHAT  IS  FABRIC  ENGINE?   y  ApplicaSons  are  a  combinaSon  of  Python  (or  a  DCC)  and   KL   ‒ Python/DCC:  UI,  construcSon  of  3D  scenes   ‒ KL:  rendering,  simulaSon,  effects  and  data  import/export   ‒ Python/DCC  drives  execuSon  of  KL  code   6   |      HSA  AND  FABRIC  ENGINE:  A  GAME  CHANGER  FOR  DIGITAL  CONTENT  CREATION      |      NOVEMBER  19,  2013      |      CONFIDENTIAL  
  • 7. HORDE   y  Horde:  High-­‐End  Crowd  SimulaSon   ‒ Thousands  of  interacSng  characters   ‒ Rigging  (puppetry)  of  each  character   ‒ Behaviour  of  characters   ‒ A  typical  Fabric  Engine  applicaSon   7   |      HSA  AND  FABRIC  ENGINE:  A  GAME  CHANGER  FOR  DIGITAL  CONTENT  CREATION      |      NOVEMBER  19,  2013      |      CONFIDENTIAL  
  • 8. THE  KL  LANGUAGE   Procedural   y  JavaScript-­‐like  syntax   y  Rich  type  system   y  ‒ Integers,  Booleans,  Floats,  Strings   ‒ Fixed-­‐  and  variable-­‐size  arrays;   dicSonaries   ‒ Structures  and  Objects   y  Pointer-­‐free   8   |      HSA  AND  FABRIC  ENGINE:  A  GAME  CHANGER  FOR  DIGITAL  CONTENT  CREATION      |      NOVEMBER  19,  2013      |      CONFIDENTIAL  
  • 9. THE  KL  LANGUAGE   y  A  simple  language   ‒ Accessible  to  “technical  arSsts”   9   |      HSA  AND  FABRIC  ENGINE:  A  GAME  CHANGER  FOR  DIGITAL  CONTENT  CREATION      |      NOVEMBER  19,  2013      |      CONFIDENTIAL  
  • 10. THE  KL  LANGUAGE   y  KL  is  built  on  LLVM   ‒ Targets  many  plaborms   ‒ Rich  opSmizaSons   ‒ Amazing  API   y  KL  was  originally  designed  with  only  CPUs  in  mind   ‒ Can  it  target  the  GPU?   10   |      HSA  AND  FABRIC  ENGINE:  A  GAME  CHANGER  FOR  DIGITAL  CONTENT  CREATION      |      NOVEMBER  19,  2013      |      CONFIDENTIAL  
  • 11. SUPPORTING  HSA  GPUS   y  Goals   ‒ Allow  most  KL  code  to  run  without  modificaSon  on  HSA  GPUs   ‒ Allow  KL  code  on  CPU  to  perform  a  parallel  evaluaSon  of  other   KL  code  on  GPU   ‒ Make  memory  management  as  easy  as  possible   11   |      HSA  AND  FABRIC  ENGINE:  A  GAME  CHANGER  FOR  DIGITAL  CONTENT  CREATION      |      NOVEMBER  19,  2013      |      CONFIDENTIAL  
  • 12. SUPPORTING  HSA  GPUS   } Video  demo  of  Maya  integraSon  of  water  simulaSon  running  on  HSA  inside  Maya   12   |      HSA  AND  FABRIC  ENGINE:  A  GAME  CHANGER  FOR  DIGITAL  CONTENT  CREATION      |      NOVEMBER  19,  2013      |      CONFIDENTIAL  
  • 13. SUPPORTING  HSA  GPUS   y  Challenges   ‒ KL  runSme  library  is  C++   ‒ MulSple  address  spaces  on  GPUs   ‒ KL  is  high-­‐level   ‒ Dynamic  memory  management   ‒ ExcepSons   ‒ “Virtual  funcSons”   13   |      HSA  AND  FABRIC  ENGINE:  A  GAME  CHANGER  FOR  DIGITAL  CONTENT  CREATION      |      NOVEMBER  19,  2013      |      CONFIDENTIAL  
  • 14. STAGE  ONE   Goal:  get  compiler  unit  tests  passing  on  GPU   y  Convert  KL  runSme  library  to  LLVM  IR   y  Support  mulSple  address  spaces   y  ‒ AutomaSc  regeneraSon  of  LLVM  funcSons  for  correct  address   spaces   y  Create  HSA-­‐based  test  harness   14   |      HSA  AND  FABRIC  ENGINE:  A  GAME  CHANGER  FOR  DIGITAL  CONTENT  CREATION      |      NOVEMBER  19,  2013      |      CONFIDENTIAL  
  • 15. KL  RUNTIME  LIBRARY   y  Originally,  KL  runSme  library  was  wrijen  in  C++   ‒ Not  GPU-­‐compaSble   LLVM  is  very  good  at  inlining   y  EnSre  runSme  library  was  converted  into  code  that   builds  LLVM  IR   y  ‒ EffecSvely,  runSme  library  is  now  dynamically  compiled   ‒ Very  low  level,  eg.  conversion  of  float  to  string   15   |      HSA  AND  FABRIC  ENGINE:  A  GAME  CHANGER  FOR  DIGITAL  CONTENT  CREATION      |      NOVEMBER  19,  2013      |      CONFIDENTIAL  
  • 16. MULTIPLE  ADDRESS  SPACES   GPU  differenSates  between  pointers  to  private,  local  and   global  memory   y  Rewrote  KL  code  generators  to  account  for  address   spaces   y  ‒ If  same  funcSon  is  used  with  two  different  combinaSons  of   pointer  type,  funcSon  is  generated  twice   16   |      HSA  AND  FABRIC  ENGINE:  A  GAME  CHANGER  FOR  DIGITAL  CONTENT  CREATION      |      NOVEMBER  19,  2013      |      CONFIDENTIAL  
  • 17. KL  UNIT  TESTS   KL  has  a  rich  set  of  unit  tests  (~400  tests)   y  GPU  test  harness  was  easy  to  write   y  ‒ HSA  runSme  API   ‒ Pass  LLVM  IR  to  AMD  compiler  library  in  place  of  OpenCL   ‒ Simulate  a  heap  and  “prinb”   y  A  few  HSA-­‐related  problems  in  our  code   ‒ Alignment,  global  iniSalizaSon,  intrinsics   17   |      HSA  AND  FABRIC  ENGINE:  A  GAME  CHANGER  FOR  DIGITAL  CONTENT  CREATION      |      NOVEMBER  19,  2013      |      CONFIDENTIAL  
  • 18. STAGE  ONE  RESULTS   y  Vast  majority  of  KL  unit  tests  pass  on  HSA   ‒ Failures  are  very  isolated   ‒ eg.  unsupported  transcendentals   ‒ LLVM  IR  -­‐>  HSAIL  path  in  AMD  compiler  library  is  stable   18   |      HSA  AND  FABRIC  ENGINE:  A  GAME  CHANGER  FOR  DIGITAL  CONTENT  CREATION      |      NOVEMBER  19,  2013      |      CONFIDENTIAL  
  • 19. STAGE  TWO   y  Goal:  support  trampoline  from  CPU  to  GPU   ‒ Meaning:  GPU  kernel  execuSon  from  KL  code  running  on  CPU   ‒ GPU-­‐enable  parallel  execute  (PEX)  operaSon y  Use  OpenGL  interop  for  direct  rendering   19   |      HSA  AND  FABRIC  ENGINE:  A  GAME  CHANGER  FOR  DIGITAL  CONTENT  CREATION      |      NOVEMBER  19,  2013      |      CONFIDENTIAL  
  • 20. PARALLEL  EXECUTE  (PEX)  OPERATION   y  KL  parallel  PEX  primiSve  adapted  for  GPU  execuSon   ‒ Simple  one-­‐dimensional  parallel  call   ‒ Decision  to  run  on  GPU  made  at  runSme   20   |      HSA  AND  FABRIC  ENGINE:  A  GAME  CHANGER  FOR  DIGITAL  CONTENT  CREATION      |      NOVEMBER  19,  2013      |      CONFIDENTIAL  
  • 21. PARALLEL  EXECUTE  (PEX)  OPERATION operator gpuKernel<<<index>>>(MyStruct myStruct) { report(“[“ + index + “]: myStruct=“ + myStruct); } operator cpuKernel() { UInt32 count = 4096; Boolean useGPU = true; MyStruct myStruct; // Execute kernel 4096 times on GPU kernel<<<count@useGPU>>>(myStruct); } 21   |      HSA  AND  FABRIC  ENGINE:  A  GAME  CHANGER  FOR  DIGITAL  CONTENT  CREATION      |      NOVEMBER  19,  2013      |      CONFIDENTIAL  
  • 22. PARALLEL  EXECUTE  (PEX)  OPERATION   y  KL  parallel  PEX  primiSve  adapted  for  GPU  execuSon   ‒ Compiles  KL  code  to  GPU  kernel  (if  not  cached)   ‒ Creates  “trampoline”  from  CPU  to  HSA  in  CPU  code   ‒ Passes  arguments  to  kernel   ‒ Direct  values  or  pointers  to  shared  memory   ‒ Calls  HsaSubmitAql 22   |      HSA  AND  FABRIC  ENGINE:  A  GAME  CHANGER  FOR  DIGITAL  CONTENT  CREATION      |      NOVEMBER  19,  2013      |      CONFIDENTIAL  
  • 23. MEMORY  REGISTRATION y  HSA  runSme:  All  memory  shared  between  CPU  and  HSA   must  be  registered   ‒ HsaRegisterSystemMemory ‒ For  dynamic  memory,  this  is  easy   ‒ HSA  runSme  provides  a  heap!   ‒ What  about  variables  allocated  on  CPU  stack?   23   |      HSA  AND  FABRIC  ENGINE:  A  GAME  CHANGER  FOR  DIGITAL  CONTENT  CREATION      |      NOVEMBER  19,  2013      |      CONFIDENTIAL  
  • 24. MEMORY  REGISTRATION operator cpuCode() { UInt32 count = 4096; Boolean useGPU = true; MyStruct myStructOnStack; // Execute kernel 4096 times on GPU kernel<<<count@useGPU>>>(myStructOnStack); } 24   |      HSA  AND  FABRIC  ENGINE:  A  GAME  CHANGER  FOR  DIGITAL  CONTENT  CREATION      |      NOVEMBER  19,  2013      |      CONFIDENTIAL  
  • 25. MEMORY  REGISTRATION y  SoluSon:  alternate  stack   ‒ Register  stack  for  each  CPU  thread  in  HSA-­‐registered  memory   ‒ Every  call  to  KL  code  “trampolines”  to  registered  stack   25   |      HSA  AND  FABRIC  ENGINE:  A  GAME  CHANGER  FOR  DIGITAL  CONTENT  CREATION      |      NOVEMBER  19,  2013      |      CONFIDENTIAL  
  • 26. DYNAMIC  MEMORY  ALLOCATION y  KL  supports  dynamic  allocaSon   ‒ Internal  to  types  (eg.  variable-­‐length  arrays,  strings)   ‒ HsaAllocateSystemMemory  on  CPU   ‒ Well-­‐known  GPU  allocaSon  algorithms   ‒ eg.  ScajerAlloc   ‒ What  about  mixed  allocaSon?   26   |      HSA  AND  FABRIC  ENGINE:  A  GAME  CHANGER  FOR  DIGITAL  CONTENT  CREATION      |      NOVEMBER  19,  2013      |      CONFIDENTIAL  
  • 27. DYNAMIC  MEMORY  ALLOCATION operator cpuKernel() { UInt32 a[][]; a.resize(4096); // alloc CPU mem for (Index i=0; i<4096; ++i) a.resize(i%32); // alloc CPU mem gpuKernel<<<4096@true>>>(a); a.clear(); // free GPU mem and CPU mem } operator gpuKernel<<<index>>>(UInt32 a[][]) { a[index].resize(index%64); // free CPU mem, alloc GPU mem } 27   |      HSA  AND  FABRIC  ENGINE:  A  GAME  CHANGER  FOR  DIGITAL  CONTENT  CREATION      |      NOVEMBER  19,  2013      |      CONFIDENTIAL  
  • 28. DYNAMIC  MEMORY  ALLOCATION y  How  to  manage  mixed  allocaSon?   ‒ Defer  incompaSble  frees   ‒ GPU  kernels  atomically  append  GPU  pointers  to  be  freed  to  a  list   ‒ CPU  frees  pointers  when  kernel  finishes   ‒ CPU  can  free  GPU  pointers   ‒ Using  either  system  atomics  or  a  simple  mutex   28   |      HSA  AND  FABRIC  ENGINE:  A  GAME  CHANGER  FOR  DIGITAL  CONTENT  CREATION      |      NOVEMBER  19,  2013      |      CONFIDENTIAL  
  • 29. STAGE TWO RESULTS" For  command-­‐line  tests  (eg.  naïve  matrix  mulSplies):   5x-­‐15x  performance  improvement   y  For  real-­‐world  tests  (eg.  embedded  in  UI):  up  to  5x   performance  improvement   y  3D  effects  can  be  run  in  real-­‐Sme   y  29   |      HSA  AND  FABRIC  ENGINE:  A  GAME  CHANGER  FOR  DIGITAL  CONTENT  CREATION      |      NOVEMBER  19,  2013      |      CONFIDENTIAL  
  • 30. STAGE TWO RESULTS" y  Paradigm  shi[  for  programmaSc  effects   ‒ Technical  arSsts  can  make  run-­‐Sme  changes  to  GPU  code  and   see  the  results  in  real-­‐Sme   30   |      HSA  AND  FABRIC  ENGINE:  A  GAME  CHANGER  FOR  DIGITAL  CONTENT  CREATION      |      NOVEMBER  19,  2013      |      CONFIDENTIAL  
  • 31. ONGOING  WORK   y  OpenGL  interop   ‒ Tag  KL  arrays  as  bound  to  VBOs   GPU-­‐to-­‐GPU  PEX   y  Virtual  funcSons  on  GPU   y  Debugger  for  GPU     y  31   |      HSA  AND  FABRIC  ENGINE:  A  GAME  CHANGER  FOR  DIGITAL  CONTENT  CREATION      |      NOVEMBER  19,  2013      |      CONFIDENTIAL