RADV 드라이버, 더 나은 명령어 캐시 프리페칭(Instruction Cache Prefetching)을 위해 RDNA3+ 하드웨어 기능 활용
요약
Mesa Radeon Vulkan 드라이버인 RADV가 RDNA3 및 RDNA4 GPU의 INST_PREF_SIZE 기능을 활용하여 명령어 캐시 프리페칭을 개선합니다. 이 패치는 셰이더 시작 성능을 향상시키기 위해 설계되었으며, 차기 Mesa 26.2 릴리스에 포함될 예정입니다.
핵심 포인트
- RDNA3/RDNA4의 INST_PREF_SIZE 기능 활용
- 셰이더 시작 성능(Shader Start Performance) 개선
- Mesa 26.2 릴리스에 포함 예정
- LSHS/NGG 구현의 기술적 복잡성 해결
RADV 드라이버, 더 나은 명령어 캐시 프리페칭(Instruction Cache Prefetching)을 위해 RDNA3+ 하드웨어 기능 활용

웨이브프런트(wavefront)가 실행을 시작하기 전에 프리페치(prefetch)할 명령어 바이트 수를 지정하는 INST_PREF_SIZE 기능이 있습니다. Mesa Radeon Vulkan 드라이버인 "RADV"는 이제 더 나은 명령어 캐시 프리페칭(instruction cache prefetching)을 위해 RDNA3/RDNA4 GPU에서 이 기능을 사용합니다.
Valve의 Linux 그래픽 팀 소속인 Georg Lehmann은 이 INST_PREF_SIZE 기능을 활용하여 RDNA3 및 최신 GPU에서 RADV의 성능을 향상시키는 패치를 작성했습니다. Georg은 풀 리퀘스트(pull request)에서 이것이 셰이더(shader) 시작 성능을 개선하는 데 도움이 될 것이라고 언급했지만, 머지 리퀘스트(merge request)나 이후의 패치 메시지에서 이를 수치화하여 설명하지는 않았습니다.
"INST_PREF_SIZE는 [Command Processor] DMA가 할 수 있는 것 이상으로 셰이더를 프리페치하기 위해 GFX11에 추가되었습니다. 이는 셰이더 시작 성능을 개선할 것입니다.
셰이더 오브젝트(shader objects), 버텍스 셰이더 프롤로그(vertex shader prologs), 그리고 레지스터(registers)에 프리페치 크기 이상의 정보가 포함되어 있기 때문에 LSHS/NGG에 대해 이를 작동하게 만드는 것은 다소 까다로운 작업입니다."
아마도 정확하게 구현하는 과정이 까다로웠기 때문에, 이 원래의 RDNA3 기능이 이제서야 이 오픈 소스 Radeon Vulkan Linux 드라이버에 구현되는 것으로 보입니다.
Valve Linux 팀의 Samuel Pitoiset과 최근 Valve에 합류한 Marek Olšák도 코드를 검토했습니다.
RDNA3 및 이후 모델에서 더 나은 명령어 캐시 프리페칭을 위한 이 머지(merge)는 다음 분기 Mesa 26.2 릴리스에 포함될 예정입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Phoronix의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기