TL;DR

  • 2026년 여름 몇 주 동안 오픈소스 라이브러리 6개의 성능이 크게 향상됐으며, 핵심 요인은 새로운 아이디어를 시도하는 비용이 낮아진 데 있음
  • roaring, ada, fast_float, simdjson, simdutf, CRoaring이 각각 데이터 구조·URL·수·JSON·유니코드·비트맵 처리에서 최대 5.9배의 속도 향상을 기록함
  • ada는 10만 개 URL 코퍼스에서 처리량이 0.54GB/s에서 1.28GB/s로 증가해 약 2.4배 빨라짐
  • simdjsonC++26 정적 리플렉션(static reflection) 기반 구조체 직렬화에서 데이터셋에 따라 1.6~2.1배의 성능 향상을 기록함
  • AI 활용 여부를 개별 커밋마다 확인할 수는 없지만, 수백만 명이 사용하는 라이브러리가 실제로 더 빨라졌다는 점이 이번 최적화의 구체적 효과임

성능 변화 측정 방식

  • 여러 오픈소스 라이브러리를 유지 관리하며, ada는 Node.js에서 URL을 파싱하고, fast_float은 GCC 표준 라이브러리와 Chromium에서 수를 파싱하며, simdjson은 Node.js에서 JSON을 파싱하고, simdutf는 Node.js에서 유니코드를 검증·트랜스코딩하며, Roaring 비트맵 라이브러리는 여러 데이터베이스 엔진 내부에 포함됨
  • 해당 라이브러리들은 수년간 여러 사람이 최적화해 온 성숙한 프로젝트이며, 오랫동안 성능이 정체된 상태였음
  • 남은 성능 향상은 각각 며칠의 신중한 작업을 요구했기 때문에, 작업에 필요한 시간을 확보하기 어려웠음
  • 2026년에는 6개 라이브러리의 성능이 크게 향상됐고, 대부분의 변화가 여름 몇 주 동안 집중됨
  • 변화를 정량화하기 위해 각 라이브러리의 모든 커밋을 처음부터 다시 빌드하고, Intel Xeon Gold 6548N 한 대에서 벤치마크함
  • 성능 향상 수치는 2024년 8월을 기준으로 추적했으며, 1.0은 향상 없음, 2.0은 성능 2배를 뜻함
  • 성능은 커밋 시점에만 변하므로 그래프의 선은 계단 형태임
  • 각 사례에서 AI가 얼마나 활용됐는지는 확인할 수 없으며, 코드가 만들어진 과정이 아니라 결과의 품질만을 기준으로 삼음
  • 개인적으로는 Claude(Opus 5), Grok, DeepSeek(V4 Pro)와 함께 코딩하며, Grok은 코딩에 일찍 도입했고 시간이 지나면서 크게 향상됐다고 평가함

1. `roaring` — 압축 비트맵, Go

  • roaring은 Roaring 인덱스 데이터 구조를 Go로 구현한 라이브러리임
  • 배열로 디코딩하는 작업이 2.5배 빨라짐
  • 한 데이터셋에서 다중 집합 합집합 연산인 FastOr3.1배 빨라짐
  • 다중 값 반복자(many-value iterator)가 4.5~5.9배 빨라짐
  • 교집합 카디널리티가 10% 향상됨
  • 기여자 중 하나는 실제로 AI인 perfloop
  • perfloop의 자문 역할을 맡고 있다는 이해관계 공개가 포함됨
  • 많은 작업을 직접 수행했으며, Claude 사용을 밝힌 Philipp Klose의 도움도 받음

2. `ada` — URL 파싱

  • ada는 표준을 준수하는 URL 파서임
  • 2024년 8월부터 2026년 7월까지 약 550개 커밋이 반영됐지만, 10만 개 URL 코퍼스에서 처리량은 0.54GB/s에 머묾
  • 이후 6주 만에 처리량이 1.28GB/s로 증가해 2.4배 빨라졌으며, 코어 하나에서 초당 약 1,500만 개 URL을 처리하는 수준임
  • 최적화 대부분은 오랜 공동 작업자인 Yagiz Nizipli가 수행함
  • Yagiz Nizipli는 SpaceX에서 근무하며 Cursor를 사용하고, 아마도 Grok 모델과 함께 사용하는 것으로 언급됨
  • Abdul Rawoof Khan과 Dillon Mulroy도 각각 최적화 하나씩 기여함
  • IP 주소 파싱 최적화도 진행했지만 해당 벤치마크에는 반영되지 않음

