Интерфейс IDMLOperatorInitializer (directml.h)
Представляет специализированный объект, целью которого является инициализация скомпилированных операторов. Чтобы создать экземпляр этого объекта, вызовите IDMLDevice::CreateOperatorInitializer. Интерфейс IDMLOperatorInitializer наследуется от IDMLDispatchable.
Инициализатор операторов связан с одним или несколькими скомпилированными операторами, которые являются целевыми объектами для инициализации. Инициализацию оператора можно записать в список команд с помощью IDMLCommandRecorder::RecordDispatch. После завершения инициализации на GPU все целевые операторы переходить в инициализированное состояние. Необходимо инициализировать все операторы ровно один раз, прежде чем их можно будет выполнить.
Наследование
Интерфейс IDMLOperatorInitializer наследуется от интерфейса IDMLDispatchable.
Методы
Интерфейс IDMLOperatorInitializer содержит следующие методы.
IDMLOperatorInitializer::Reset Сбрасывает инициализатор для обработки инициализации нового набора операторов. |
Комментарии
Инициализаторы операторов можно использовать повторно: после использования экземпляра для инициализации набора операторов его можно сбросить с помощью другого набора скомпилированных операторов в качестве целевых объектов.
При выполнении инициализатора ожидаемые привязки:
- Входные данные должны быть одной привязкой буферного массива для каждого целевого оператора в порядке, в который вы изначально указали операторы при создании или сбросе инициализатора. Размер каждой привязки буферного массива должен быть равен входным данным соответствующего оператора. Кроме того, можно указать NONE для привязки, чтобы не привязать входные данные для инициализации этого целевого оператора.
- Выходные данные должны быть постоянными ресурсами для каждого целевого оператора в порядке, в который вы изначально указали операторы при создании или сбросе инициализатора.
- Как и в случае с любым диспетчеризируемым объектом (инициализатором оператора или скомпилированным оператором), инициализатору может потребоваться временный ресурс. Вызовите IDMLDispatchable::GetBindingProperties , чтобы определить необходимый размер временного ресурса.
- Инициализаторы операторов никогда не требуют постоянных ресурсов. Поэтому вызов IDMLDispatchable::GetBindingProperties в инициализаторе оператора всегда возвращает значение PersistentResourceSize , равное 0.
Инициализатор самого оператора не требуется инициализировать — инициализация GPU применяется только к скомпилированным операторам.
Требования
Целевая платформа | Windows |
Header | directml.h |