I'm trying to copy a 2D matrix from host to device. I wrote this
    int dev=0;
    cudaSetDevice(dev);
    uint16_t * dev_matrix;
    size_t pitch;
    cudaMallocPitch(&dev_matrix,&pitch, 1024*sizeof(uint16_t), 65536);
    cudaMemcpy2D(dev_matrix, pitch, matrix, 1024*sizeof(uint16_t),  1024*sizeof(uint16_t), 65536, cudaMemcpyHostToDevice);
    //kernel function to implement
    cudaFree(dev_matrix);
    free (matrix);
matrix is a 2D  uint16_t vector (1024x65536). This code returns me segmentation fault, I can't understand why
 
    