허깅페이스, 브라우저용 WebGPU 커널 207종 오픈소스 공개
최근 30일 조회수 — 좋아요 —핵심 요약
허깅페이스가 브라우저에서 AI 모델을 실행하는 WebGPU 커널 207종과 로더, 벤치마킹 도구 Fleet을 공개했다.
허깅페이스가 브라우저에서 로컬로 AI 모델을 돌릴 때 쓰는 WebGPU 커널 207종을 오픈소스로 공개했다. 회사는 이날 블로그를 통해 커널을 내려받아 실행하는 자바스크립트 로더 @huggingface/kernels와 함께, huggingface.co/webgpu-kernels에서 커널 모음을 공개했다고 밝혔다. 라이선스는 Apache-2.0이다.1
브라우저에서 모델을 돌린다는 것은 결국 행렬곱, 정규화, 합성곱, 어텐션 연산, 양자화, 데이터 레이아웃 변환 같은 GPU 연산을 순서대로 실행한다는 뜻이다. WebGPU는 이런 연산을 주요 브라우저에서 공통으로 쓸 수 있게 해주는 API이고, WGSL은 그 연산을 실행하는 셰이더를 작성하는 언어다. 문제는 이 API가 이식성을 보장해도 성능까지 보장하지는 않는다는 데 있다. 같은 연산을 구현한 두 셰이더가 같은 결과를 내더라도, 워크그룹 크기나 메모리 접근 패턴, 벡터화 방식, 데이터 타입, 연산 융합 전략에 따라 속도가 크게 달라질 수 있고, 최적의 선택지는 입력 형태와 기기, 브라우저, 지원되는 WebGPU 기능에 따라서도 바뀐다. 허깅페이스는 이 지점을 브라우저 추론 성능의 근본 병목으로 짚었다. 상위 계층의 추론 런타임이 아무리 잘 짜여 있어도, 결국 그 아래에서 호출하는 개별 연산의 효율을 넘어설 수는 없기 때문이다.
이번 공개에서 눈에 띄는 부분은 커널 하나하나가 단순한 셰이더 코드가 아니라 독립된 저장소로 관리된다는 점이다. 각 커널은 webgpu-kernels 조직 아래 자체 저장소와 카드 문서를 갖는다. 예로 든 ai.onnx.Add는 잔차 연결이나 편향 더하기 등에 쓰이는 원소별 덧셈 연산인데, 카드에는 입력 두 개와 브로드캐스트된 출력 형태, 지원 데이터 타입, 기기·형태별 구현 변형이 정리돼 있다. 저장소 내부에는 연산의 입출력·속성·타입 제약을 정의하는 manifest.json, 커널 식별자와 다이제스트·출처 정보를 담은 metadata.json, 구현이 기대한 대로 동작하는지 검증하는 test.json, 성능을 측정하는 bench.json이 함께 들어 있다. 즉 커널마다 명세와 정답 케이스, 성능 측정 기준이 한 세트로 묶여 버전 관리되는 구조다.
공개와 함께 시작한 것이 브라우저 기반 GPU 벤치마킹 도구 Fleet이다. Fleet은 사용자의 브라우저에서 커널을 실제로 실행해 자신의 기기에서 성능 점수를 보여주는 한편, 사용자 동의를 전제로 그 실행 결과를 허깅페이스에 전송한다. 회사는 이렇게 모은 데이터가 자체 테스트 랩에서는 확보하기 어려운 다양한 실제 기기의 정확도·성능 증거가 되고, 이를 통해 특정 기기에서만 발생하는 오류나 비정상적으로 느린 경우를 찾아내 커널 변형을 개선하는 데 쓰인다고 설명했다.
허깅페이스는 이번 공개를 “그 노력의 첫 번째 계층”이라고 표현했는데, 이는 커널 위에 올라갈 상위 런타임이나 도구가 뒤이어 나올 수 있음을 시사하는 대목이다. 다만 현재 공개된 내용은 커널 라이브러리와 벤치마킹 도구에 한정되며, 상위 계층에 대한 구체적 일정은 이번 발표에서 언급되지 않았다.
Footnotes
-
Hugging Face Blog, “Introducing @huggingface/kernels: 200+ WebGPU Kernels for Local AI” ↩
읽기 목록은 이 브라우저에 저장됩니다.
출처
- Introducing @huggingface/kernels: 200+ WebGPU Kernels for Local AI — Hugging Face Blog
이 글은 위 출처를 근거로 자동 생성된 뒤 발행됐습니다. 원문을 함께 확인해 주세요. 교차 보도 없이 단독 출처로 작성됐습니다.