tlc-pack / tvm-tensorir

Apache License 2.0
8 stars 0 forks source link

Meta Schedule Upstreaming #553

Open junrushao opened 2 years ago

junrushao commented 2 years ago

Based on this commit: https://github.com/tlc-pack/tvm-tensorir/commit/af69e7ab8fbb69c78e7dd23b27168e5c668055bf. We need to upstream 228 file changes and 28472 lines of code.

Part 1. Scheduling

@vinx13 @jinhongyii

include/tvm/arith/iter_affine_map.h include/tvm/tir/schedule/instruction.h include/tvm/tir/schedule/schedule.h src/tir/schedule/analysis.h src/tir/schedule/analysis/analysis.cc src/tir/schedule/analysis/layout.cc src/tir/schedule/concrete_schedule.cc src/tir/schedule/concrete_schedule.h src/tir/schedule/instruction.cc src/tir/schedule/instruction_traits.h src/tir/schedule/primitive.h src/tir/schedule/primitive/annotate.cc src/tir/schedule/primitive/block_annotate.cc src/tir/schedule/primitive/blockize_tensorize.cc src/tir/schedule/primitive/compute_at.cc src/tir/schedule/primitive/compute_inline.cc src/tir/schedule/primitive/for_kind.cc src/tir/schedule/primitive/layout_transformation.cc src/tir/schedule/primitive/read_write_at.cc src/tir/schedule/primitive/sampling.cc src/tir/schedule/schedule.cc src/tir/schedule/state.cc src/tir/schedule/trace.cc src/tir/schedule/traced_schedule.cc src/tir/schedule/traced_schedule.h src/tir/schedule/transform.cc src/tir/schedule/utils.h tests/python/unittest/test_tir_schedule_analysis.py tests/python/unittest/test_tir_schedule_blockize.py tests/python/unittest/test_tir_schedule_compute_inline.py tests/python/unittest/test_tir_schedule_read_write_at.py tests/python/unittest/test_tir_schedule_tensorize.py tests/python/unittest/test_tir_schedule_transform_layout.py tests/python/unittest/test_tir_schedule_utilities.py tests/python/unittest/test_tir_transform_inject_software_pipeline.py

Part 2. Builder & Runner

@junrushao1994

include/tvm/auto_scheduler/measure.h include/tvm/meta_schedule/builder.h python/tvm/meta_schedule/init.py python/tvm/meta_schedule/builder/builder.py python/tvm/meta_schedule/builder/local_builder.py src/meta_schedule/builder/builder.cc tests/python/unittest/test_meta_schedule_builder.py python/tvm/meta_schedule/runner/local_runner.py python/tvm/meta_schedule/runner/rpc_runner.py

Part 3. Database

@junrushao1994

include/tvm/meta_schedule/database.h python/tvm/meta_schedule/database/database.py src/meta_schedule/database/database.cc src/meta_schedule/database/json_database.cc

Part 4. Cost model

@junrushao1994

include/tvm/auto_scheduler/cost_model.h include/tvm/meta_schedule/cost_model.h python/tvm/meta_schedule/cost_model/init.py python/tvm/meta_schedule/cost_model/cost_model.py python/tvm/meta_schedule/cost_model/metric.py python/tvm/meta_schedule/cost_model/random_model.py python/tvm/meta_schedule/cost_model/xgb_model.py src/meta_schedule/cost_model/cost_model.cc tests/python/unittest/test_meta_schedule_cost_model.py

Part 5. Feature extraction

@junrushao1994

include/tvm/meta_schedule/feature_extractor.h python/tvm/meta_schedule/feature_extractor/init.py python/tvm/meta_schedule/feature_extractor/feature_extractor.py python/tvm/meta_schedule/feature_extractor/per_store_feature.py python/tvm/meta_schedule/feature_extractor/random_feature_extractor.py src/meta_schedule/feature_extractor/feature_extractor.cc src/meta_schedule/feature_extractor/per_store_feature.cc tests/python/unittest/test_meta_schedule_feature_extractor.py tests/python/unittest/test_meta_schedule_feature_extractor_per_store_feature.py

Part 5. Measure Callbacks

@zxybazh

include/tvm/meta_schedule/measure_callback.h python/tvm/meta_schedule/measure_callback/init.py python/tvm/meta_schedule/measure_callback/add_to_database.py python/tvm/meta_schedule/measure_callback/echo_statistics.py python/tvm/meta_schedule/measure_callback/measure_callback.py python/tvm/meta_schedule/measure_callback/remove_build_artifact.py python/tvm/meta_schedule/measure_callback/update_cost_model.py src/meta_schedule/measure_callback/add_to_database.cc src/meta_schedule/measure_callback/echo_statistics.cc src/meta_schedule/measure_callback/measure_callback.cc src/meta_schedule/measure_callback/remove_build_artifact.cc src/meta_schedule/measure_callback/update_cost_model.cc tests/python/unittest/test_meta_schedule_measure_callback.py

