Adam2019 все еще находится в экспериментальной стадии?
Нет! Он готов к использованию.
Как мне переключить этот автоматический планировщик на Adam2019 или Li2018 для этого урока?
Это делается при запуске генератора. Запустите генератор без аргументов, чтобы увидеть текст справки, который покажет вам, как загрузить плагин auto_schedule.so
. Если вы используете Windows или используете новую сборку CMake, это довольно просто. После сборки и установки Halide в локальный каталог просто:
cmake_minimum_required(VERSION 3.16)
project(Lesson21)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED YES)
set(CMAKE_CXX_EXTENSIONS NO)
find_package(Halide REQUIRED)
# Add the generator
add_executable(lesson_21_auto_scheduler_generate lesson_21_auto_scheduler_generate.cpp)
target_link_libraries(lesson_21_auto_scheduler_generate PRIVATE Halide::Generator)
# Use the generator to create the two variants that the runner expects
add_halide_library(auto_schedule_false FROM lesson_21_auto_scheduler_generate
GENERATOR auto_schedule_gen
PARAMS auto_schedule=false)
add_halide_library(auto_schedule_true FROM lesson_21_auto_scheduler_generate
GENERATOR auto_schedule_gen
PARAMS auto_schedule=true
AUTOSCHEDULER Halide::Adams2019)
# Link them to the runner executable
add_executable(lesson_21_auto_scheduler_run lesson_21_auto_scheduler_run.cpp)
target_link_libraries(lesson_21_auto_scheduler_run
PRIVATE
auto_schedule_false
auto_schedule_true
Halide::Tools)
Функция add_halide_library
управляет запущенными генераторами для создания библиотек stati c. Аргумент AUTOSCHEDULER
позволяет выбирать между Halide::Adams2019
и Halide::Li2018
. На момент написания вы полностью опускаете его, чтобы выбрать автоматический планировщик classi c (по умолчанию). В будущем он будет переименован в Halide::Mullapudi2016
. Вам все равно нужно передать auto_schedule=true
в списке PARAMS
.
Затем выполните сборку с:
$ cd build
$ cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=/path/to/Halide-install ..
$ cmake --build .
$ ./lesson_21_auto_scheduler_run
Manual schedule: 9.31708ms
Auto schedule: 1.64732ms
Возможно, разработчикам Halide стоит добавить урок по использованию Adam2019 в
Я уже давно хотел добавить руководство по использованию Halide из CMake. В сроках нет никаких обещаний, но, надеюсь, я скоро доберусь до него.