gpujs/gpu.js
GPU.js는 간단한 JavaScript 함수를 GPU 셰이더 코드로 변환해 브라우저와 Node.js에서 GPU로 실행하고, GPU가 없으면 일반 JavaScript로 대체 실행합니다.
- 스타
- 15,511
- 포크
- 666
- 열린 이슈
- 68
- 마지막 커밋
- 14일 전
어떤 프로젝트인가요?
GPU.js는 브라우저와 Node.js에서 GPU를 범용 연산에 활용하는(GPGPU) JavaScript 라이브러리입니다. 출력 배열의 원소 하나를 계산하는 일반 JavaScript 함수를 작성하면 GPU.js가 이를 셰이더 언어로 변환하고 컴파일해 GPU에서 병렬 실행합니다. GPU를 사용할 수 없으면 같은 함수를 일반 JavaScript로 실행합니다.
이 라이브러리는 gpu.createKernel()로 커널을 만들고, setOutput()으로 출력 크기를 지정하며, 각 스레드에서 this.thread.x, y, z를 통해 위치를 읽는 구조로 되어 있습니다. 지원 백엔드에는 WebGL, WebGL2, Node용 headless GL, WebAssembly, WebGPU(선택 활성화), CPU 대체 실행이 포함됩니다. combineKernels()로 커널을 연결하거나 파이프라인을 사용해 중간 결과를 디바이스에 유지할 수 있습니다.
GPU.js는 캔버스 그래픽 출력, 중단점을 설정해 커널 코드를 단계별로 살펴볼 수 있는 디버그 모드, TypeScript 타입 정의도 지원합니다. v3에서는 커널 호출이 Promise를 반환하는 방향으로 개발 중이며, 비동기 모드는 이미 사용할 수 있습니다.
핵심 기능
- 01일반 JavaScript 함수를 GPU 셰이더 코드로 자동 변환합니다.
- 02GPU를 사용할 수 없으면 일반 JavaScript로 대체 실행합니다.
- 03WebGL, WebGL2, headless GL, WebGPU 백엔드로 브라우저와 Node.js에서 실행할 수 있습니다.
- 04combineKernels()와 파이프라이닝으로 커널을 연결해 반복적인 데이터 전송을 줄입니다.
- 05그래픽 모드에서 결과를 캔버스에 렌더링합니다.
- 06중단점 디버깅을 위한 개발 모드와 TypeScript 타입 정의를 제공합니다.
활용 사례
- 웹 페이지에서 행렬 연산이나 수치 계산을 가속합니다.
- 브라우저에서 픽셀 데이터를 처리하거나 필터를 적용합니다.
- 저수준 코드로 옮기기 전에 JavaScript로 GPU 병렬 알고리즘을 프로토타이핑합니다.
- GPU를 사용할 수 있는 Node.js 서비스에서 데이터 집약적인 계산을 빠르게 처리합니다.
빠른 시작
- 1
npm에서 패키지를 설치합니다
npm install gpu.js - 2
GPU 인스턴스와 Node.js에서 커널을 생성합니다
- 3
script 태그 또는 CDN을 통해 브라우저 빌드를 사용합니다
사용 전 알아둘 점
- 다음 메이저 버전인 v3에서는 모든 커널 호출이 Promise를 반환하게 되어, 현재 작성된 동기 코드가 작동하지 않게 됩니다.
- 동기 커널 호출은 메인 스레드를 차단하는 WebGL readback에 의존합니다.
토픽
자주 묻는 질문
- gpu.js은(는) 무엇인가요?
- GPU.js는 간단한 JavaScript 함수를 GPU 셰이더 코드로 변환해 브라우저와 Node.js에서 GPU로 실행하고, GPU가 없으면 일반 JavaScript로 대체 실행합니다. GPU.js는 브라우저와 Node.js에서 GPU를 범용 연산에 활용하는(GPGPU) JavaScript 라이브러리입니다. 출력 배열의 원소 하나를 계산하는 일반 JavaScript 함수를 작성하면 GPU.js가 이를 셰이더 언어로 변환하고 컴파일해 GPU에서 병렬 실행합니다. GPU를 사용할 수 없으면 같은 함수를 일반 JavaScript로 실행합니다.
- gpu.js은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- gpu.js은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- gpu.js은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. gpu.js의 마지막 커밋은 2026년 10월 5일입니다.
- gpu.js은(는) 어디에 사용할 수 있나요?
- 웹 페이지에서 행렬 연산이나 수치 계산을 가속합니다. 브라우저에서 픽셀 데이터를 처리하거나 필터를 적용합니다. 저수준 코드로 옮기기 전에 JavaScript로 GPU 병렬 알고리즘을 프로토타이핑합니다. GPU를 사용할 수 있는 Node.js 서비스에서 데이터 집약적인 계산을 빠르게 처리합니다.
- gpu.js는 어떻게 설치하나요?
- npm에서 패키지를 설치합니다: npm install gpu.js GPU 인스턴스와 Node.js에서 커널을 생성합니다 script 태그 또는 CDN을 통해 브라우저 빌드를 사용합니다
- gpu.js은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/gpujs/gpu.js
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
시뮬레이션을 일시 정지해도 조정할 수 있는 실시간 슬라이더로 게임 스타일 스킬샷 이펙트를 튜닝하는 Three.js 및 GLSL 샌드박스입니다.
일반 JavaScript의 제어 흐름을 손으로 작성한 가중치의 미분 가능한 행렬 곱셈 네트워크로 컴파일하는 연구 프로젝트입니다.
Node.js와 Chromium 기반으로 JavaScript, HTML, CSS를 사용해 크로스 플랫폼 데스크톱 앱을 만드는 프레임워크입니다.
런타임, 번들러, 테스트 러너, 패키지 관리자를 단일 실행 파일에 담은 빠른 올인원 JavaScript 및 TypeScript 툴킷입니다.
로그인 없이 이용할 수 있는 Three.js/WebGL UI 컴포넌트 카탈로그로, 라이브 렌더러와 전체 React 소스를 제공합니다.