7 Replies Latest reply on Apr 25, 2012 12:56 PM by jeff_golds

    Concurrent execution on APU


      Hi folks,

          I am using my A8-3850 for OpenCL programming. It seemed GPU returns the control to CPU if not using a clFinish(command_queue) after clEnqueueNDRangeKernel(). I am just wondering that can the CPU part of APU work concurrently with a running kernel on 6550D of the same APU?


         Thanks in advance.

        • Re: Concurrent execution on APU


          I don't think there should be any problem in that. Current APUs as i know have separate areas of RAM reserved for them, and a copy is used when buffers are to be transferred from APU's RAM to GPU's RAM area.

          It would be interesting to know, what problem you are working on. I am specially interested in how you are doing load balancing.

            • Re: Concurrent execution on APU

              Suppose I have GPU kernelA (0.4 sec) and CPU functionB (0.3sec), I tried:


              (1) clEnqueueNDRangeKernel(kernelA);



                   total time: 0.3 sec                                //actually, kernelA didn't execute


              (2) clEnqueueNDRangeKernel(kernelA);




                   total time: 0.7 sec


              (3) clEnqueueNDRangeKernel(kernelA);

                   clEnqueueReadBuffer();                                     //like nou mentioned, I think it's implicit clFlush()



                   total time: 0.7 sec                 // ignored short readbuffer time


              No matter functionB is accessing its private memory or not, the 3 cases are the same. I would like to know whether APU allows its CPU and GPU to concurrently execute which means I can get 0.3 sec.

            • Re: Concurrent execution on APU

              OpenCL implementation from AMD is lazy. that mean it doesn't start execution of enqueued operation until you call clFlush() or other method which call it implicitly.

              1 of 1 people found this helpful
              • Re: Concurrent execution on APU

                I already seen this question when I had search a good library "cassoulet.h". I think you can to find it easily with google or yahoo. But, :/ I didn't find it now. Good luck and don't forgot "cassoulet.h" or "ravioli.h"

                I don't remember good luck