Repolode
gpujs

gpujs/gpu.js

GPU.js transpila funções JavaScript simples em código de shader para executá-las na GPU em navegadores e no Node.js, com fallback para JavaScript puro.

Estrelas
15,511
Forks
666
Issues abertas
68
Último commit
há 14 dias

O que é?

GPU.js é uma biblioteca JavaScript para computação de propósito geral em GPUs (GPGPU), tanto no navegador quanto no Node.js. Você escreve uma função JavaScript comum que calcula um elemento de um array de saída, e o GPU.js a transpila para uma linguagem de shader e compila para execução paralela na GPU. Se não houver uma GPU disponível, a mesma função é executada em JavaScript convencional.

A biblioteca usa kernels criados com gpu.createKernel(), cujo tamanho de saída é definido com setOutput() e em que cada thread acessa sua posição por meio de this.thread.x, y e z. Os backends compatíveis incluem WebGL, WebGL2, headless GL para Node, WebAssembly, WebGPU (opcional) e um fallback para CPU. Os kernels podem ser encadeados com combineKernels() ou executados em pipeline para manter resultados intermediários no dispositivo.

GPU.js também oferece saída gráfica em um canvas, um modo de depuração para percorrer o código do kernel com breakpoints e definições de tipos para TypeScript. Na direção da v3, as chamadas de kernel passam a retornar Promises; um modo assíncrono já está disponível.

Recursos principais

  • 01Transpila automaticamente funções JavaScript comuns em código de shader para GPU.
  • 02Usa JavaScript convencional como fallback quando não há uma GPU disponível.
  • 03Executa em navegadores e no Node.js, com backends WebGL, WebGL2, headless GL e WebGPU.
  • 04Encadeia kernels com combineKernels() e processamento em pipeline para evitar transferências repetidas de dados.
  • 05Renderiza resultados em um canvas no modo gráfico.
  • 06Inclui um modo de desenvolvimento para depurar kernels com breakpoints e definições de tipos para TypeScript.

Casos de uso

  • Acelerar operações com matrizes ou cálculos numéricos em uma página web.
  • Executar processamento de imagens ou filtros em dados de pixels no navegador.
  • Prototipar algoritmos paralelos para GPU em JavaScript antes de portá-los para código de nível mais baixo.
  • Acelerar cálculos com uso intensivo de dados em serviços Node.js quando há uma GPU disponível.

Início rápido

  1. 1

    Instale o pacote pelo npm

    npm install gpu.js
  2. 2

    Crie uma instância de GPU e um kernel no Node.js

  3. 3

    Use a build para navegador por meio de uma tag script ou de um CDN

Antes de usar

  • A próxima versão principal, v3, fará com que todas as chamadas de kernel retornem uma Promise, quebrando o código síncrono escrito atualmente.
  • As chamadas síncronas de kernel dependem do readback do WebGL, que bloqueia a thread principal.

Tópicos

Perguntas frequentes

O que é gpu.js?
GPU.js transpila funções JavaScript simples em código de shader para executá-las na GPU em navegadores e no Node.js, com fallback para JavaScript puro. GPU.js é uma biblioteca JavaScript para computação de propósito geral em GPUs (GPGPU), tanto no navegador quanto no Node.js. Você escreve uma função JavaScript comum que calcula um elemento de um array de saída, e o GPU.js a transpila para uma linguagem de shader e compila para execução paralela na GPU. Se não houver uma GPU disponível, a mesma função é executada em JavaScript convencional.
gpu.js é gratuito? Qual é a licença?
gpu.js é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
gpu.js ainda é mantido?
Manutenção ativa. O último commit de gpu.js foi em 5 de out. de 2026.
Para que posso usar gpu.js?
Acelerar operações com matrizes ou cálculos numéricos em uma página web. Executar processamento de imagens ou filtros em dados de pixels no navegador. Prototipar algoritmos paralelos para GPU em JavaScript antes de portá-los para código de nível mais baixo. Acelerar cálculos com uso intensivo de dados em serviços Node.js quando há uma GPU disponível.
Como instalar gpu.js?
Instale o pacote pelo npm: npm install gpu.js Crie uma instância de GPU e um kernel no Node.js Use a build para navegador por meio de uma tag script ou de um CDN
Onde consigo gpu.js?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/gpujs/gpu.js

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados