IDMLDevice1::CompileGraph 메서드(directml.h)
DirectML 연산자의 그래프를 GPU에 디스패치할 수 있는 개체로 컴파일합니다.
컴파일된 연산자는 GPU에서 실행하는 데 적합한 연산자의 효율적이고 구운 형식을 나타냅니다. 컴파일된 연산자는 실행에 필요한 상태(예: 셰이더 및 기타 개체)를 보유합니다. 컴파일된 연산자는 IDMLPageable 인터페이스를 구현하므로 원하는 경우 GPU 메모리에서 제거할 수 있습니다. 자세한 내용은 IDMLDevice1::Evict 및 IDMLDevice1::MakeResident 를 참조하세요.
컴파일된 연산자는 이 메서드가 반환된 후 그래프 설명 내에 제공된 IDMLOperator 개체를 사용하거나 참조하지 않습니다.
구문
HRESULT CompileGraph(
const DML_GRAPH_DESC *desc,
DML_EXECUTION_FLAGS flags,
REFIID riid,
[out] void **ppv
);
매개 변수
desc
형식: DML_GRAPH_DESC*
컴파일할 그래프에 대한 설명입니다. DML_GRAPH_DESC 참조하세요.
flags
이 연산자의 실행을 제어하는 모든 플래그입니다.
riid
형식: REFIID
ppv에서 반환하려는 인터페이스의 GUID(Globally Unique Identifier)에 대한 참조입니다. IDMLCompiledOperator의 GUID가 될 것으로 예상됩니다.
[out] ppv
형식: void**
컴파일된 연산자에 대한 포인터를 수신하는 메모리 블록에 대한 포인터입니다. 생성된 컴파일된 연산자를 나타내는 IDMLCompiledOperator에 대한 포인터의 주소입니다.
반환 값
형식: HRESULT
메서드가 성공하면 S_OK를 반환하고, 그러지 않으면 HRESULT 오류 코드를 반환합니다.
설명
DirectML 연산자 그래프 API는 다양한 하드웨어에서 DirectML을 효율적으로 사용하는 추상적인 방법을 제공합니다. DirectML은 사용 중인 어댑터를 기반으로 가장 효율적인 텐서 레이아웃 선택과 같은 텐서 수준 최적화를 적용합니다. 조인 또는 분할 연산자 제거와 같은 최적화도 적용합니다.
DirectML 그래프를 빌드하기 전에 높은 수준의 최적화를 적용하는 것이 좋습니다. 예를 들어 컨볼루션 연산자를 BatchNorm, 상수 접기 및 일반적인 하위 식 제거와 융합합니다. DirectML 그래프 최적화 프로그램 내의 최적화는 일반적으로 기계 학습 프레임워크에서 일반적으로 처리되는 이러한 디바이스 독립적 최적화를 보완하기 위한 것입니다.
요구 사항
지원되는 최소 클라이언트 | Windows 10 빌드 20348 |
지원되는 최소 서버 | Windows 10 빌드 20348 |
대상 플랫폼 | Windows |
헤더 | directml.h |
라이브러리 | DirectML.lib |
DLL | DirectML.dll |