   dim3 threadsPerBlock(threadsPerBlock1dim, threadsPerBlock1dim);
   dim3 numBlocks(numBlocksX, numBlocksY);
 
+  double iStart = cpuSecond();
+
   calc<<<numBlocks, threadsPerBlock>>>(offset, bitmap, quiet);
-
   cudaDeviceSynchronize();
 
   Pixel* devicePixels = bitmap.pixels;
   bitmap.pixels = new Pixel[pixelsCount];
   cudaMemcpy(bitmap.pixels, devicePixels, pixelsSize, cudaMemcpyDeviceToHost);
 
+  double iElaps = cpuSecond() - iStart;
+  // if (!quiet)
+    printf("Execution time on gpu: %lf\n", iElaps);
+
   writePNG(bitmap, filename);
 
   cudaFree(devicePixels);

  if (!quiet)
    printf("Thread-%d:%d on block %d:%d started.\n", threadIdx.x, threadIdx.y, blockIdx.x, blockIdx.y);

  // „Thread-<num> execution time was (millis): <num>“,
  // „Threads used in current run: <num>“,
  // „Total execution time for current run (millis): <num>

  double lowerX = offset.lowerX, upperX = offset.upperX;
  double lowerY = offset.lowerY, upperY = offset.upperY;


}

int main(int argc, char** argv) {
  double iStart = cpuSecond();

  int width = 640, height = 480;
  double lowerX = -2, upperX = 2;
  double lowerY = -2, upperY = 2;
