def METHOD_NAME(device_type: dace.dtypes.DeviceType):
    '''
    Runs Hdiff for the given device
    :return: the SDFG
    '''
    # Initialize data (npbench small size)
    I, J, K = 64, 64, 60
    in_field, out_field, coeff = initialize(I, J, K)
    out_field_ref = np.copy(out_field)
    if device_type in {dace.dtypes.DeviceType.CPU, dace.dtypes.DeviceType.GPU}:
        # Parse the SDFG and apply auto-opt
        sdfg = hdiff_kernel.to_sdfg()
        sdfg = auto_optimize(sdfg, device_type)
        sdfg(in_field, out_field, coeff, I=I, J=J, K=K)
    elif device_type == dace.dtypes.DeviceType.FPGA:
        # Parse SDFG and apply FPGA friendly optimization
        sdfg = hdiff_kernel.to_sdfg(simplify=True)
        applied = sdfg.apply_transformations([FPGATransformSDFG])
        assert applied == 1
        sdfg.apply_transformations_repeated([InlineSDFG], print_report=True)
        sdfg.specialize(dict(I=I, J=J, K=K))
        sdfg(in_field, out_field, coeff)
    # Compute ground truth and validate
    ground_truth(in_field, out_field_ref, coeff)
    assert np.allclose(out_field, out_field_ref)
    return sdfg