Skip to content

Rate Matched Schedule Fail for camera pipeline application #174

Description

@joyliu37

Hi Dillon@dillonhuff , Jeff and I are testing a version of camera pipeline with intermediate buffer generated in the demosaic stage. We also unroll the x dimension by 2 to generate a higher output rate. I saw the following assertion in the extract_linear_rational_approximation(isl_aff*) function. Could you help us check what's wrong with this app?

I am using new_lake branch,
The prog is in example_progs/camera_pipeline.cpp
To reproduce this problem pull the latest new_lake branch and run ./rebuild_and_run.sh glb-exp
Thanks!

Consumed data...
  { op_hcompute_corrected_stencil_2[corrected_s0_x_x_1] -> op_hcompute_demosaicked_1_stencil[demosaicked_1_s0_x_x = corrected_s0_x_x_1] : 0 <= corrected_s0_x_x_1 <= 123 }
bound: { op_hcompute_corrected_stencil_2[corrected_s0_x_x_1] -> op_hcompute_demosaicked_1_stencil[(corrected_s0_x_x_1)] }
    affine upper bound on data needed: { op_hcompute_corrected_stencil_2[corrected_s0_x_x_1] -> [(corrected_s0_x_x_1)] }
      domain of bound: { op_hcompute_corrected_stencil_2[corrected_s0_x_x_1] : 0 <= corrected_s0_x_x_1 <= 123 }
Extracting linear rational approximation: { op_hcompute_corrected_stencil_2[corrected_s0_x_x_1] -> [(corrected_s0_x_x_1)] }
  { op_hcompute_corrected_stencil_3[corrected_s0_x_x_1] -> op_hcompute_demosaicked_1_stencil_5[demosaicked_1_s0_x_x = corrected_s0_x_x_1] : 0 <= corrected_s0_x_x_1 <= 123 }
bound: { op_hcompute_corrected_stencil_3[corrected_s0_x_x_1] -> op_hcompute_demosaicked_1_stencil_5[(corrected_s0_x_x_1)] }
    affine upper bound on data needed: { op_hcompute_corrected_stencil_3[corrected_s0_x_x_1] -> [(corrected_s0_x_x_1)] }
      domain of bound: { op_hcompute_corrected_stencil_3[corrected_s0_x_x_1] : 0 <= corrected_s0_x_x_1 <= 123 }
Extracting linear rational approximation: { op_hcompute_corrected_stencil_3[corrected_s0_x_x_1] -> [(corrected_s0_x_x_1)] }
  { op_hcompute_g_r_stencil[g_r_s0_x] -> op_hcompute_g_gr_stencil[g_gr_s0_x_x] : 0 <= g_r_s0_x <= 124 and ((2g_gr_s0_x_x = 1 + g_r_s0_x and 0 < g_r_s0_x <= 123) or 2g_gr_s0_x_x = g_r_s0_x) }
bound: { op_hcompute_g_r_stencil[g_r_s0_x] -> op_hcompute_g_gr_stencil[(g_r_s0_x - floor((g_r_s0_x)/2))] }
    affine upper bound on data needed: { op_hcompute_g_r_stencil[g_r_s0_x] -> [(g_r_s0_x - floor((g_r_s0_x)/2))] }
      domain of bound: { op_hcompute_g_r_stencil[g_r_s0_x] : (g_r_s0_x) mod 2 = 0 and 0 <= g_r_s0_x <= 124 }
Extracting linear rational approximation: { op_hcompute_g_r_stencil[g_r_s0_x] -> [(g_r_s0_x - floor((g_r_s0_x)/2))] }
clockwork: app.cpp:833: std::pair<isl_val*, isl_val*> extract_linear_rational_approximation(isl_aff*): Assertion `isl_val_is_zero(k)' failed.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

No labels
No labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions