diff options
author | Michael Bien <[email protected]> | 2009-10-12 19:05:13 +0200 |
---|---|---|
committer | Michael Bien <[email protected]> | 2009-10-12 19:05:13 +0200 |
commit | 223e32b5ce6943abf7c1ac31f1b90d3679de5571 (patch) | |
tree | 435b04350e9be30a19077b94dce660000b975d74 | |
parent | 2b05a67d30bde1419c2b0f1b5b427d65b8415eb7 (diff) |
cleaned up test output, removed some internal hardcoded fields from CLDevice.
-rw-r--r-- | src/com/mbien/opencl/CLContext.java | 13 | ||||
-rw-r--r-- | src/com/mbien/opencl/CLDevice.java | 18 | ||||
-rw-r--r-- | src/com/mbien/opencl/CLException.java | 5 | ||||
-rw-r--r-- | test/com/mbien/opencl/JOCLTest.java | 130 |
4 files changed, 83 insertions, 83 deletions
diff --git a/src/com/mbien/opencl/CLContext.java b/src/com/mbien/opencl/CLContext.java index 533d45d4..bcfb09a0 100644 --- a/src/com/mbien/opencl/CLContext.java +++ b/src/com/mbien/opencl/CLContext.java @@ -1,8 +1,6 @@ package com.mbien.opencl; import com.mbien.opencl.impl.CLImpl; -import java.nio.ByteBuffer; -import java.nio.ByteOrder; import java.nio.IntBuffer; /** @@ -48,8 +46,8 @@ public final class CLContext { type |= deviceTypes[i].CL_TYPE; } - long context = cl.clCreateContextFromType(null, 0, type, null, null, null, 0); - return new CLContext(context); + long ctxID = cl.clCreateContextFromType(null, 0, type, null, null, null, 0); + return new CLContext(ctxID); } /** @@ -124,4 +122,11 @@ public final class CLContext { return platforms; } + /** + * Returns the low level binding interface to the OpenCL APIs. + */ + public static CL getLowLevelBinding() { + return cl; + } + } diff --git a/src/com/mbien/opencl/CLDevice.java b/src/com/mbien/opencl/CLDevice.java index 3db2511f..ba20f4b2 100644 --- a/src/com/mbien/opencl/CLDevice.java +++ b/src/com/mbien/opencl/CLDevice.java @@ -13,8 +13,6 @@ import java.util.Set; */ public final class CLDevice { - //FIXME gluegen does not generate CL_DEVICE_TYPE_* remove hardcoded values ASAP - /** * Enumeration for the type of a device. */ @@ -22,19 +20,19 @@ public final class CLDevice { /** * CL_DEVICE_TYPE_CPU */ - CPU(1 << 1), + CPU(CL.CL_DEVICE_TYPE_CPU), /** * CL_DEVICE_TYPE_GPU */ - GPU(1 << 2), + GPU(CL.CL_DEVICE_TYPE_GPU), /** * CL_DEVICE_TYPE_ACCELERATOR */ - ACCELERATOR(1 << 3), + ACCELERATOR(CL.CL_DEVICE_TYPE_ACCELERATOR), /** * CL_DEVICE_TYPE_DEFAULT */ - DEFAULT(1 << 0); + DEFAULT(CL.CL_DEVICE_TYPE_DEFAULT); /** * Value of wrapped OpenCL device type. @@ -47,13 +45,13 @@ public final class CLDevice { public static Type valueOf(int clDeviceType) { switch(clDeviceType) { - case(1 << 0): + case(CL.CL_DEVICE_TYPE_DEFAULT): return DEFAULT; - case(1 << 1): + case(CL.CL_DEVICE_TYPE_CPU): return CPU; - case(1 << 2): + case(CL.CL_DEVICE_TYPE_GPU): return GPU; - case(1 << 3): + case(CL.CL_DEVICE_TYPE_ACCELERATOR): return ACCELERATOR; } return null; diff --git a/src/com/mbien/opencl/CLException.java b/src/com/mbien/opencl/CLException.java index c81dc039..e8ed771f 100644 --- a/src/com/mbien/opencl/CLException.java +++ b/src/com/mbien/opencl/CLException.java @@ -19,11 +19,10 @@ public class CLException extends RuntimeException { } public CLException(int error, String message) { - super(resolveError(error) + ": " + message); + super(identifyError(error) + ": " + message); } - - private static final String resolveError(int error) { + private static final String identifyError(int error) { switch (error) { case CL.CL_INVALID_VALUE: diff --git a/test/com/mbien/opencl/JOCLTest.java b/test/com/mbien/opencl/JOCLTest.java index 89292320..0eccf430 100644 --- a/test/com/mbien/opencl/JOCLTest.java +++ b/test/com/mbien/opencl/JOCLTest.java @@ -1,16 +1,15 @@ package com.mbien.opencl; -import com.mbien.opencl.impl.CLImpl; import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.util.Arrays; -import org.junit.After; -import org.junit.Before; +import org.junit.BeforeClass; import org.junit.Test; import static org.junit.Assert.*; +import static java.lang.System.*; /** - * + * Test for testing basic functionality. * @author Michael Bien */ public class JOCLTest { @@ -18,60 +17,16 @@ public class JOCLTest { public JOCLTest() { } - @Before - public void setUpClass() throws Exception { - } - - @After - public void tearDownClass() throws Exception { - } - -// @Test - public void highLevelTest() { - System.out.println(" - - - highLevelTest - - - "); - - CLPlatform[] clPlatforms = CLContext.listCLPlatforms(); - - for (CLPlatform platform : clPlatforms) { - - System.out.println("platform info:"); - System.out.println("name: "+platform.getName()); - System.out.println("profile: "+platform.getProfile()); - System.out.println("version: "+platform.getVersion()); - System.out.println("vendor: "+platform.getVendor()); - - CLDevice[] clDevices = platform.listCLDevices(); - for (CLDevice device : clDevices) { - System.out.println("device info:"); - System.out.println("name: "+device.getName()); - System.out.println("profile: "+device.getProfile()); - System.out.println("vendor: "+device.getVendor()); - System.out.println("type: "+device.getType()); - System.out.println("global mem: "+device.getGlobalMemSize()/(1024*1024)+" MB"); - System.out.println("local mem: "+device.getLocalMemSize()/1024+" KB"); - System.out.println("clock: "+device.getMaxClockFrequency()+" MHz"); - System.out.println("max work group size: "+device.getMaxWorkGroupSize()); - System.out.println("max compute units: "+device.getMaxComputeUnits()); - System.out.println("extensions: "+device.getExtensions()); - } - } - - - CLContext ctx = CLContext.create(); - CLDevice device = ctx.getMaxFlopsDevice(); - System.out.println("max FLOPS device: " + device); - ctx.release(); + @BeforeClass + public static void setUpClass() throws Exception { + out.println("OS: " + System.getProperty("os.name")); + out.println("VM: " + System.getProperty("java.vm.name")); } @Test public void lowLevelTest() { - System.out.println(" - - - lowLevelTest - - - "); - // already loaded - System.out.print("loading native libs..."); - System.loadLibrary("gluegen-rt"); - System.loadLibrary("jocl"); - System.out.println("done"); + out.println(" - - - lowLevelTest - - - "); CreateContextCallback cb = new CreateContextCallback() { @Override @@ -80,17 +35,17 @@ public class JOCLTest { } }; - System.out.println("creating OpenCL context"); + out.println("creating OpenCL context"); int ret = 0; - CL cl = new CLImpl(); + CL cl = CLContext.getLowLevelBinding(); int[] intBuffer = new int[1]; // find all available OpenCL platforms ret = cl.clGetPlatformIDs(0, null, 0, intBuffer, 0); assertEquals(CL.CL_SUCCESS, ret); - System.out.println("#platforms: "+intBuffer[0]); + out.println("#platforms: "+intBuffer[0]); long[] platformId = new long[intBuffer[0]]; ret = cl.clGetPlatformIDs(platformId.length, platformId, 0, null, 0); @@ -104,28 +59,28 @@ public class JOCLTest { for (int i = 0; i < platformId.length; i++) { long platform = platformId[i]; - System.out.println("platform id: "+platform); + out.println("platform id: "+platform); ret = cl.clGetPlatformInfo(platform, CL.CL_PLATFORM_PROFILE, bb.capacity(), bb, longBuffer, 0); assertEquals(CL.CL_SUCCESS, ret); - System.out.println(" profile: "+new String(bb.array(), 0, (int)longBuffer[0])); + out.println(" profile: "+new String(bb.array(), 0, (int)longBuffer[0])); ret = cl.clGetPlatformInfo(platform, CL.CL_PLATFORM_VERSION, bb.capacity(), bb, longBuffer, 0); assertEquals(CL.CL_SUCCESS, ret); - System.out.println(" version: "+new String(bb.array(), 0, (int)longBuffer[0])); + out.println(" version: "+new String(bb.array(), 0, (int)longBuffer[0])); ret = cl.clGetPlatformInfo(platform, CL.CL_PLATFORM_NAME, bb.capacity(), bb, longBuffer, 0); assertEquals(CL.CL_SUCCESS, ret); - System.out.println(" name: "+new String(bb.array(), 0, (int)longBuffer[0])); + out.println(" name: "+new String(bb.array(), 0, (int)longBuffer[0])); ret = cl.clGetPlatformInfo(platform, CL.CL_PLATFORM_VENDOR, bb.capacity(), bb, longBuffer, 0); assertEquals(CL.CL_SUCCESS, ret); - System.out.println(" vendor: "+new String(bb.array(), 0, (int)longBuffer[0])); + out.println(" vendor: "+new String(bb.array(), 0, (int)longBuffer[0])); //find all devices ret = cl.clGetDeviceIDs(platform, CL.CL_DEVICE_TYPE_ALL, 0, null, 0, intBuffer, 0); assertEquals(CL.CL_SUCCESS, ret); - System.out.println("#devices: "+intBuffer[0]); + out.println("#devices: "+intBuffer[0]); long[] devices = new long[intBuffer[0]]; ret = cl.clGetDeviceIDs(platform, CL.CL_DEVICE_TYPE_ALL, devices.length, devices, 0, null, 0); @@ -135,11 +90,11 @@ public class JOCLTest { long device = devices[j]; ret = cl.clGetDeviceInfo(device, CL.CL_DEVICE_NAME, bb.capacity(), bb, longBuffer, 0); assertEquals(CL.CL_SUCCESS, ret); - System.out.println(" device: "+new String(bb.array(), 0, (int)longBuffer[0])); + out.println(" device: "+new String(bb.array(), 0, (int)longBuffer[0])); ret = cl.clGetDeviceInfo(device, CL.CL_DEVICE_TYPE, bb.capacity(), bb, longBuffer, 0); assertEquals(CL.CL_SUCCESS, ret); - System.out.println(" type: " + CLDevice.Type.valueOf(bb.get())); + out.println(" type: " + CLDevice.Type.valueOf(bb.get())); bb.rewind(); } @@ -149,15 +104,58 @@ public class JOCLTest { Arrays.fill(longBuffer, 0); long context = cl.clCreateContextFromType(null, 0, CL.CL_DEVICE_TYPE_ALL, cb, null, null, 0); - System.out.println("context handle: "+context); + out.println("context handle: "+context); ret = cl.clGetContextInfo(context, CL.CL_CONTEXT_DEVICES, 0, null, longBuffer, 0); assertEquals(CL.CL_SUCCESS, ret); - System.out.println("CL_CONTEXT_DEVICES result: "+longBuffer[0]); + out.println("CL_CONTEXT_DEVICES result: "+longBuffer[0]); + + ret = cl.clGetContextInfo(context, CL.CL_CONTEXT_NUM_DEVICES, 0, null, longBuffer, 0); + assertEquals(CL.CL_SUCCESS, ret); + + out.println("CL_CONTEXT_NUM_DEVICES result: "+longBuffer[0]); cl.clReleaseContext(context); } + @Test + public void highLevelTest() { + + out.println(" - - - highLevelTest - - - "); + + CLPlatform[] clPlatforms = CLContext.listCLPlatforms(); + + for (CLPlatform platform : clPlatforms) { + + out.println("platform info:"); + out.println(" name: "+platform.getName()); + out.println(" profile: "+platform.getProfile()); + out.println(" version: "+platform.getVersion()); + out.println(" vendor: "+platform.getVendor()); + + CLDevice[] clDevices = platform.listCLDevices(); + for (CLDevice device : clDevices) { + out.println("device info:"); + out.println(" name: "+device.getName()); + out.println(" profile: "+device.getProfile()); + out.println(" vendor: "+device.getVendor()); + out.println(" type: "+device.getType()); + out.println(" global mem: "+device.getGlobalMemSize()/(1024*1024)+" MB"); + out.println(" local mem: "+device.getLocalMemSize()/1024+" KB"); + out.println(" clock: "+device.getMaxClockFrequency()+" MHz"); + out.println(" max work group size: "+device.getMaxWorkGroupSize()); + out.println(" max compute units: "+device.getMaxComputeUnits()); + out.println(" extensions: "+device.getExtensions()); + } + } + + + CLContext ctx = CLContext.create(); +// CLDevice device = ctx.getMaxFlopsDevice(); +// out.println("max FLOPS device: " + device); + ctx.release(); + } + }
\ No newline at end of file |