 
     // Dimensions of computing elements on the CUDA device.
     // Computing the grid dimensions depends on PAD_TOP and PAD_LEFT.
-    unsigned int block_dim_x = THREADS_PER_BLOCK_X;
-    unsigned int block_dim_y = THREADS_PER_BLOCK_Y;
+    unsigned int block_dim_x = strtol(block_dim_x_string, NULL, 10);
+    unsigned int block_dim_y = strtol(block_dim_y_string, NULL, 10);
     unsigned int grid_dim_x = (unsigned int) ceil((src_bitmap->width) / ((double) block_dim_x));
     unsigned int grid_dim_y = (unsigned int) ceil((src_bitmap->height)/ ((double) block_dim_y));
     dim3 block_dim(block_dim_x, block_dim_y);

#include <stdlib.h>
#include "gpu1.cuh"
#include "../common/utils.hpp"

#define THREADS_PER_BLOCK_X 32
#define THREADS_PER_BLOCK_Y 32

#define PAD_TOP 2
#define PAD_LEFT 2

        fflush(stdout);
    } while (!are_identical_bitmaps(*src_bitmap, *dst_bitmap));

    // free memory on device
    cudaFree(d_src_data);
    cudaFree(d_dst_data);
