-mpmd-move-transfers-to-producer
Перемещает трансферы рядом со своими производителями.
Перемещает трансферы рядом с их производителями: если операнд является аргументом блока, перемещает трансфер в начало блока, в противном случае перемещает его после определяющего оператора.
-mpmd-pipeline-scheduler
Изменяет порядок фрагментов для получения заданного графика конвейера.
Переупорядочивает фрагменты в соответствии с расписанием конвейера. Алгоритм планирования основан на функции happen before , которая принимает два фрагмента f1
и f2
в качестве аргументов и проверяет, должен ли f1
быть запланирован перед f2
. Эта функция требует выполнения следующих условий:
-
f1
иf2
назначены на одну и ту же сетку, -
f1
иf2
являются единицами планирования (т. е. определяемыми пользователем фрагментами с определенными счетчиками вызовов), и -
f1
не зависит отf2
, аf2
не зависит отf1
. И этого должно быть достаточно для описания многих современных графиков работы конвейеров.
Для каждого фрагмента f1
, который должен быть запланирован до f2
, проход планировщика создаёт зависимость по управлению от f1
к f2
. Затем он применяет топологическую сортировку к модулю, чтобы гарантировать соблюдение всех зависимостей (и соответствие программы допустимому виду SSA). Наконец, проход удаляет из графа любую внесённую зависимость по управлению.
Параметры
-must-happen-before : A comparator that determines whether a fragment must be scheduled before another. Can be parsed from a built-in `PipelineSchedule` as follows: `builtin:<schedule-as-string>`.
-mpmd-remat-fragment
Рематериализует фрагменты.
Находит пары фрагментов (прямой и обратный), которые необходимо рематериализовать, и клонирует каждый прямой фрагмент до его обратного использования, заменяя все обратные использования значений, созданных прямым фрагментом, клонированными аналогами. Это может использоваться для рематериализации активации в параллельном конвейере.
Если merge_remat_fragments
равно true, то мы объединяем фрагменты remat с их фрагментами-потребителями.
Параметры
-merge-remat-fragments : Whether to merge the remat fragments into their consumer fragments.
-mpmd-scheduling-units-verifier
Проверяет, содержит ли программа требуемые единицы планирования.