Part 6. Task Scheduler

@zxybazh

include/tvm/meta_schedule/task_scheduler.h python/tvm/meta_schedule/task_scheduler/round_robin.py python/tvm/meta_schedule/task_scheduler/task_scheduler.py src/meta_schedule/task_scheduler/round_robin.cc src/meta_schedule/task_scheduler/task_scheduler.cc tests/python/unittest/test_meta_schedule_task_scheduler.py

Part 7. Search Strategy

@zxybazh

include/tvm/meta_schedule/search_strategy.h python/tvm/meta_schedule/search_strategy/init.py python/tvm/meta_schedule/search_strategy/evolutionary_search.py python/tvm/meta_schedule/search_strategy/replay_func.py python/tvm/meta_schedule/search_strategy/replay_trace.py python/tvm/meta_schedule/search_strategy/search_strategy.py src/meta_schedule/search_strategy/evolutionary_search.cc src/meta_schedule/search_strategy/replay_func.cc src/meta_schedule/search_strategy/replay_trace.cc tests/python/unittest/test_meta_schedule_search_strategy.py

Part 8. Space Generator

@zxybazh

python/tvm/meta_schedule/space_generator/init.py python/tvm/meta_schedule/space_generator/post_order_apply.py python/tvm/meta_schedule/space_generator/space_generator.py include/tvm/meta_schedule/space_generator.h src/meta_schedule/space_generator/post_order_apply.cc tests/python/unittest/test_meta_schedule_space_generator.py tests/python/unittest/test_meta_schedule_post_order_apply.py

Part 9. Tune Context

@zxybazh

include/tvm/meta_schedule/tune_context.h python/tvm/meta_schedule/tune_context.py src/meta_schedule/tune_context.cc python/tvm/auto_scheduler/search_task.py python/tvm/auto_scheduler/workload_registry.py

Part 10. Schedule Rules

@spectrometerHBH @MasterJH5574 @jinhongyii @Hzfengsy

include/tvm/meta_schedule/schedule_rule.h python/tvm/meta_schedule/schedule_rule/init.py python/tvm/meta_schedule/schedule_rule/auto_inline.py python/tvm/meta_schedule/schedule_rule/multi_level_tiling.py python/tvm/meta_schedule/schedule_rule/parallel_vectorize_unroll.py python/tvm/meta_schedule/schedule_rule/random_compute_location.py python/tvm/meta_schedule/schedule_rule/schedule_rule.py src/meta_schedule/schedule_rule/auto_inline.cc src/meta_schedule/schedule_rule/multi_level_tiling.cc src/meta_schedule/schedule_rule/parallel_vectorize_unroll.cc src/meta_schedule/schedule_rule/random_compute_location.cc src/meta_schedule/schedule_rule/schedule_rule.cc tests/python/unittest/test_meta_schedule_schedule_rule.py tests/python/unittest/test_meta_schedule_schedule_rule_auto_inline.py tests/python/unittest/test_meta_schedule_schedule_rule_multi_level_tiling.py tests/python/unittest/test_meta_schedule_schedule_rule_parallel_vectorize_unroll.py tests/python/unittest/test_meta_schedule_schedule_rule_random_compute_location.py

Part 11. Post-Processors

@spectrometerHBH @MasterJH5574 @jinhongyii @Hzfengsy

include/tvm/meta_schedule/postproc.h python/tvm/meta_schedule/postproc/init.py python/tvm/meta_schedule/postproc/disallow_dynamic_loop.py python/tvm/meta_schedule/postproc/postproc.py python/tvm/meta_schedule/postproc/rewrite_cooperative_fetch.py python/tvm/meta_schedule/postproc/rewrite_parallel_vectorize_unroll.py python/tvm/meta_schedule/postproc/rewrite_reduction_block.py python/tvm/meta_schedule/postproc/rewrite_tensor_core.py python/tvm/meta_schedule/postproc/rewrite_unbound_block.py python/tvm/meta_schedule/postproc/verify_gpu_code.py src/meta_schedule/postproc/disallow_dynamic_loop.cc src/meta_schedule/postproc/postproc.cc src/meta_schedule/postproc/rewrite_cooperative_fetch.cc src/meta_schedule/postproc/rewrite_parallel_vectorize_unroll.cc src/meta_schedule/postproc/rewrite_reduction_block.cc src/meta_schedule/postproc/rewrite_tensor_core.cc src/meta_schedule/postproc/rewrite_unbound_block.cc src/meta_schedule/postproc/verify_gpu_code.cc tests/python/unittest/test_meta_schedule_postproc.py tests/python/unittest/test_meta_schedule_postproc_disallow_dynamic_loop.py tests/python/unittest/test_meta_schedule_postproc_rewrite_cooperative_fetch.py tests/python/unittest/test_meta_schedule_postproc_rewrite_parallel_vectorize_unroll.py tests/python/unittest/test_meta_schedule_postproc_rewrite_reduction_block.py tests/python/unittest/test_meta_schedule_postproc_rewrite_tensor_core.py tests/python/unittest/test_meta_schedule_postproc_rewrite_unbound_block.py tests/python/unittest/test_meta_schedule_postproc_verify_gpu_code.py

