/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.nativelibs4java.opencl;
import org.bridj.Pointer;
//import org.junit.Test;
/**
javac -d target/classes -cp target/javacl-core-1.0-SNAPSHOT.jar:/Users/ochafik/.m2/repository/com/nativelibs4java/ochafik-util/0.12-SNAPSHOT/ochafik-util-0.12-SNAPSHOT.jar:/Users/ochafik/.m2/repository/com/nativelibs4java/opencl4java/1.0-SNAPSHOT/opencl4java-1.0-SNAPSHOT.jar:/Users/ochafik/.m2/repository/com/nativelibs4java/bridj/0.7-SNAPSHOT/bridj-0.7-SNAPSHOT.jar src/test/java/com/nativelibs4java/opencl/StressTest.java && java -cp target/classes:target/javacl-core-1.0-SNAPSHOT.jar:/Users/ochafik/.m2/repository/com/nativelibs4java/nativelibs4java-utils/1.6-SNAPSHOT/nativelibs4java-utils-1.6-SNAPSHOT.jar:/Users/ochafik/.m2/repository/com/nativelibs4java/ochafik-util/0.12-SNAPSHOT/ochafik-util-0.12-SNAPSHOT.jar:/Users/ochafik/.m2/repository/com/nativelibs4java/opencl4java/1.0-SNAPSHOT/opencl4java-1.0-SNAPSHOT.jar:/Users/ochafik/.m2/repository/com/nativelibs4java/bridj/0.7-SNAPSHOT/bridj-0.7-SNAPSHOT.jar com.nativelibs4java.opencl.StressTest
*/
public class StressTest {
// @Test
public static void main(String[] args) {
CLContext context = JavaCL.createBestContext(CLPlatform.DeviceFeature.GPU);
System.out.println(context);
int n = 128;// * 128;
// Pointer<Integer> p = Pointer.allocateInts(n);
for (int i = 0; i < 100000; i++) {
// if ((i & 0xff) == 0xff)
System.out.print(".");
CLQueue queue = context.createDefaultQueue();
CLBuffer<Integer> buffer = context.createByteBuffer(CLMem.Usage.Output, 4 * n).as(Integer.class);//p);
CLProgram program = context.createProgram("kernel void f(global int* input, int n) {\n" +
"int i = get_global_id(0);\n" +
"if (i >= n) return;\n" +
"input[i] = i;\n" +
"}");
CLKernel kernel = program.createKernel("f");
for (int j = 0; j < 100; j++) {
kernel.setArgs(buffer, n);
kernel.enqueueNDRange(queue, new int[] { n });
}
queue.finish();
queue.release();
kernel.release();
program.release();
buffer.release();
}
context.release();
}
}