Repolode
gpujs

gpujs/gpu.js

GPU.js transpila funciones sencillas de JavaScript a código de shaders para ejecutarlas en la GPU en navegadores y Node.js, con fallback a JavaScript normal.

Estrellas
15,511
Forks
666
Issues abiertos
68
Último commit
hace 14 días

¿Qué es?

GPU.js es una biblioteca de JavaScript para computación de propósito general en GPU (GPGPU), tanto en el navegador como en Node.js. Se escribe una función de JavaScript normal que calcula un elemento de un array de salida y GPU.js la transpila a un lenguaje de shaders y la compila para ejecutarla en paralelo en la GPU. Si no hay una GPU disponible, la misma función se ejecuta en JavaScript normal.

La biblioteca se basa en kernels creados con gpu.createKernel(), cuyo tamaño de salida se configura con setOutput(); cada thread obtiene su posición mediante this.thread.x, y y z. Los backends compatibles incluyen WebGL, WebGL2, headless GL para Node, WebAssembly, WebGPU (opcional) y un fallback a CPU. Los kernels se pueden encadenar con combineKernels() o mediante pipelining para mantener los resultados intermedios en el dispositivo.

GPU.js también admite generar gráficos en un canvas, un modo de depuración para recorrer el código del kernel paso a paso con breakpoints y tipos de TypeScript. En su versión 3, las llamadas a kernels devolverán Promises; ya hay disponible un modo asíncrono.

Funciones clave

  • 01Transpila automáticamente funciones de JavaScript normales a código de shaders para GPU.
  • 02Usa JavaScript normal como fallback cuando no hay una GPU disponible.
  • 03Se ejecuta en navegadores y Node.js con los backends WebGL, WebGL2, headless GL y WebGPU.
  • 04Encadena kernels con combineKernels() y pipelining para evitar transferencias repetidas de datos.
  • 05Representa los resultados en un canvas en modo gráfico.
  • 06Incluye un modo de desarrollo para depurar kernels con breakpoints y tipos de TypeScript.

Casos de uso

  • Acelerar operaciones con matrices o cálculos numéricos en una página web.
  • Procesar imágenes o aplicar filtros a datos de píxeles en el navegador.
  • Crear prototipos de algoritmos paralelos para GPU en JavaScript antes de migrarlos a código de más bajo nivel.
  • Acelerar cálculos con gran volumen de datos en servicios de Node.js cuando hay una GPU disponible.

Inicio rápido

  1. 1

    Instala el paquete desde npm

    npm install gpu.js
  2. 2

    Crea una instancia de GPU y un kernel en Node.js

  3. 3

    Usa la compilación para navegador mediante una etiqueta script o un CDN

Antes de usarlo

  • La próxima versión principal, v3, hará que todas las llamadas al kernel devuelvan una Promise, lo que romperá el código síncrono escrito actualmente.
  • Las llamadas síncronas al kernel dependen de la lectura de datos de WebGL (readback), que bloquea el hilo principal.

Temas

Preguntas frecuentes

¿Qué es gpu.js?
GPU.js transpila funciones sencillas de JavaScript a código de shaders para ejecutarlas en la GPU en navegadores y Node.js, con fallback a JavaScript normal. GPU.js es una biblioteca de JavaScript para computación de propósito general en GPU (GPGPU), tanto en el navegador como en Node.js. Se escribe una función de JavaScript normal que calcula un elemento de un array de salida y GPU.js la transpila a un lenguaje de shaders y la compila para ejecutarla en paralelo en la GPU. Si no hay una GPU disponible, la misma función se ejecuta en JavaScript normal.
¿gpu.js es gratuito? ¿Qué licencia tiene?
gpu.js es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿gpu.js sigue mantenido?
Mantenimiento activo. El último commit de gpu.js fue el 5 oct 2026.
¿Para qué puedo usar gpu.js?
Acelerar operaciones con matrices o cálculos numéricos en una página web. Procesar imágenes o aplicar filtros a datos de píxeles en el navegador. Crear prototipos de algoritmos paralelos para GPU en JavaScript antes de migrarlos a código de más bajo nivel. Acelerar cálculos con gran volumen de datos en servicios de Node.js cuando hay una GPU disponible.
¿Cómo se instala gpu.js?
Instala el paquete desde npm: npm install gpu.js Crea una instancia de GPU y un kernel en Node.js Usa la compilación para navegador mediante una etiqueta script o un CDN
¿Dónde consigo gpu.js?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/gpujs/gpu.js

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados