cancel
Showing results for 
Search instead for 
Did you mean: 

Archives Discussions

omion
Journeyman III

Getting device fission to work

I'm trying to experiment with device fission, but my program keeps failing with "clCreateSubDevicesEXT: identifier not found".

Which library defines clCreateSubDevicesEXT? OpenCL.lib doesn't have any definitions for it, even though it looks like OpenCL.dll does.

I'm using Windows 7 64-bit, and I just re-installed Stream SDK 2.1 to make sure I had the most current version of everything.
0 Likes
3 Replies
Illusio
Journeyman III

Try using clGetExtensionFunctionAddress. There's no guarantee that extension functions are exported in library files, and such a method of accessing them is defined as non-portable.

9.2 Getting OpenCL API Extension Function
Pointers

clGetExtensionFunctionAddress may not be queried for core (non-extension) functions in OpenCL. For functions that are queryable with clGetExtensionFunctionAddress, implementations may choose to also export those functions statically from the object libraries implementing those functions. However, portable applications cannot rely on this behavior.

That said, I have no idea what ATI's policy is regarding exporting extensions, so I don't know if it's intentionally not exported.

 

0 Likes
omion
Journeyman III

Thanks, Illusio. That worked perfectly! I didn't even see that function in the spec.

One comment about fission, though. It looks like fission doesn't actually limit the processors the kernel is run on. If I split the CPU into 4x 1-core devices, then tell OpenCL to only use one of those, Windows shows the thread bouncing around on all cores. I assume this is due to the "preview" nature of fission, but this is (for me) a fairly large issue that I hope will be fixed in SDK 2.2.
0 Likes

Originally posted by: omion Thanks, Illusio. That worked perfectly! I didn't even see that function in the spec. One comment about fission, though. It looks like fission doesn't actually limit the processors the kernel is run on. If I split the CPU into 4x 1-core devices, then tell OpenCL to only use one of those, Windows shows the thread bouncing around on all cores. I assume this is due to the "preview" nature of fission, but this is (for me) a fairly large issue that I hope will be fixed in SDK 2.2.


We also observed this issue and this issue is reported to developers.

0 Likes