3. `fast_float` — 수 파싱

  • fast_float은 텍스트에서 부동소수점 수를 파싱하는 라이브러리이며 GCC와 대부분의 브라우저에 포함됨
  • 15개월 동안 성능이 정체됐음
  • 2026년 3월부터 7월까지 canada.txt 파일의 긴 좌표에서 43%, mesh.txt 파일의 짧은 좌표에서 70% 성능이 향상됨
  • 최적화 기여자는 Koleman Nix와 Filipe Oliveira임

4. `simdjson` — C++26 리플렉션 기반 JSON 직렬화·역직렬화

  • simdjson은 최근 C++26 정적 리플렉션을 지원하기 시작했으며, 접착 코드 없이 자체 구조체를 직접 직렬화하고 파싱할 수 있음
  • 2026년 2월 이후 직렬화 성능이 twitter.json에서 1.6배, citm_catalog.json에서 2.1배 향상됨
  • JSON을 구조체로 직접 변환하는 역직렬화 성능은 상대적으로 modest한 수준인 10%14% 향상됨
  • 리플렉션 코드는 2026년 초부터만 존재함
  • citm_catalog.json 직렬화에서 바이트당 명령어 수가 6.1개에서 3.1개로 감소했으며, 이는 처리량 증가 비율과 거의 정확히 일치함
  • Microsoft의 Francisco Geiman Thiesen이 직렬화 측 작업 대부분을 수행했고, 파싱 개선은 주로 직접 지원함
  • Francisco Geiman Thiesen은 Claude를 사용함

5. `simdutf` — 유니코드 검증·트랜스코딩

  • simdutf는 UTF-8, UTF-16, UTF-32를 검증하고 트랜스코딩하며, Base64를 인코딩하고 디코딩하는 라이브러리임
  • ASCII 검증 처리량이 83GB/s에서 160GB/s로 증가함
  • UTF-16 검증 처리량이 62GB/s에서 102GB/s로 증가함
  • Base64 디코딩 성능이 17% 향상됨
  • 작업은 Yagiz Nizipli와 함께 수행함
  • Gaspard Petit과 Shreesh Adiga가 진행한 다른 뛰어난 최적화도 있었지만, 해당 벤치마크에는 나타나지 않음

6. `CRoaring` — 압축 비트맵, C

  • CRoaring은 Roaring 비트맵을 C로 구현한 라이브러리임
  • 저장소의 실제 데이터셋에서 멤버십 테스트인 contains2.4배 빨라짐
  • 64비트 비트맵의 카디널리티 계산이 4.9배 빨라짐
  • 64비트 비트맵 반복 순회가 1.9배 빨라짐
  • 밀집 비트맵을 배열로 디코딩하는 작업이 2.2배 빨라짐
  • 합집합 연산은 상대적으로 modest한 수준인 13~16% 향상됨
  • 기여자는 Andrei Gudkov과 함께 작업함

무슨 일이 일어났는가

  • 사용된 기술 자체는 모두 잘 알려진 방식임
  • 그럼에도 최적화가 갑자기 늘어난 이유는 새로운 아이디어를 시도하는 비용이 낮아졌기 때문이라는 관점임
  • 소프트웨어에서 AI의 위험성에 관한 논의가 많지만, 인간은 한쪽에만 걸린 내기 오류(one-sided bet fallacy)에 취약해 단점을 볼 때 이점을 무시하는 경향이 있음
  • 자동차가 사람을 죽이기도 하지만 구급차는 사람을 구하는 것과 같은 대비임
  • 이번 사례에서 이점은 구체적임
  • 수백만 명이 해당 라이브러리를 실행하며, 이번 여름에 그 라이브러리들이 더 빨라짐

https://lemire.me/blog/2026/09/22/a-summer-of-ai-optimization/

Daniel Lemire, “A summer of AI optimization,” Daniel Lemire's blog, 2026년 9월 22일

https://lemire.me/blog/2026/09/22/a-summer-of-ai-optimization/"> [BibTeX]