Summary: | CLKernel missing several constants used to access clGetKernelWorkGroupInfo | ||
---|---|---|---|
Product: | [JogAmp] Jocl | Reporter: | Wade Walker <wwalker3> |
Component: | opencl | Assignee: | Wade Walker <wwalker3> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | gouessej, pierre.diguet, sgothel, wwalker3 |
Priority: | P4 | ||
Version: | 2.5.0 | ||
Hardware: | All | ||
OS: | all | ||
Type: | DEFECT | SCM Refs: | |
Workaround: | --- |
Description
Wade Walker
2016-04-12 02:58:58 CEST
Thanks Wade, Also feel free to check presence or add other methods for other bindings public static final int CL_KERNEL_COMPILE_WORK_GROUP_SIZE = 4529; public static final int CL_KERNEL_CONTEXT = 4499; public static final int CL_KERNEL_FUNCTION_NAME = 4496; public static final int CL_KERNEL_LOCAL_MEM_SIZE = 4530; public static final int CL_KERNEL_NUM_ARGS = 4497; public static final int CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE = 4531; public static final int CL_KERNEL_PRIVATE_MEM_SIZE = 4532; public static final int CL_KERNEL_PROGRAM = 4500; public static final int CL_KERNEL_REFERENCE_COUNT = 4498; public static final int CL_KERNEL_WORK_GROUP_SIZE = 4528; or switch the getWorkGroupInfo() to public. Yes, I plan to add those others, I just need to check that those constants are getting properly translated from the CL header files. There may be a little weirdness because there's only one version of CLKernel, but there are three versions of the CL object (for v1.1, v1.2, and v2.0), so I'll need to throw an error if you try to query a non-existent value on an older CL version, but that's no big deal. I've checked in the fix on my version of the JOCL repo, you can see the commit at https://github.com/WadeWalker/jocl/commit/7a26673570fd77839672d472b04dbd509395de5b. For now, what I've done is add new functions for CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE and CL_KERNEL_PRIVATE_MEM_SIZE, since those two were added in OpenCL 1.1, which is the version the Java OpenCL objects (the "high-level interface") present to the user. For later ones such as CL_KERNEL_GLOBAL_WORK_SIZE (introduced in OpenCL 1.2) I included a new test that shows how to access them. Essentially, you just call the raw OpenCL function instead of using an OO method. Right now our cluster is offline, so I'll have to build you an unofficial release. Which platform and bit-width do you need this for? I'll build it and send you a download link via email. Hi Wade, Thanks for the fix, i'm using a win64 platform. I'll check your git and try the release you'll send me. Thanks a lot. Having a spot of difficulty building the new library, I get some access violations on Windows 10, which I hadn't tested on before (though it works on Windows 7). I need to track it down and make sure this isn't a general problem with JOCL on Windows 10, so it may take another few days depending on what's wrong. I created a test build and send it as a Dropbox link to the bug reporter. We'll see if it works for him too. I'm getting some HotSpot crashes in JOCL with the latest nvidia drivers on 64-bit Windows 10, but these seem to be unrelated as far as I can tell. I'm working on that as a separate problem. Thanks i'll try it soon, I was a bit off the subject last week. finally merged w/ Wade's master branch of 2016 :) |