Hello:
Soon enough we will have nVidia GTX 300 that would be able to execute multiple instrucions on multiple data (MIMD). I wonder if OpenCL can execute MIMD?
Hello:
Soon enough we will have nVidia GTX 300 that would be able to execute multiple instrucions on multiple data (MIMD). I wonder if OpenCL can execute MIMD?
See http://www.hpccommunity.org/f55/programming-gp-gpus-options-answers-616/, which I found on the first page of Google results for a search on "opencl mimd". Relevant quotes:
"Open CL was developed by Apple Computer and is a standard API for GP-GPU and multi-core hardware. ... The model is powerful and supports both data parallel (GP-GPUs) and task parallel (multi-core) processing. OpenCL was clearly aimed at resolving the multi-core/GP-GPU situation as it supports both data parallel and task parallel constructs"
In other words: Yes, the OpenCL language model can represent MIMD computations as well as SIMD ones.
Obviously, whether any given OpenCL implementation can support MIMD GPU computations is a different question. I would assume that any OpenCL implementation that supports the nVidia GTX 300 will support its MIMD capability, and of course nVidia has very strong incentives to have some sort of programming support for that device when they release it! So a reasonable expectation is that they will have an OpenCL implementation that supports the GTX 300's MIMD capability, although it may or may not be part of the first SDK for it.