Microsoft는 속도가 느린 HDD에서도 새로운 DirectStorage 1.2로 성능을 향상시킵니다.
Microsoft는 최신 버전의 DirectStorage API를 출시했습니다. 새 버전인 1.2는 몇 가지 새로운 기능과 버그 수정을 제공합니다. 일부 변경 사항 덕분에 매장의 성능도 향상되었습니다.
Microsoft는 DirectStorage 1.2에서 버퍼링된 IO 모드를 제공합니다. 이 회사는 솔리드 스테이트 드라이브(SSD)와 하드 디스크 드라이브(HDD) 모두에서 동일한 코드 경로를 사용하려는 개발자에 대한 응답이라고 말합니다. HDD는 검색 시간이 훨씬 더 길기 때문에 버퍼링된 IO 모드에서 작동합니다. 회사는 다음과 같이 씁니다.
DirectStorage는 현재 버퍼링되지 않은 모드에서 파일을 엽니다. 이를 통해 불필요한 복사를 피하고 가능한 한 빨리 데이터를 GPU로 가져올 수 있습니다. 그러나 고속 SSD와 레거시 하드 드라이브 모두에서 동일한 코드를 사용할 수 있기를 바라는 일부 개발자의 의견을 들었습니다. 레거시 하드 드라이브에는 긴 검색 시간을 숨기기 위해 버퍼링된 IO가 필요합니다. 이러한 이유로 버퍼링 모드에서 파일을 열도록 DirectStorage를 구성하는 기능을 추가했습니다.
버퍼링된 IO 외에도 GPU 또는 대체 CPU 경로인지 여부에 관계없이 사용된 압축 해제 경로를 쿼리하는 기능을 추가하는 새로운 GetCompressionSupport API가 도입되었습니다. DirectStorage 1.2의 전체 변경 로그는 다음과 같습니다.
새로운 기능
- OS 파일 캐싱 동작의 이점을 얻을 수 있는 HDD에서 사용할 버퍼링된 파일 IO 활성화에 대한 지원을 추가합니다.
- IDStorageQueue2::GetCompressionSupport API를 추가하여 지원되는 GPU 압축 해제 형식을 압축 해제할 때 DirectStorage 런타임이 취할 경로를 나타냅니다.
- MIT 라이선스가 적용되도록 dstorage.h 및 dstorageerr.h를 업데이트합니다.
- Microsoft.Direct3D.DirectStorage.winmd 를 추가하여 API에 대한 비 C++ 바인딩 생성을 용이하게 합니다.
버그 수정
- DSTORAGE_REQUEST_OPTIONS에 “Reserved1” 필드를 추가합니다. 이렇게 하면 구조의 메모리 내 레이아웃이 더 명확해 지지만 실제로 이전 버전의 레이아웃이 변경되지는 않습니다.
- 3D 텍스처에 대한 DSTORAGE_REQUEST_DESTINATION_TEXTURE_REGION을 수정합니다.
- 압축되지 않은 데이터를 메모리에서 버퍼로 전송할 때 나타나는 일정 문제 수정
성능 개선
- GPU 압축 해제 후 사본을 더 빠른 GPU의 컴퓨팅 대기열로 이동합니다.
여기에서 공식 블로그 게시물에서 자세한 내용을 확인할 수 있습니다 .
답글 남기기