1 Reply Latest reply on Feb 10, 2010 4:26 AM by genaganna

    Looping kernels?

    toonstge

      Hi there,

      Can a kernel loaded on a card be executed in a loop, or somehow be told to run all the time, either synchronizable, stoppable or restartable (thus controlled) by the host CPU by sending events in queue?

      I understand that possibly no one would ever want or need this, but I'm doing some research here that envisions a system that always has a certain changing state over time, partly influenced by input parameters but also influenced by a kind of execution context. I use Stream to simulate and experiment on these ideas before taking further steps.

      Possibly, the thing that comes closest is the manipulation of a stream of data from video, which need to be converted or transposed to some other format or enlarged, etc. How do those applications handle this. Do they simply enqueue a new run request for the kernel with a new set of input parameters that became available? 

       

        • Looping kernels?
          genaganna

           

          Originally posted by: toonstge Hi there,

           

          Can a kernel loaded on a card be executed in a loop, or somehow be told to run all the time, either synchronizable, stoppable or restartable (thus controlled) by the host CPU by sending events in queue?

           

          I understand that possibly no one would ever want or need this, but I'm doing some research here that envisions a system that always has a certain changing state over time, partly influenced by input parameters but also influenced by a kind of execution context. I use Stream to simulate and experiment on these ideas before taking further steps.

           

          Possibly, the thing that comes closest is the manipulation of a stream of data from video, which need to be converted or transposed to some other format or enlarged, etc. How do those applications handle this. Do they simply enqueue a new run request for the kernel with a new set of input parameters that became available? 

           

           



          As you said that the only way to do this is simple enqueue a new run request for the kernel with a new set of input parameters that become available.  I feel it is sufficient for you. Could you please explain case(s) where it is not sufficient or not solve your problem?