OpenAI Codex가 거의 20년 된 Radeon Linux 드라이버 버그를 발견하고 수정하는 데 도움을 주다
RADEON
Linux 7.5에서 저를 놀라게 한 AMD 커널 그래픽 드라이버 패치 중 하나는 R6xx 시대 GPU의 Unified Video Decoding (UVD) IP 블록을 수정하기 위해 대기 중인 패치입니다... Radeon HD 2000/3000 시절의 거의 20년 된 그래픽 카드들입니다.
AMD는 오랫동안 R600 GPU에 대한 공식적인 지원을 유지해 오지 않았지만, 한 오픈소스 기여자가 비디오 디코딩 문제를 접한 후 AI를 이용해 이 작업을 맡았습니다. Ted Bullock은 더 많은 RV6** GPU의 UVD 처리 확인을 확장하는 패치와 함께 다음과 같이 설명했습니다:
"저는 오래된 iMac7,1 (RV610/M74, 장치 ID 1002:94c8)에서 비디오 손상(video corruption) 문제를 조사했습니다.
디코더가 GPU가 그리는 동안 시스템 메모리에서 압축된 비디오를 읽을 때, 비디오 프레임이 손상되었습니다. 입력을 VRAM으로 이동시키자 프레임이 올바르게 디코딩될 수 있었습니다. 그래픽 드로우(graphics draws)를 비활성화하는 것도 손상을 멈추게 했습니다.
저는 이 장치군에 UVD 버퍼를 VRAM에 유지하도록 하는 제안을 합니다. 왜냐하면 드라이버가 이미 다른 일부 칩들에 대해 그렇게 하고 있기 때문입니다. 이 패치는 RV610, RV620, RV630, RV635 및 RV670을 다룹니다. 이 칩들은 동일한 RV6xx 디코더 경로와 레거시 R600 펌웨어를 공유하므로, 저는 이들이 유사한 하드웨어 요구 사항을 가질 가능성이 높다고 생각합니다. 다른 하드웨어를 가진 사람은 이를 검증해야 합니다.
저는 Debian에서 이것을 테스트했습니다.
조사, 테스트 및 패치 작업에 도움을 받기 위해 Codex를 사용했습니다."
확실히도, 새로운 오픈소스 기여자가 제출한 이 패치는 승인되었으며 오늘 날짜의 pull request를 통해 Linux 7.5 커널로 향하고 있습니다.
오늘의 AMD pull request에는 특별히 눈에 띄거나 흥미롭지는 않지만 다양한 다른 수정 및 변경 사항들이 포함되어 있습니다:
"amdgpu:
amdkfd:
- SVM 수정 사항
- CRIU 수정 사항
- WPTR BO 회피(eviction) fence 처리 수정
- 트랩 핸들러 수정 사항
- dma-buf 처리 수정 사항
- CRAT 정리
- 비연속적 및 CPU 미사용 NUMA 토폴로지 지원 추가
- 프로파일러가 활성화된 경우 perfmon 클럭킹 처리
- 프로파일러 잠금(locking) 수정 사항
drm:
- SCDS로부터의 HDMI 2.2 FRL 속도 EDID 파싱 지원
radeon:
- ATRM 경계 검사(bounds checking)
- R6xx UVD 수정 사항
UAPI:
- perfmon 클럭킹 수정 사항을 명시하기 위해 KFD 프로파일러 버전 번호 업데이트
앞으로 몇 주 동안 Linux 7.5용 더 많은 AMD 커널 그래픽/컴퓨팅 드라이버 자료가 나올지 지켜볼 것입니다. 이번 주 풀 리퀘스트에는 새로운 AMD GFX13 (RDNA5) 패치가 포함되어 있지 않으므로, 아마도 다음 주에 될 것 같습니다.