M4 맥에서 한 달 만에 완성한 Linux GPU 드라이버
원제 Building a Linux GPU Driver for the M4 Mac Mini in One Month
104 포인트댓글 55
Key Point
GPU 드라이버는 현대 시스템의 필수 요소인데, 보통 수 년 걸리는 개발이 1개월로 단축된 기술적 성과와 그 과정에서 발견된 M4/A18의 복잡한 펌웨어 구조가 향후 오픈소스 GPU 드라이버 생태계에 미칠 영향을 보여준다.
핵심 요약
- Cody Ho와 Niklas가 M4 Mac Mini와 MacBook Neo용 OpenGL ES 3.0 완전 호환 GPU 드라이버를 약 1개월 만에 개발했다.
- 보통 수 년이 걸리는 GPU 드라이버 개발을 주 단위로 단축했으며, Chrome과 Firefox에서 WebGL이 작동하고 Minecraft는 200fps로 실행된다.
- 개발팀은 하이퍼바이저를 이용해 Apple GPU(AGX)의 복잡한 펌웨어 ABI와 사용자 영역 컴포넌트를 역공학했고, 모든 작업을 투명하고 검증 가능한 클린룸 방식으로 진행했다.
- 커널 영역에서는 GPU 펌웨어가 실행하는 RTKit RTOS와 통신하는 커널 드라이버를 구현했고, A18 Pro의 펌웨어 ABI는 M1/M2보다 1.5배 많은 구조체와 2배 많은 포인터를 포함해 더 복잡했다.
- 사용자 영역에서는 커스텀 IR/셰이더 컴파일러와 커맨드 스트림 빌더를 포함한 완전히 작동하는 드라이버를 구현했으며, Apple 바이너리는 보지 않고 하이퍼바이저 트레이스와 자체 빌드 셰이더만 사용했다.
- 드라이버는 아직 최종 사용자용으로 완성되지 않았지만, 개발팀은 가능한 빨리 공개할 계획이다.