Making OpenCL? Simple with Haskell - AMD Developer Central
Making OpenCL? Simple with Haskell - AMD Developer Central Making OpenCL? Simple with Haskell - AMD Developer Central
USING HASKELL OUR GOAL IS TO WRITE THIS import Language.OpenCL.Module hstr = "Hello world\n“ hlen = length hstr + 1 prog = initCL [$cl| __constant char hw[] = $hstr; __kernel void hello(__global char * out) { size_t tid = get_global_id(0); out[tid] = hw[tid]; } |] main :: IO () main = withNew prog $ using (bufferWithFlags hwlen [WriteOnly]) $ \b -> do [k]
USING HASKELL OUR GOAL IS TO WRITE THIS import Language.OpenCL.Module hstr = "Hello world\n“ hlen = length hstr + 1 prog = initCL [$cl| __constant char hw[] = $hstr; __kernel void hello(__global char * out) { size_t tid = get_global_id(0); out[tid] = hw[tid]; } |] main :: IO () main = withNew Monad prog $ transformers using (bufferWithFlags hwlen [WriteOnly]) $ \b -> do [k]
- 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: HELLO WORLD - HOST PROGRAM // creat
- 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 and 36: MOVE TO AN IMPLICIT MODEL 35 | Maki
- Page 37 and 38: CONTEXTUAL/QUEUED MONADS Function l
- 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
USING HASKELL OUR GOAL IS TO WRITE THIS<br />
import Language.<strong>OpenCL</strong>.Module<br />
hstr = "Hello world\n“<br />
hlen = length hstr + 1<br />
prog = initCL [$cl|<br />
__constant char hw[] = $hstr;<br />
__kernel void hello(__global char * out) {<br />
size_t tid = get_global_id(0);<br />
out[tid] = hw[tid];<br />
}<br />
|]<br />
main :: IO ()<br />
main = <strong>with</strong>New prog $<br />
using (bufferWithFlags hwlen [WriteOnly]) $ \b -><br />
do [k]