Skip to content

Anderson2021: DefaultCostModel vector out-of-bounds write. #9056

@mcourteaux

Description

@mcourteaux

Description

std::vector operator[] out of bounds:

#5  0x00007fffec24386b in Halide::DefaultCostModel::enqueue (this=0x49af90, ns=1, schedule_feats=0x7fffffff7a10, cost_ptr=0x4a54c8, cost_per_stage_ptr=0x4a54d0)
    at /home/martijn/zec/3rd/halide/src/autoschedulers/anderson2021/DefaultCostModel.cpp:178
178	   cost_per_stage_ptrs[cursor] = cost_per_stage_ptr;

cursor = 0, cost_per_stage_ptrs is an empty vector.

Reproducing case

Compile Halide in debug mode, and run ninja. stl bounds checks on std::vector will trigger on the DefaultCostModel on this step:

gdb --args ./test/autoschedulers/anderson2021/anderson2021_demo.generator -n anderson2021_demo -d 0 -g demo -f anderson2021_demo -e c_header,object,registration -p ./src/autoschedulers/anderson2021/libautoschedule_anderson2021.so -o test/autoschedulers/anderson2021 target=x86-64-linux-cuda-cuda_capability_70-no_runtime autoscheduler=Anderson2021

Metadata

Metadata

Assignees

Labels

autoschedulerRelated to one or more of the Autoschedulers

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions