Making OpenCL? Simple with Haskell - AMD Developer Central
Making OpenCL? Simple with Haskell - AMD Developer Central Making OpenCL? Simple with Haskell - AMD Developer Central
MOVE TO AN IMPLICIT MODEL 36 | Making OpenCL Simple | January, 2011 | Public CPU Context GPU Programs Kernels Memory Objects Command Queues • Context is an environment • CommandQueue is shared for read/write device memory and executing kernels, easily stored implicitly with an environment In In Order Queue Compute GPU Device Out Out of of Order Queue
CONTEXTUAL/QUEUED MONADS Function like reader monads for OpenCL Context and CommandQueue objects, avoiding having to pass Contexts and/or CommandQueues as the first parameter to many OpenCL operations. Introducing new classes gets around the dependency on the MonadReader class that would prevent asserting both MonadReader Context m and MonadReader CommandQueue m for the same type m. 37 | Making OpenCL Simple | January, 2011 | Public
- Page 1 and 2: Making OpenCL Simple with Haskell B
- Page 3 and 4: AGENDA Motivation Whistle stop intr
- Page 5 and 6: OPENCL PROGRAM STRUCTURE 5 | Making
- Page 7 and 8: HELLO WORLD OPENCL C SOURCE __const
- Page 9 and 10: HELLO WORLD - HOST PROGRAM // creat
- Page 11 and 12: USING HASKELL OUR GOAL IS TO WRITE
- Page 13 and 14: LEARN FROM COMMON USES In OpenCL w
- Page 15 and 16: IT’S A HETEROGENEOUS WORLD A mod
- Page 17 and 18: OPENCL EXECUTION MODEL An OpenCL a
- Page 19 and 20: THE BIG IDEA BEHIND OPENCL OpenCL e
- Page 21 and 22: OPENCL MEMORY MODEL •Private Memo
- Page 23 and 24: OPENCL SUMMARY __kernel void dp_mul
- Page 25 and 26: PROGRAMMING KERNELS: OPENCL C Deri
- Page 27 and 28: PROGRAMMING KERNELS: DATA TYPES Sca
- Page 29 and 30: THE BASICS - HELLO WORLD main = do
- Page 31 and 32: MAPPING OPENCL API getPlatforms ::
- Page 33 and 34: Lifting to something more in the sp
- Page 35: MOVE TO AN IMPLICIT MODEL 35 | Maki
- Page 39 and 40: EMBEDDING MONADS In fact, the only
- Page 41 and 42: 41 | Making OpenCL Simple | January
- Page 43 and 44: HELLO WORLD REVISITED import Langua
- Page 45 and 46: REALLY WE WOULD LIKE TO WRITE impor
- Page 47 and 48: WHAT WE REALLY WANT Build a delaye
- Page 49 and 50: Issues we face using Haskell at AMD
- Page 51 and 52: USING HASKELL AT AMD Many Universi
- Page 53: DISCLAIMER The information presente
CONTEXTUAL/QUEUED MONADS<br />
Function like reader monads for <strong>OpenCL</strong> Context and<br />
CommandQueue objects, avoiding having to pass Contexts<br />
and/or CommandQueues as the first parameter to many<br />
<strong>OpenCL</strong> operations.<br />
Introducing new classes gets around the dependency on the<br />
MonadReader class that would prevent asserting both<br />
MonadReader Context m and MonadReader<br />
CommandQueue m for the same type m.<br />
37 | <strong>Making</strong> <strong>OpenCL</strong> <strong>Simple</strong> | January, 2011 | Public