-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

Проверяет, содержит ли программа требуемые единицы планирования.