수정하지 않은 리눅스 amdgpu 드라이버를 아이패드에서 돌리기

Running the unmodified Linux amdgpu driver on an iPad

github.com/Geramy ▲ 90 댓글 19 joshcsimmons

요약

리눅스 AMD GPU 드라이버를 고치지 않고 아이패드 앱에 넣어 외장 GPU로 LLM을 돌렸습니다.

LemonSeed Studio는 아이패드용 코드 편집기 겸 IDE입니다. Thunderbolt로 연결한 외장 케이스 속 AMD GPU에서 로컬 LLM을 돌리려고, 리눅스 amdgpu 드라이버를 PCIDriverKit 확장(사용자 공간에서 도는 애플의 드라이버 형식)으로 앱에 넣었습니다.

왜 중요한가

  • 애플 기기에는 AMD GPU 드라이버가 없는데, 새로 짜지 않고 리눅스 드라이버를 그대로 옮겨 쓰는 길을 보여 줍니다.
  • 커널을 건드릴 수 없는 아이패드에서도 앱에 담긴 드라이버로 외장 GPU를 부릴 수 있다는 사례입니다.

핵심 내용

  • 드라이버 부분인 mac_linuxgpu(본래 맥용)는 amdgpu 등 리눅스 소스 파일 468개를 고치지 않고 컴파일합니다.
  • 이 소스가 기대하는 커널 기능은 linuxu라는 사용자 공간 구현이 대신 제공합니다.
  • Radeon AI PRO R9700에서 Qwen3.8-27B(4비트)를 돌리자 아이패드는 초당 31.2토큰을 생성해 맥(32.2토큰)과 비슷했습니다.
  • 작은 모델이 토큰을 미리 제안하는 추측 디코딩(DFlash2)을 켜면 아이패드에서 초당 158.5토큰까지 나왔습니다.
  • 아직 알파 단계라 검증된 GPU는 하나뿐이고, 화면 출력 없이 계산에만 씁니다.

HN 반응

  • 드라이버를 왜 IDE에 묶었냐는 의문에는, DriverKit 드라이버는 원래 앱 확장으로 앱 안에 넣어 배포하는 방식이라는 설명이 달렸습니다.
  • 외장 GPU 케이스는 들고 다니기 어려우니 리눅스 미니 PC에 꽂으면 된다는 반론에는, 해낸 것 자체가 가치이고 DriverKit의 가능성을 보여 준다는 반박이 이어졌습니다.

댓글

