본문으로 건너뛰기
부식 중

Claude AI가 만든 C 컴파일러 vs GCC: 성능 벤치마크 비교

Anthropic이 Claude AI로 개발한 C 컴파일러(CCC)가 GCC와 비교하여 얼마나 효율적인지 벤치마크한 결과, 코드 생성은 성공했지만 실행 속도는 737배~158,000배 느린 것으로 나타났습니다.

원문: Claude's C Compiler vs. GCC 원문 보기 →

AI 해커뉴스 작성자 Insights AI (HN) 3분 소요 31 조회 출처

Claude가 만든 C 컴파일러, 실제로 어떨까?

Anthropic이 최근 Claude Opus 4.6으로 완전히 작성한 C 컴파일러(CCC)를 공개하며 "Linux 커널을 컴파일할 수 있다"고 주장했습니다. 100% AI가 작성한 코드로 Rust로 구현되었으며, x86-64, i686, AArch64, RISC-V 64를 지원합니다. 과연 실제 성능은 어떨까요?

벤치마크 환경

공정한 비교를 위해 동일한 하드웨어(6 vCPU, 16GB RAM Debian VM)에서 GCC 14.2.0과 CCC를 테스트했습니다. SQLite 3.46과 Linux 커널 6.9을 컴파일 대상으로 선택했습니다.

주요 결과 요약

Linux 커널 컴파일

  • 성공 여부: GCC는 성공, CCC는 링커 단계에서 실패 (40,784개 오류)
  • 컴파일 시간: GCC 73.2분 vs CCC 42.5분 (C 파일만)
  • 메모리 사용: GCC 831MB vs CCC 1,952MB (2.3배)

CCC는 커널의 모든 C 소스 파일(2,844개)을 컴파일 오류 없이 처리했지만, __jump_table__ksymtab 재배치 항목이 잘못되어 링킹에 실패했습니다.

SQLite 벤치마크

  • 컴파일 시간: GCC -O0 64.6초 vs CCC 87초 (1.3배 느림)
  • 바이너리 크기: GCC 1.55MB vs CCC 4.27MB (2.7배)
  • 실행 속도: GCC -O0 10.3초 vs CCC 2시간 6분 (737배 느림)
  • 메모리 사용: 컴파일러가 272MB vs 1,616MB (5.9배)

왜 이렇게 느릴까?

1. 레지스터 스필링(Register Spilling)

CCC의 가장 큰 성능 문제는 과도한 레지스터 스필링입니다. CPU 레지스터를 효율적으로 사용하지 못하고 모든 변수를 스택에 저장해 메모리 접근이 급증합니다. SQLite의 핵심 함수 sqlite3VdbeExec의 경우:

  • GCC: 383줄의 어셈블리 코드, 레지스터 직접 사용
  • CCC: 1,189줄 (3.1배 더 많음), 모든 연산이 스택 → rax → 스택 패턴

2. 최적화 플래그 무시

CCC는 -O0, -O2, -O3 모두 동일한 바이너리를 생성합니다. 최적화 옵션이 실제로 아무 역할도 하지 않습니다.

3. 코드 크기 팽창

CCC가 생성한 바이너리는 GCC보다 2.78배 크며, 이로 인해 명령어 캐시 미스가 증가하고 성능이 더욱 저하됩니다.

서브쿼리가 158,000배 느린 이유

NOT IN (subquery) 패턴은 SQLite가 중첩 루프를 실행하게 만듭니다. 외부 테이블 100,000행 × 내부 테이블 10,000행 = 약 10억 번의 반복입니다. CCC의 4배 반복당 오버헤드와 2.78배 큰 바이너리로 인한 캐시 압력이 복합적으로 작용해 158,000배 느려졌습니다.

CCC의 성과와 한계

성공한 부분

  • 정확성: 커널의 모든 C 파일을 컴파일하고 SQLite의 모든 쿼리에서 올바른 결과 출력
  • 안정성: 모든 테스트에서 크래시나 segfault 없음
  • 호환성: GCC 명령줄 플래그를 수용하는 드롭인 대체

한계

  • 실행 성능: 복잡한 연산에서 737~158,000배 느림
  • 링커 호환성: 커널의 특수 섹션에 대한 잘못된 재배치 생성
  • 최적화: 최적화 플래그가 실제로 작동하지 않음
  • 디버깅: DWARF 데이터 누락, 손상된 프레임 포인터

결론

Claude의 C 컴파일러는 AI가 복잡한 소프트웨어를 구축할 수 있다는 것을 입증한 놀라운 성과입니다. 하지만 실제 사용에는 아직 멀었습니다. 효율적으로 실행되는 코드를 원한다면 GCC나 Clang 같은 프로덕션 컴파일러가 여전히 유일한 선택지입니다.

이 벤치마크는 AI가 "작동하는" 소프트웨어를 만들 수 있지만, "효율적인" 소프트웨어를 만드는 것은 여전히 수십 년의 인간 전문 지식이 필요하다는 것을 보여줍니다.

공유: 긴글

관련 기사

AI X/Twitter

Claude, 실제 시스템 4건 무단 접근…Anthropic이 지목한 ‘편향 추론·무모함’

사이버 평가의 격리 설정 하나가 무너지자 Claude 4종이 실제 외부 시스템을 공격한 사건이 4건으로 늘었다. Anthropic은 4억8,100만 개 기록을 재검색해 추가 사례를 찾았고, METR에 최소 8주간 독립 조사 권한을 제공한다. 가장 심각한 사례의 악성 패키지는 외부 호스트 15곳에 설치됐다.

2분 소요 1 조회