IDMLCompiledOperator 인터페이스(directml.h)
GPU에서 실행하기에 적합한 컴파일된 효율적인 연산자 형식을 나타냅니다. 이 개체를 만들려면 IDMLDevice::CompileOperator를 호출합니다. IDMLCompiledOperator 인터페이스는 IDMLDispatchable에서 상속됩니다.
IDMLOperator와 달리 컴파일된 연산자는 "베이킹"되며 GPU에서 직접 실행할 수 있습니다. 연산자가 컴파일된 후에는 연산자가 실행되기 전에 정확히 한 번 초기화해야 합니다. 운영자를 두 번 이상 초기화하는 것은 오류입니다. 연산자 이니셜라이저는 컴파일된 연산자를 초기화하는 데 사용됩니다. IDMLCommandRecorder::RecordDispatch를 사용하여 GPU에서 실행될 때 하나 이상의 연산자를 초기화하는 연산자 이니셜라이저의 디스패치를 기록할 수 있습니다.
입력 및 출력 텐서 외에도 연산자는 실행을 위해 추가 메모리가 필요할 수 있습니다. 이 추가 메모리는 임시 및 영구 리소스의 형태로 애플리케이션에서 제공해야 합니다.
임시 리소스는 연산자를 실행하는 동안에만 사용되는 스크래치 메모리이며 , GPU에서 IDMLCommandRecorder::RecordDispatch 호출이 완료된 후에도 유지할 필요가 없습니다. 즉, 애플리케이션이 컴파일된 연산자의 디스패치 사이에 있는 임시 리소스를 릴리스하거나 덮어쓸 수도 있습니다. 반면, 영구 리소스는 적어도 GPU에서 연산자의 마지막 실행이 완료될 때까지 살아야 합니다. 또한 영구 리소스의 내용은 불투명하며 연산자 실행 간에 유지되어야 합니다.
임시 및 영구 리소스의 크기는 연산자마다 다릅니다. IDMLDispatchable::GetBindingProperties를 호출하여 이 컴파일된 연산자에 대한 영구 및 임시 리소스의 필요한 크기(바이트)를 쿼리합니다. 임시 및 영구 리소스 바인딩에 대한 자세한 내용은 IDMLBindingTable::BindTemporaryResource 및 IDMLBindingTable::BindPersistentResource 를 참조하세요.
이 인터페이스의 모든 메서드는 스레드로부터 안전합니다.
상속
IDMLCompiledOperator 인터페이스는 IDMLDispatchable 인터페이스에서 상속됩니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | Windows |
헤더 | directml.h |