Part 12. Mutator

@spectrometerHBH @MasterJH5574 @jinhongyii @Hzfengsy

include/tvm/meta_schedule/mutator.h python/tvm/meta_schedule/mutator/init.py python/tvm/meta_schedule/mutator/mutate_compute_location.py python/tvm/meta_schedule/mutator/mutate_parallel.py python/tvm/meta_schedule/mutator/mutate_tile_size.py python/tvm/meta_schedule/mutator/mutate_unroll.py python/tvm/meta_schedule/mutator/mutator.py src/meta_schedule/mutator/mutate_compute_location.cc src/meta_schedule/mutator/mutate_parallel.cc src/meta_schedule/mutator/mutate_tile_size.cc src/meta_schedule/mutator/mutate_unroll.cc src/meta_schedule/mutator/mutator.cc tests/python/unittest/test_meta_schedule_mutator.py tests/python/unittest/test_meta_schedule_mutator_mutate_compute_location.py tests/python/unittest/test_meta_schedule_mutator_mutate_parallel.py tests/python/unittest/test_meta_schedule_mutator_mutate_tile_size.py tests/python/unittest/test_meta_schedule_mutator_mutate_unroll.py

Part 13. Build, TE, TIR, TVMScript

@vinx13

include/tvm/tir/transform.h include/tvm/tir/function.h include/tvm/tir/stmt.h include/tvm/tir/stmt_functor.h python/tvm/tir/transform/transform.py src/tir/transforms/convert_blocks_to_opaque.cc src/tir/transforms/inject_software_pipeline.cc src/tir/transforms/lower_cross_thread_reduction.cc src/tir/transforms/unify_thread_binding.cc python/tvm/driver/build_module.py src/driver/driver_api.cc python/tvm/relay/build_module.py python/tvm/tir/init.py python/tvm/tir/function.py python/tvm/tir/schedule/init.py python/tvm/tir/schedule/analysis.py python/tvm/tir/schedule/schedule.py python/tvm/script/tir/scope_handler.py python/tvm/script/tir/special_stmt.py src/printer/text_printer.h src/te/operation/create_primfunc.cc src/tir/analysis/verify_gpu_code.cc src/tir/ir/function.cc src/tir/ir/stmt_functor.cc tests/python/unittest/test_te_create_primfunc.py

Part 14. User-facing API

@vinx13

python/tvm/meta_schedule/tune.py tests/python/unittest/test_meta_schedule_tune_relay.py tests/python/unittest/test_meta_schedule_tune_te.py tests/python/unittest/test_meta_schedule_tune_tir.py

Part 15. Utils & Misc

@vinx13

include/tvm/support/random_engine.h src/meta_schedule/utils.h src/runtime/library_module.h src/support/array.h src/support/nd_int_set.h src/target/tag.cc src/target/target_kind.cc python/tvm/meta_schedule/utils.py gallery/how_to/extend_tvm/bring_your_own_datatypes.py

Part 16. Testing

python/tvm/meta_schedule/testing/init.py python/tvm/meta_schedule/testing/byoc_trt.py python/tvm/meta_schedule/testing/relay_workload.py python/tvm/meta_schedule/testing/run_ansor.sh python/tvm/meta_schedule/testing/run_meta_schedule.sh python/tvm/meta_schedule/testing/schedule_rule.py python/tvm/meta_schedule/testing/space_generation.py python/tvm/meta_schedule/testing/te_workload.py python/tvm/meta_schedule/testing/test_ansor_cpu.py python/tvm/meta_schedule/testing/test_tune_te_cpu.py python/tvm/meta_schedule/testing/tir_tensor_intrin.py

Part 17. Performance testing

tests/python/meta_schedule/run_ansor_cpu.sh tests/python/meta_schedule/run_ansor_cuda.sh tests/python/meta_schedule/run_meta_schedule_cpu.sh tests/python/meta_schedule/run_meta_schedule_cuda.sh tests/python/meta_schedule/test_ansor.py tests/python/meta_schedule/test_debug_ansor.py tests/python/meta_schedule/test_debug_meta_schedule.py tests/python/meta_schedule/test_meta_schedule.py

Part 18. Others

tests/python/unittest/test_meta_schedule_byoc.py tests/python/unittest/test_meta_schedule_sketch_cpu.py tests/python/unittest/test_meta_schedule_sketch_cuda.py tests/python/unittest/test_meta_schedule_task_extraction.py

junrushao commented 2 years ago

@zxybazh correct. These are just typos fixed by you