Brace yourselves. The Kernel is not compiled until just prior to execution (hardware-specific native Kernels seem unlikely in practice since the whole idea is to be hardware independent but the HPC guys might do this) when it is directed to be built/compiled by the application. The compilation step is hardware dependent; if the application is executing on a platform with an x86 processor and an ATI GPU the Kernel will have either path available for compilation, potentially even determined at runtime! So if the GPU is busy, your applications could complile the Kernel for the CPU, execute it, and at a later time, compile it for the GPU, and execute it! You could hold an iner-application race, compiling separate instances for both, one for x86 and one for the GPU, and running them concurrently! I describe some of this in the interview:
http://links.amd.com/openinterview
Bookmarks