title: Convert C++ Async function to GPU compute
body: <p>Currently I am using C++ 11 async feature to create additional thread to run my computing kernel. The computing kernel are <strong>totally independent</strong> with each other. I want to know 2 things.</p>
  
  <ol>
  <li>Is this computing model suitable for using GPU to optimise?</li>
  <li>If question 1 is true, what is the basic practice for this kind of optimisation?</li>
  </ol>
  
  <p>Pseudocode code is as below:</p>
  
  <pre><code>vector&lt;std::future&lt;ResultType&gt;&gt; futureVector;
  for (int i = 0; i &lt; std::thread::hardware_concurrency(); i ++) {
      auto future = std::async(
      std::launch::async,
          &amp;computingKernel,
          this,
          parameter1,
          parameter2);
      futureVector.push_back(move(future));
  }
  
  for (int i = 0 ; i &lt; futureVector.size(); i++) {
      // Get result
      futureVector[i].get();
  }
  </code></pre>
  
  <p>Addition:</p>
  
  <ol>
  <li>Is there a way to move this easily without changing the whole code? Like a program mark that could start threads on GPU</li>
  </ol>