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.
chenglou/handwired
Projeto de pesquisa que compila o fluxo de controle de JavaScript comum em uma rede diferenciável de multiplicações de matrizes, com pesos definidos manualmente.
- Estrelas
- 1,773
- Forks
- 146
- Issues abertas
- 9
- Último commit
- há 3 dias
O que é?
Handwired converte programas comuns em JavaScript que contêm condicionais if-else, loops e estado em uma rede neural construída apenas com multiplicação de matrizes e ReLU sobre números de ponto flutuante. As condicionais são reescritas como operações aritméticas; por exemplo, calculando os dois ramos e selecionando um deles com um indicador derivado de ReLU, de modo que a rede resultante reproduza exatamente a saída do programa original.
Como os pesos são definidos manualmente, em vez de aprendidos, não é necessário treinar a rede, e o programa inteiro continua diferenciável. A computação combinada pode ser executada em JavaScript puro ou no WebGPU, permitindo aplicar técnicas de otimização de GPU já existentes a essas operações primitivas mínimas.
O projeto explora usos como liberar os pesos para treinamento, conectar um programa congelado a uma rede neural genérica para treinamento de ponta a ponta e executar código JavaScript no estilo de thread única com paralelismo no nível da GPU. As demos incluem uma busca em JSON por 100 mil documentos. O repositório está configurado para usar Bun, e as demos também estão disponíveis online.
Recursos principais
- 01Converte condicionais if-else, loops e estado em multiplicação de matrizes e ReLU
- 02Dispensa treinamento, pois os pesos são definidos manualmente
- 03Mantém o programa inteiro diferenciável
- 04Executa em JavaScript puro ou no WebGPU
- 05Inclui demos interativas e um exemplo de busca em JSON por 100 mil documentos
Casos de uso
- Estudar como programas podem ser representados como redes neurais
- Experimentar o treinamento de lógica de programas congelada dentro de uma rede neural
- Explorar a execução de código JavaScript comum com paralelismo de GPU
Início rápido
- 1
Clone o repositório
git clone - 2
Instale as dependências
bun install - 3
Execute as demonstrações localmente
bun start
Antes de usar
- É um projeto de pesquisa voltado a demonstrar um conceito, não uma biblioteca para produção.
- A execução das demonstrações requer o runtime Bun, que não é indicado como opcional.
Tópicos
Perguntas frequentes
- O que é handwired?
- Projeto de pesquisa que compila o fluxo de controle de JavaScript comum em uma rede diferenciável de multiplicações de matrizes, com pesos definidos manualmente. Handwired converte programas comuns em JavaScript que contêm condicionais if-else, loops e estado em uma rede neural construída apenas com multiplicação de matrizes e ReLU sobre números de ponto flutuante. As condicionais são reescritas como operações aritméticas; por exemplo, calculando os dois ramos e selecionando um deles com um indicador derivado de ReLU, de modo que a rede resultante reproduza exatamente a saída do programa original.
- handwired é gratuito? Qual é a licença?
- handwired é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- handwired ainda é mantido?
- Manutenção ativa. O último commit de handwired foi em 17 de out. de 2026.
- Para que posso usar handwired?
- Estudar como programas podem ser representados como redes neurais Experimentar o treinamento de lógica de programas congelada dentro de uma rede neural Explorar a execução de código JavaScript comum com paralelismo de GPU
- Como instalar handwired?
- Clone o repositório: git clone Instale as dependências: bun install Execute as demonstrações localmente: bun start
- Onde consigo handwired?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/chenglou/handwired
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Removedor de fundo open source que funciona inteiramente no navegador com WebGPU ou WebAssembly, sem enviar imagens.
Um toolkit rápido e completo para JavaScript e TypeScript: runtime, bundler, test runner e gerenciador de pacotes em um único executável.
Framework open source para criar apps nativos universais com React, compatíveis com Android, iOS e web.
Um bundler extremamente rápido para JavaScript, TypeScript, JSX e CSS, com CLI e APIs para JavaScript e Go.
Uma biblioteca JavaScript de alto desempenho para criar mapas interativos na web com tiles, dados vetoriais e marcadores de qualquer fonte.