   exit(-1);}} while(0)
 
 // experiment iterations to compute averages
-#define N_ITERATIONS 1024
-#define N_HIGH_KERNELS 1
+#define N_ITERATIONS 2
+#define N_HIGH_KERNELS 4
 
 // copy from source -> destination arrays
 __device__ void slow_kernel(int *dst, int *src, size_t n) {
   int num = gridDim.x * blockDim.x;
   int id = blockDim.x * blockIdx.x + threadIdx.x;
   for (int i = id; i < n / sizeof(int); i += num) {
-#define DELAY 1024
+#define DELAY 2048
     for (volatile int j = 0; j < DELAY; j++)
       ;
     dst[i] = src[i];

    fprintf(stderr,
        "%s requires Compute Capability of SM 3.5 or higher to run.\nexiting...\n",
        argv[0]);
    exit(EXIT_WAIVED);
  }

  // get the range of priorities available
  // [ greatest_priority, lowest_priority ]
  int priority_low;
  int priority_hi;
  checkCudaErrors(

#include <cuda_profiler_api.h>
#include <helper_cuda.h>

#define TOTAL_SIZE  256*1024*1024

// # threadblocks
#define TBLOCKS 1024
