기타 Lobsters · 2026-09-20

웹 브라우저 넘파이 행렬 연산 속도 30배 빨라짐 ㄷㄷ

핵심 요약
  • 웹어셈블리 배포판인 엠스크립튼 포지(Emscripten-forge)의 넘파이 패키지가 OpenBLAS와 성공적으로 연동되었습니다.
  • 1024차원 정방행렬 곱셈 테스트에서 float32 기준 약 30.92배, float64 기준 약 14.90배의 연산 속도 향상을 기록했습니다.
  • 포트란 웹어셈블리 컴파일러(Flang) 및 전용 패치를 거쳐 동적 링크 방식으로 구축되어 향후 브라우저 기반 과학 계산 전반의 성능 개선이 기대됩니다.
요약 그동안 웹 브라우저 환경에서 넘파이(NumPy)를 실행할 때는 가속화된 BLAS(기초 선형대수 서브프로그램) 라이브러리가 연동되지 않아, 행렬 곱셈 연산 시 캐시 최적화나 SIMD 병렬 연산의 이점을 전혀 살리지 못하고 단순 C 반복문으로 처리되는 한계가 있었습니다. 이로 인해 브라우저 기반 데이터 과학 및 수치 계산 환경에서는 심각한 성능 병목이 발생해 왔습니다. 이러한 문제를 해결하기 위해 웹어셈블리(WebAssembly)용 소프트웨어 배포판인 엠스크립튼 포지(Emscripten-forge) 팀이 대대적인 툴체인 정비에 나섰습니다. 과학 계산 패키지의 핵심인 LAPACK 등은 포트란(Fortran)으로 작성되어 있어 웹어셈블리로 컴파일하려면 전용 컴파일러가 필수적이었는데, 개발진은 LLVM의 포트란 프론트엔드인 Flang을 웹어셈블리에 맞게 패치하고 엠스크립튼 환경에 최적화된 OpenBLAS 레시피를 구축했습니다. 마침내 기본 넘파이 패키지에 WASM SIMD를 지원하는 OpenBLAS 0.3.34가 연동되면서 혁신적인 속도 향상이 입증되었습니다. 1024차원 정방행렬 곱셈(np.matmul) 테스트 결과, 기존 BLAS 미적용 환경 대비 32비트 부동소수점(float32) 연산은 약 30.92배, 64비트 부동소수점(float64) 연산은 약 14.90배 빨라진 것으로 나타났습니다. 이번 업데이트는 동적 링크 구조를 채택해 넘파이를 재빌드하지 않고도 OpenBLAS를 업그레이드할 수 있어, 향후 브라우저 기반 파이썬 데이터 생태계 전반의 성능이 크게 개선될 전망입니다.
Sponsored · 광고