 #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


    // 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 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);

}

int main(int argc, char** argv) {
    assert(argc == 5 && "Usage: gpu1 <input_file_name.bmp> <output_file_name.bmp> <block_dim_x> <block_dim_y>");

    char* src_fname = argv[1];
    char* dst_fname = argv[2];
    char* block_dim_x_string = argv[3];
    char* block_dim_y_string = argv[4];

    printf("src_fname   = %s\n", src_fname);
    printf("dst_fname   = %s\n", dst_fname);
    printf("block dim X = %s\n", block_dim_x_string);
    printf("block dim Y = %s\n", block_dim_y_string);

    // load src image
    Bitmap* src_bitmap = loadBitmap(src_fname);
