cancel
Showing results for 
Search instead for 
Did you mean: 

Archives Discussions

Ragnar78
Journeyman III

SubDevices on AMD HD5850

Hello everybody !

In the stardards, the following is said concerning the return value of clCreateSubDevices, when applied to my HD5850 graphic card.

"CL_INVALID_VALUE if values specified in properties are not valid or if values specified in properties are valid but not supported by the device. "

This is what my program returns when I try to partition my HD5850.
I tried several partition schemes but all ended up on that same return value... Creating a list with one device of 10 compute unit does not work eit

Replacing in my code CL_DEVICE_TYPE_GPU by CL_DEVICE_TYPE_CPU, I can partition my CPU accross all the possible schemes.

Therefore, I was wondering if the HD5850 was partitionable or if i was more likely to have a buf in my implementation ( which would be surprising, considering it works fine for the CPU.)

Thanks !

0 Likes
1 Solution
dmeiser
Elite

As far as I know the device fission extension is not implemented for any GPUs at this time. This is currently only available for CPUs and IBM cell BE. For a particular device you can query whether the device_fission extension is supported  with something like this (from http://developer.amd.com/zones/OpenCLZone/Events/assets/devicefissionwebinar.pdf)

if (devices[0].getInfo<CL_DEVICE_EXTENSIONS>().find("cl_ext_device_fission") == std::string::npos) {

// handle case when fission not supported, e.g. fall back to sequential version

}

This uses the C++ bindings but you can do a very similar test using the plain C bindings.

Cheers,

Dominic

View solution in original post

0 Likes
3 Replies
binying
Challenger

In AMD APP2.7, there is an example called DeviceFission, in case you haven't tried it...

dmeiser
Elite

As far as I know the device fission extension is not implemented for any GPUs at this time. This is currently only available for CPUs and IBM cell BE. For a particular device you can query whether the device_fission extension is supported  with something like this (from http://developer.amd.com/zones/OpenCLZone/Events/assets/devicefissionwebinar.pdf)

if (devices[0].getInfo<CL_DEVICE_EXTENSIONS>().find("cl_ext_device_fission") == std::string::npos) {

// handle case when fission not supported, e.g. fall back to sequential version

}

This uses the C++ bindings but you can do a very similar test using the plain C bindings.

Cheers,

Dominic

0 Likes
Ragnar78
Journeyman III

This was indeed a support problem. The Fission example in the SDK performs Fission on the CPU only. And indeed fission does not appear in the extensions of my device.

Thanks

0 Likes