1. Can a context have devices from different platforms? Or is it restricted to an unique platform?
2. 1 context = 1 thread? Or can I call CL functions for a context from multiple threads? For instance: can I launch two kernels from the same context, one from threadA and the other from threadB.
Ok not a problem. 1. You can not have devices from different platforms. All the devices should be from the same platform. 2. you can have as many kernels you want in a single context and can be launched with multiple threads. But you must be careful when the output of one kernel is input to the other.