Maxwell, 실행 중인 코드를 하드웨어와 데이터에 맞춰 고치는 코드 실행 모델 공개
- Maxwell은 프로그램이 실행되는 동안 하드웨어와 데이터를 보고 바이너리를 다시 쓰며, 모든 개선은 원본 코드와 동등함이 형식적으로 증명됨
- RTX 4090에서 Whisper-small로 180건을 전사하자 106.23초가 49.82초로 줄었고, CPU에서 NetworkX 중심성 계산은 61.44초에서 17.50초로 줄어듦
- LTX-2.5의 4K 영상 생성은 B200 두 장 기준 250초에서 134초로 줄어 1.87배 빨라짐
- SOL-ExecBench Blackwell 커널 90%에서 NVIDIA PyTorch 기준선을 능가하고, cuGraph 대체 구현은 평균 3.6배 빠름
- 충분한 런타임 데이터가 쌓이면 프로그램을 멈추지 않고 해당 기계에 맞춘 증명된 최적화 코드로 교체됨
Hacker News opinions
검증은 결정론적이라서 최적화는 넓게 잡고 비결정적으로 가도 된다는 얘기임. sort면 데이터 분포 보고 quicksort 쓸지 insertion sort 쓸지 실시간으로 고르는데, 증명된 것만 쓰니까 괜찮다는 거지.
홈페이지 설명이 부족한 건 맞음. 내가 이해한 건 Python 형식화 + 실행 중인 프로그램에 붙어서 superoptimization으로 후보 찾고, 형식 규칙으로 검증해서 핫스왑하는 구조임. 둘 다 따로 전문성이 필요한 파트라 조합 자체가 어려움.
생각 못 한 아이디어라는 말엔 동의 안 함. 분기 예측에 LLM 넣는 것도 나왔었고, 검증 보존 변환으로 JIT 짜는 건 컴파일러 쪽 사람들이 이미 떠올렸을 거임.
모델 돌리는 연산이 아끼는 연산보다 많으면 결국 손해 아님? 그 계산이 제일 궁금함.
프로파일링 결과로 개선하는 건 좋은 아이디어인데 홈페이지 마케팅 냄새가 강함. 모델이랑 검증 하네스를 섞어서 '환각 안 함'처럼 말하는 건 억지임. 그리고 자기 실행을 보고 자기를 고치는 게 아니면 self-improving이라고 부르기 애매함.
Gentoo처럼 하드웨어 맞춰서 한 번 컴파일하면 되지 않나? 모델을 계속 돌리는 건 성능 이득을 깎아먹을 것 같음.
Gentoo 방식으로는 이만큼 가속이 안 나온다고 봄.
기술 설명이 너무 없음. Python 형식화를 어떻게 했는지, 어떤 증명 프레임워크 쓰는지, 같은 코드를 여러 번 돌릴 때 최적화를 어떻게 재현하는지 알고 싶음. 디버깅 가시성도 중요한데 소스 코드 수준으로 안 올라오는 게 아쉬움.
회사 쪽 답변 보면 형식화 자세한 건 곧 나온다고 하고, 디버깅 흐름은 CPython Tier 2 JIT처럼 건드리지 않게 설계했다고 함. 다시 쓴 바이너리 부분은 원본 소스랑 연결이 없는 경우가 많아서 소스 수준 노출은 어렵다고 함.
최적화를 사용자끼리 캐시로 재사용한다고 함. 많이 쓸수록 모두에게 빨라지는 구조라는데, 사실이면 꽤 흥미로움.
블로그 글은 사람이 직접 썼다고 글쓴이가 반박함. AI 보조 썼다는 말은 한 적 없다고 함.
이게 tracing JIT 계열인지 궁금함. 위키 링크 보면 감은 오는데 정확히 어떤 건지 모르겠음.
솔직히 Claude한테 프로그램이랑 프로파일러 던져주고 시키면 되는 거 아님? 이게 그거보다 뭐가 나은지 아직 잘 모르겠음.