다음을 통해 공유


IDMLBindingTable::BindPersistentResource 메서드(directml.h)

버퍼를 영구 리소스로 바인딩합니다. IDMLDispatchable::GetBindingProperties를 호출하여 이 버퍼 범위의 필요한 크기를 확인할 수 있습니다.

연산자의 바인딩 속성이 영구 리소스에 대해 0의 크기를 지정하는 경우 이 메서드에 nullptr 을 제공할 수 있습니다(바인딩할 리소스가 없음). 그렇지 않으면 IDMLDispatchable::GetBindingProperties에서 반환하는 필수 PersistentResourceSize만큼 큰 형식 DML_BINDING_TYPE_BUFFER 바인딩을 제공해야 합니다.

임시 리소스와 달리 컴파일된 연산자가 수행하는 한 영구 리소스의 내용과 수명은 유지되어야 합니다. 즉, 연산자에 영구 리소스가 필요한 경우 애플리케이션은 초기화하는 동안 영구 리소스를 제공해야 하며, 이후에도 연산자의 모든 향후 실행에 해당 콘텐츠를 수정하지 않은 상태로 제공해야 합니다.

영구 리소스는 일반적으로 DirectML에서 연산자를 초기화하는 동안 컴퓨팅되고 해당 연산자의 향후 실행 시 다시 사용되는 조회 테이블 또는 기타 수명이 긴 데이터를 저장하는 데 사용됩니다.

영구 리소스의 데이터가 불투명하므로 초기화되면 복사하거나 다른 버퍼로 이동할 수 없습니다.

영구 리소스는 연산자를 초기화하는 동안에만 기록되며 이후 변경이 불가능합니다. 모든 후속 실행은 영구 리소스에 쓰지 않도록 보장됩니다.

영구 버퍼로 바인딩할 제공된 버퍼 범위는 시작 오프셋이 DML_PERSISTENT_BUFFER_ALIGNMENT에 정렬되어 있어야 한다. 버퍼의 기반이 되는 힙의 유형은 D3D12_HEAP_TYPE_DEFAULT여야 합니다.

구문

void BindPersistentResource(
  [in, optional] const DML_BINDING_DESC *binding
);

매개 변수

[in, optional] binding

형식: const DML_BINDING_DESC*

바인딩할 텐서 리소스에 대한 설명을 포함하는 DML_BINDING_DESC 대한 선택적 포인터입니다.

반환 값

없음

요구 사항

요구 사항
대상 플랫폼 Windows
헤더 directml.h
라이브러리 DirectML.lib
DLL DirectML.dll

추가 정보

DirectML의 바인딩

IDMLBindingTable