annotate example/fft/ppe/transpose.cc @ 1557:786ab4ad682e draft

add fft ppe example
author Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
date Sat, 09 Mar 2013 21:15:23 +0900
parents
children 3df1868130cb
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1557
786ab4ad682e add fft ppe example
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 #include "transpose.h"
786ab4ad682e add fft ppe example
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 #ifdef __APPLE__
786ab4ad682e add fft ppe example
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 #include <OpenCL/opencl.h>
786ab4ad682e add fft ppe example
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 #else
786ab4ad682e add fft ppe example
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 #include <CL/cl.h>
786ab4ad682e add fft ppe example
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 #endif
786ab4ad682e add fft ppe example
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7
786ab4ad682e add fft ppe example
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 SchedDefineTask1(transpose,transpose);
786ab4ad682e add fft ppe example
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9
786ab4ad682e add fft ppe example
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 static int
786ab4ad682e add fft ppe example
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 transpose(SchedTask* s,void* rbuf,void* wbuf)
786ab4ad682e add fft ppe example
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 {
786ab4ad682e add fft ppe example
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 cl_float2* src = (cl_float2*)s->get_input(rbuf,0);
786ab4ad682e add fft ppe example
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 int* n = (int*)s->get_input(rbuf,1);
786ab4ad682e add fft ppe example
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 cl_float2* dst = (cl_float2*)s->get_output(wbuf,0);
786ab4ad682e add fft ppe example
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 unsigned int xgid = (unsigned int)s->get_cpuid();
786ab4ad682e add fft ppe example
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 unsigned int ygid = (unsigned int)s->get_cpuid();
786ab4ad682e add fft ppe example
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18
786ab4ad682e add fft ppe example
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 unsigned int iid = ygid * n[0] + xgid;
786ab4ad682e add fft ppe example
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 unsigned int oid = xgid * n[0] + ygid;
786ab4ad682e add fft ppe example
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21
786ab4ad682e add fft ppe example
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 dst[oid] = src[iid];
786ab4ad682e add fft ppe example
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23
786ab4ad682e add fft ppe example
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 return 0;
786ab4ad682e add fft ppe example
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 }