       {
         int cOffset = INDX( rowTile[i], colTile[i], linearTiles ) *
                             tileSize * tileSize;
-        CUDA_CALL( cudaMemcpyAsync( d_c[i], &p_c[cOffset], tileBytes,
-                     cudaMemcpyHostToDevice, stream[i] ) );
-
+/* use cudaMemcpyAsync to move a tile of C to the device
+   HINT: cOffset points to the starting location of the tile, in host mem */
+        FIXME
       } /* end for */
 
 

        {
/* set the stream for the cublas call */

          CUBLAS_CALL( cublasSetStream( handle, stream[i] ) );

/* call the cublas dgemm function */

          CUBLAS_CALL( cublasDgemm( handle, CUBLAS_OP_N, CUBLAS_OP_N,
                 tileSize, tileSize, tileSize,
                 &alpha,
                 d_a[i], tileSize,
                 d_b[i], tileSize,
                 &beta,
                 d_c[i], tileSize ) );

        } /* end for */


    for( int i = 0; i < nstreams; i++ )
    {
/* destroy the streams here */
      FIXME
    } /* end for */

    CUDA_CALL( cudaFreeHost( p_a ) );
