WebGPU 기반 차트 라이브러리 ChartGPU, 100만 데이터 포인트 시각화!
WebGPU를 활용하여 100만 개 데이터 포인트를 60fps로 렌더링하는 차트 라이브러리 ChartGPU가 출시됨
LTTB 다운샘플링(Downsampling), GPU 가속화된 히트 테스팅(Hit-testing), 인스턴스 드로우(Instanced Draws) 등 GPU를 활용한 최적화 기술 적용
uPlot의 오프스크린 캔버스(OffscreenCanvas) 기반 워커 스레드(Worker Thread) 지원 및 데이터 처리 성능 개선에 대한 기대
브라우저 호환성(Browser Compatibility) 문제와 M1 Mac에서의 스크롤(Scroll) 문제 등 사용자 경험 개선에 대한 피드백 존재
WebGPU를 활용한 고성능 차트 렌더링
ChartGPU는 WebGPU를 사용하여 CPU 병목 현상을 해결하고, 대량의 데이터를 부드럽게 시각화한다. 특히, LTTB 다운샘플링(Downsampling)을 compute shader로 처리하고, GPU 가속화된 히트 테스팅(Hit-testing)을 통해 툴팁(Tooltip) 및 호버(Hover) 기능을 구현했다. 이러한 아키텍처는 100만 개 데이터 포인트를 60fps로 렌더링하는 성능을 가능하게 하며, 사용자 경험을 향상시킨다.
uPlot과의 비교 및 워커 스레드 지원에 대한 기대
댓글에서는 기존 차트 라이브러리인 uPlot의 성능을 높이 평가하며, ChartGPU가 오프스크린 캔버스(OffscreenCanvas)를 활용한 워커 스레드(Worker Thread) 지원을 통해 데이터 처리 성능을 더욱 향상시킬 수 있을지에 대한 기대를 나타냈다. 특히, 대량의 데이터 처리 시 데이터 멍잉(Data Munging) 작업의 부하를 줄이는 것이 중요하며, 이는 ChartGPU의 잠재적인 강점으로 평가된다.
브라우저 호환성 및 사용자 경험 개선에 대한 피드백
일부 사용자는 브라우저 호환성(Browser Compatibility) 문제와 M1 Mac 환경에서의 스크롤(Scroll) 문제 등 사용자 경험 개선에 대한 피드백을 제공했다. 특히, 파이어폭스(Firefox)에서의 WebGPU 지원 부재와 스크롤 속도 문제에 대한 지적이 있었다. 이러한 피드백은 ChartGPU의 사용자 인터페이스(UI) 및 호환성(Compatibility) 개선의 필요성을 보여준다.
상용화 가능성 및 라이선스
ChartGPU는 MIT 라이선스로 배포되어 상용 프로젝트에서도 자유롭게 사용할 수 있다. 댓글에서는 three.js와 같은 잠재력을 언급하며, ChartGPU의 상용화(Commercialization) 가능성에 대한 긍정적인 평가가 있었다. 또한, ChartGPU의 명명(Naming) 센스에 대한 칭찬도 있었다.