Skip to content

Make Halide not blow up for novice users who don't write a schedule #6596

Open
@jrk

Description

@jrk

Options:

  • Raise a warning (least appealing)
  • Have in a linter
  • Throw an error (require at least one explicit .inline() or output.compute_root() to override)
  • Have a built-in simple autoscheduler that's -O0 or -O1
    • Should always be trivial to run on any pipeline in any context with no extra work
      • Don't use the complex autoscheduler plugin interface
      • Don't require estimates
      • Don't require loading modules
      • Don't require generators
      • Test aggressively to be sure it is robust to any input
    • Call it something different than "autoscheduler" to set clear expectations
      • Pipeline::trivial_schedule (or schedule_trivially)
      • Pipeline::default_schedule

Discussed with @abadams, @BachiLi, @derek-gerstmann, @TH3CHARLie. I lean towards combining options (3) & (4): error, plus an easy default way to get past it by calling output.trivial_schedule().

Metadata

Metadata

Assignees

Labels

autoschedulerRelated to one or more of the Autoschedulerserror_messageImprovements to error messagesusability

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions