   compilePTX(src, headers, includeNames, ptx);
 
   void *args[] = {(void*)&aInfo, (void*)&bInfo, (void*)&cInfo, (void*)&totalElements};
-  launch(ptx.data(), "kernel", args, grid, block);
+  launch(ptx.data(), "kernel", args, grid, block, (CUstream)stream);
 }
 
 

  compilePTX(src, headers, includeNames, ptx);

  void *args[] = {(void*)&aInfo, (void*)&totalElements};
  launch(ptx.data(), "kernel", args, grid, block);
}

// Example op: 'x = x*y'

    const char* op,
    IndexType totalElements,
    dim3 grid, dim3 block,
    int A, int B,
    cudaStream_t stream)
{
  // using c++11 std::is_same here
  const char* type;