19개 표시 · 전체 19개
  1. skavi HN

    이 드라이버가 왜 IDE랑 엮여 있는 거예요? 둘 중 하나가 다른 쪽의 정신 나간 자전거 창고(bikeshed) 같은 건가요?

  2. haunter HN

    DriverKit은 원래 이렇게 쓰라고 만든 겁니다.

    https://developer.apple.com/documentation/driverkit

    DriverKit으로 만든 드라이버는 커널 확장이 아니라 사용자 공간에서 실행되므로 시스템 안정성과 보안이 향상됩니다. 드라이버를 앱 확장으로 만들어 기존 앱 안에 담아 배포하면 됩니다.

  3. Karliss HN

    애플이 아이패드에서 커스텀 GPU 드라이버를 제대로 구현할 수 있게 커널 API를 열어 주는 것도 아니잖아요.

    그러면 앱에 내장하는 사용자 공간 드라이버가 사실상 유일한 선택지가 됩니다. 저는 애플이 이 정도로 낮은 수준의 썬더볼트 접근을 허용한다는 것 자체가 좀 놀랍습니다. 데스크톱이라면 사용자 공간 드라이버를 공유 라이브러리로 만들어 여러 앱이 같이 쓰게 할 수 있겠지만, iOS에서는 그것도 현실적인 방법이 아니고요.

    이런 방식이 드문 것도 아닙니다. 틈새 하드웨어 제품 중에는 비슷하게 하는 것이 많습니다. 범용 데이터 전송 장치(시리얼 포트 같은 것)용 드라이버나 인터페이스를 구현하거나, HID나 블루투스 인터페이스 안의 벤더 전용 슬롯을 써서 그 위에 자체 프로토콜을 얹는 식이죠. 설정하려면 전용 앱이 필요한 블루투스 기기는 거의 다 그렇고, 스마트워치도 많이 그렇고, RGB 조명 설정에 전용 앱이 필요한 게이밍 키보드와 마우스(대개 HID 기반)도 그렇습니다. MCU 프로그래머나 다른 본격적인 전자 개발 도구도 USB 시리얼 포트로 잡히는 경우가 많고요.

  4. bsaul HN

    누가 이 프로젝트가 뭔지 설명해 주실 수 있나요? 뭘 하는 건지 하나도 모르겠어요... 아이패드에 AMD GPU가 들어 있나요??

  5. haunter HN

    [이 소프트웨어] + 아이패드 <- 썬더볼트 케이블 -> 외장 인클로저 안의 GPU

  6. p0w3n3d HN

    AMD GPU를 외장 케이스("인클로저")에 넣고 USB-C나 썬더볼트로 연결하면, 앱이 그걸 쓰는 겁니다. 물론 추론용이고요.

  7. bsaul HN

    그런데 아이패드에 드라이버를 어떻게 설치하는 거죠? 드라이버는 시스템 수준 권한으로 실행되어야 하는 것 아닌가요? (iPadOS는 절대 그런 권한을 주지 않을 텐데요.)

  8. haunter HN

    DriverKit입니다.

    업스트림 리눅스 amdgpu 드라이버를 DriverKit으로 내장

    https://developer.apple.com/documentation/driverkit

    DriverKit으로 만든 드라이버는 커널 확장이 아니라 사용자 공간에서 실행되므로 시스템 안정성과 보안이 향상됩니다. 드라이버를 앱 확장으로 만들어 기존 앱 안에 담아 배포하면 됩니다.

  9. terhechte HN

    "IDE" 스크린샷이 왜 하나도 없죠? 어떻게 생겼고 어떤 기능이 있는지 보고 싶은데요.

  10. mkesper HN

    온디바이스 추론을 이렇게 해석할 줄은 몰랐네요.

        It drives an AMD GPU in a Thunderbolt enclosure.
    

    그래도 아이패드에서 리눅스 드라이버를 돌릴 수 있다니 흥미롭습니다.

  11. tensegrist HN

    기기 옆 추론(beside-device inference)이네요.

  12. solyin HN

    구성한 모습 사진 있으신가요? 어떤 인클로저를 쓰셨나요? 멋지네요!

  13. kuschkufan HN
  14. boilerupnc HN
  15. tgma HN

    아이패드에서 그 위에 진짜 데스크톱 환경을 바로 렌더링하면 재미있겠네요. M4의 성능을 가진 OpenDarwin 비슷한 게 나올 겁니다.

  16. sneak HN

    정말 멋지긴 한데, 그래서 왜 하는 걸까요?

    eGPU 인클로저는 휴대할 수 있는 게 아니라서, 그럴 거면 그냥 리눅스 미니 PC에 꽂으면 되잖아요. 여기서 아이패드를 쓰면 뭐가 좋은 거죠?

  17. gessha HN

    해커가 부품 열 개를 이어 붙여서 삐리빅 소리를 내게 만들었다고 해서 그 이유까지 설명해야 하나요?

  18. mat_epice HN

    이 질문에는 여러 가지로 답할 수 있습니다. 제 첫 번째 답은, 이건 당장 어디에 쓸 수 있어야만 가치가 있는 게 아닌 진전이라는 겁니다. 불가능하다고 생각했던 일의 목록에 이걸 추가하고, 거기서 영감을 얻으세요.

    두 번째 답은, 가방에 넣을 수 있다는 점에서 휴대할 수 있다는 겁니다. 이미 아이패드를 들고 다니는데 리눅스 미니 PC까지 가방에 넣고 싶을까요?

    세 번째 답은, 이게 DriverKit으로 할 수 있는 터무니없는 사용자 공간 작업을 보여 주는 좋은 사례라는 겁니다. 이걸 계기로 누군가는 더 휴대하기 쉬운 다른 하드웨어로 멋진 일을 해 볼 수도 있고, 예를 들어 맥 미니에서 DriverKit으로 리눅스 드라이버를 쓸 수도 있겠죠.

  19. edg5000 HN

    노트북보다 터치스크린 입력을 선호하는 사람들이 이동 중에 에이전트 작업이나 음성 합성, 이미지 생성, 음악 작업, 고급 맞춤법 검사 같은 걸 하고 싶을 수도 있잖아요?

Hacker News에서 보기 ↗