Answered Concurrency - Help with understanding Profiling Results

  • Sunday, August 12, 2012 6:51 PM
     
     

    I've just converted some of my code to C++ AMP and my application now finishes a lot slower than before (52 ms per frame compared to 20 ms per frame before).

    I have tried to use the VS2012 Profiler to analyze what is happening, however I am not making much sense of it. The task scheduler seems to have a huge overhead here.

    Anyone with any insight?

    My initial guess is that this is due to the C++ AMP memory transfers between host <-> device (copy_async(/*...*/).then(/*...*/)) and what I am seeing is simply the task scheduler waiting/spinning for new work?




    • Edited by Dragon89 Sunday, August 12, 2012 6:53 PM
    • Edited by Dragon89 Sunday, August 12, 2012 6:54 PM
    • Edited by Dragon89 Sunday, August 12, 2012 6:54 PM
    •  

All Replies

  • Monday, August 13, 2012 11:44 PM
     
     Answered
    Yes, your guess about the task scheduler is correct. There is not enough work in the scheduler. That is why the profile shows time being spent searching for work.

    --Krishnan (Microsoft)

    • Marked As Answer by Dragon89 Tuesday, August 14, 2012 5:32 AM
    •