Condividi tramite


Interfaccia IDMLCompiledOperator (directml.h)

Rappresenta una forma compilata ed efficiente di un operatore adatto per l'esecuzione nella GPU. Per creare questo oggetto, chiamare IDMLDevice::CompileOperator. L'interfaccia IDMLCompiledOperator eredita da IDMLDispatchable.

A differenza di IDMLOperator, gli operatori compilati sono "baked" e possono essere eseguiti direttamente dalla GPU. Dopo la compilazione di un operatore, è necessario inizializzarlo esattamente una volta prima che possa essere eseguito. Si tratta di un errore durante l'inizializzazione di un operatore più volte. Gli inizializzatori di operatore vengono usati per inizializzare gli operatori compilati. È possibile usare IDMLCommandRecorder::RecordDispatch per registrare l'invio di un inizializzatore di operatore che, quando eseguito nella GPU, inizializzerà uno o più operatori.

Oltre ai tensori di input e output, gli operatori possono richiedere memoria aggiuntiva per l'esecuzione. Questa memoria aggiuntiva deve essere fornita dall'applicazione sotto forma di risorse temporanee e persistenti.

Una risorsa temporanea è una memoria scratch usata solo durante l'esecuzione dell'operatore e non deve essere mantenuta dopo il completamento della chiamata a IDMLCommandRecorder::RecordDispatch nella GPU. Ciò significa che l'applicazione può rilasciare o sovrascrivere la risorsa temporanea tra i dispatch dell'operatore compilato. Al contrario, la risorsa persistente deve essere attiva almeno fino al completamento dell'ultima esecuzione dell'operatore nella GPU. Inoltre, il contenuto della risorsa persistente è opaco e deve essere mantenuto tra le esecuzioni dell'operatore.

Le dimensioni delle risorse temporanee e persistenti variano per operatore. Chiamare IDMLDispatchable::GetBindingProperties per eseguire una query sulle dimensioni richieste, in byte, delle risorse persistenti e temporanee per questo operatore compilato. Per altre informazioni sull'associazione di risorse temporanee e persistenti, vedere IDMLBindingTable::BindPersistentResource::BindTemporaryResource e IDMLBindingTable::BindTemporaryResource.

Tutti i metodi in questa interfaccia sono thread-safe.

Ereditarietà

L'interfaccia IDMLCompiledOperator eredita dall'interfaccia IDMLDispatchable.

Requisiti

Requisito Valore
Piattaforma di destinazione Windows
Intestazione directml.h

Vedi anche

Binding in DirectML

IDMLDispatchable