Microsoft Shader Model 6.10의 새로운 DX12 기능 및 신경망 렌더링을 위한 AgilitySDK 720 미리보기

Microsoft Shader Model 6.10의 새로운 DX12 기능 및 신경망 렌더링을 위한 AgilitySDK 720 미리보기

마이크로소프트는 개발자를 위한 새로운 기능을 통해 DX12 API의 기능을 크게 확장하는 Shader Model 6.10 및 AgilitySDK 1.720 의 미리 보기 버전을 발표했습니다.

Shader Model 6.10 및 AgilitySDK 1.720의 향상된 기능

이번 최신 업데이트는 AgilitySDK 버전 1.619에 포함되었던 Shader Model 6.9 및 DXR 1.2 개선 사항을 기반으로 합니다. AgilitySDK 1.720 프리뷰에서는 DX12 API를 향상시키는 몇 가지 새로운 기능을 선보이며, 자세한 내용은 다음과 같습니다.

  • 셰이더 모델 6.10 (DXC 1.10.2605.2를 통해):
    • 선형대수 API(linalg::Matrix)
    • 그룹파 지수
    • 변수 그룹 공유 메모리
    • 레이트레이싱 내부 속성:
      • 삼각형 객체 위치
      • 클러스터ID

선형대수 API(linalg::Matrix) 소개

Shader Model 6.10은 LinAlg 프레임워크 내에 포괄적인 행렬 API 제품군을 제공합니다.이 통합을 통해 개발자는 셰이더 스레드에서 직접 신경망 렌더링 기법을 효율적으로 구현하여 실시간 그래픽 파이프라인 성능을 향상시킬 수 있습니다.또한, 단일 API 프레임워크 내에서 머신 러닝 및 이미지 처리 애플리케이션을 위한 고대역폭 행렬 곱셈(MMA) 연산을 지원합니다.

실시간 렌더링을 위한 신경 모델

그룹 웨이브 인덱스: 셰이더 성능 향상

Shader Model 6.10에 새로운 내장 함수인 GetGroupWaveIndex()와 GetGroupWaveCount()가 추가되었습니다.이 함수들을 통해 컴퓨트, 메시, 증폭, 노드 등 다양한 유형의 셰이더에서 스레드 그룹 내 웨이브 수준의 구조를 파악할 수 있습니다. GetGroupWaveIndex()는 현재 웨이브의 인덱스를 제공하고, GetGroupWaveCount()는 그룹 내에서 실행 중인 웨이브의 총 개수를 보여줍니다.이 기능은 웨이브 간의 작업 전문화와 협업을 촉진하며, 기존의 WaveGetLaneCount()와 같이 하드웨어 안정성이 떨어지는 구식 방법을 대체할 수 있습니다.

가변 그룹 공유 메모리: 새로운 가능성

셰이더 모델 6.10의 또 다른 주요 업그레이드는 그룹 공유 메모리에 대한 기존 32KB(메시 셰이더의 경우 28KB) 제한이 해제된 것입니다.새로운 런타임 쿼리인 MaxGroupSharedMemoryPerGroup을 통해 실제 하드웨어 제한을 노출함으로써, 셰이더 개발자는 이제 사용자 지정 속성을 활용하여 셰이더에 필요한 메모리 크기를 지정할 수 있습니다.이러한 변화를 통해 기존 코드가 레거시 제한과의 호환성을 유지하면서 최신 GPU 기능을 활용할 수 있게 되었습니다.결과적으로 개발자는 이제 이전 사양에 구애받지 않고 대규모 타일 컬링 및 복잡한 행렬 워크로드와 같은 고급 알고리즘을 구현할 수 있습니다.

D3D12 기능 살펴보기

일괄 처리되는 비동기 명령 목록 API

D3D12 배치 명령 도입으로 기존 명령(예: CopyBufferRegion`get` ClearUnorderedAccessViewFloat/Uint, `get`, ` ResolveSubresourceget`)에서 발생했던 직렬화 문제가 해결되었습니다.기존 명령들은 순차적으로 실행되면서 GPU 스톨 현상을 일으켜 독립적인 작업들이 지연되는 문제를 야기했습니다.새로운 배치 비동기 명령 기능을 통해 개발자는 암묵적인 직렬화를 제거하는 고급 명령 목록 방식을 활용하여 하드웨어에서 독립적인 작업들을 중첩 처리할 수 있게 되었습니다.이제 개발자는 필요한 경우에만 향상된 배리어를 사용하여 명시적으로 동기화함으로써 동시 작업 부하에서 효율성을 극대화할 수 있습니다.

NVIDIA, AMD, Intel을 포함한 모든 주요 하드웨어 제조업체들이 이제 이러한 미리 보기 버전을 지원하고 있습니다.

하드웨어 공급업체 드라이버 링크
AMD AMD 소프트웨어: AgilitySDK 개발자 미리보기 버전 25.30.41.02
인텔 Intel Arc Graphics – Windows
엔비디 개발 중인 드라이버에 접근하려면 개발자 담당자에게 문의하십시오.

하드웨어 지원 측면에서 NVIDIA는 RTX GPU 라인업 전체에 걸쳐 광범위한 기능을 지원하는 반면, AMD와 Intel은 Arc B 시리즈 및 RDNA 4(Radeon RX 9000)를 포함한 최신 제품에 특정 기능을 제한적으로 제공합니다.구체적으로, Group Wave Index는 AMD의 RX 7000 및 RX 9000 GPU에서 지원되는 반면, NVIDIA는 향후 릴리스에서 이를 구현할 계획입니다. Intel의 향후 업데이트에도 새로운 선형 대수 API 지원이 포함될 예정입니다.

AMD 인텔 엔비디
linAlg::행렬 AMD Radeon RX 9000 시리즈 제품에서 지원됩니다. 곧 출시될 예정입니다. 모든 RTX 하드웨어에서 지원됩니다.
그룹파 지수 AMD Radeon RX 7000 및 9000 시리즈 제품에서 지원됩니다. Intel Arc B-Series 그래픽에서 지원됩니다. 곧 출시될 예정입니다.
변수 그룹 공유 메모리 현재는 기본 메모리 제한을 지원하며, 향후 드라이버 릴리스에서 더 높은 제한이 지원될 예정입니다. Intel Arc B-Series 그래픽에서 지원됩니다. 모든 RTX 하드웨어에서 지원되며, 값은 기기에 따라 다를 수 있습니다.
레이트레이싱 내부 매개변수: 삼각형 객체 위치/클러스터 ID AMD Radeon RX 7000 및 9000 시리즈 제품에서 지원됩니다. Intel Arc B-Series 그래픽에서 지원됩니다. 모든 RTX 하드웨어에서 지원됩니다.
일괄 처리되는 비동기 명령 목록 API AMD Radeon RX 7000 및 9000 시리즈 제품에서 지원됩니다. Intel Arc B-Series 그래픽에서 지원됩니다. 모든 RTX 하드웨어에서 지원됩니다.

이번 발표와 관련된 추가 정보 및 이미지는 원본 출처( 출처 및 이미지) 에서 확인하실 수 있습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다