|
@@ -0,0 +1,48 @@
|
|
|
+package in.ocsf.bee.freigeld.core.cl;
|
|
|
+
|
|
|
+import com.aparapi.Kernel;
|
|
|
+import com.aparapi.Range;
|
|
|
+import com.aparapi.device.Device;
|
|
|
+
|
|
|
+import java.util.logging.Logger;
|
|
|
+
|
|
|
+public class Sample1 implements Runnable {
|
|
|
+
|
|
|
+ private final Logger log = Logger.getLogger(getClass().getName());
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void run() {
|
|
|
+ final int N = 4;
|
|
|
+ final int R = 2;
|
|
|
+
|
|
|
+ final long[][][] mem = new long[R][R][R];
|
|
|
+
|
|
|
+ Kernel kernel = new Kernel() {
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void run() {
|
|
|
+ int x = getGlobalId(0);
|
|
|
+ int y = getGlobalId(1);
|
|
|
+ int z = getGlobalId(2);
|
|
|
+ int xN = getGlobalSize(0);
|
|
|
+ int yN = getGlobalSize(1);
|
|
|
+ int zN = getGlobalSize(2);
|
|
|
+ int gx = getGroupId(0);
|
|
|
+ int gy = getGroupId(1);
|
|
|
+ int gz = getGroupId(2);
|
|
|
+ int gxN = getNumGroups(0);
|
|
|
+ int gyN = getNumGroups(1);
|
|
|
+ int gzN = getNumGroups(2);
|
|
|
+ int l = getLocalId();
|
|
|
+ int lN = getLocalSize();
|
|
|
+ int p = getPassId();
|
|
|
+ mem[x][y][z] = gxN * 100 + gyN * 10 + gzN;
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ Device device = Device.best();
|
|
|
+ Range range = Range.create3D(device, R, R, R);
|
|
|
+ kernel.execute(range, 1);
|
|
|
+ log.info("done");
|
|
|
+ }
|
|
|
+}
|