3 Replies Latest reply on Aug 16, 2010 11:05 AM by genaganna

    Getting device fission to work

    omion
      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.
        • Getting device fission to work
          Illusio

          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.

           

          • Getting device fission to work
            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.
              • Getting device fission to work
                genaganna

                 

                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.