Repolode
gpujs

gpujs/gpu.js

GPU.js преобразует простые функции JavaScript в шейдерный код, чтобы выполнять их на GPU в браузерах и Node.js, а при необходимости переключается на обычный JavaScript.

Звёзды
15,511
Форки
666
Открытые issues
68
Последний коммит
14 дней назад

Что это?

GPU.js — библиотека JavaScript для вычислений общего назначения на GPU (GPGPU) в браузере и Node.js. Вы пишете обычную функцию JavaScript, которая вычисляет один элемент выходного массива, а GPU.js преобразует её в шейдерный язык и компилирует для параллельного выполнения на GPU. Если GPU недоступен, та же функция выполняется на CPU с помощью обычного JavaScript.

В основе библиотеки лежат ядра, создаваемые с помощью gpu.createKernel(): размер выходных данных задаётся через setOutput(), а каждый поток получает свою позицию через this.thread.x, y и z. Поддерживаются WebGL, WebGL2, headless GL для Node, WebAssembly, WebGPU (опционально) и резервный режим на CPU. Ядра можно объединять с помощью combineKernels() или запускать в конвейере, чтобы промежуточные результаты оставались на устройстве.

GPU.js также поддерживает графический вывод на canvas, режим отладки с пошаговым выполнением кода ядра и точками останова, а также типы TypeScript. В версии 3 вызовы ядер будут возвращать Promises; асинхронный режим уже доступен.

Ключевые возможности

  • 01Автоматически преобразует обычные функции JavaScript в шейдерный код для GPU.
  • 02Если GPU недоступен, переключается на обычный JavaScript.
  • 03Работает в браузерах и Node.js с бэкендами WebGL, WebGL2, headless GL и WebGPU.
  • 04Объединяет ядра с помощью combineKernels() и конвейерной обработки, сокращая повторную передачу данных.
  • 05В графическом режиме выводит результаты на canvas.
  • 06Включает режим разработки для отладки ядер с точками останова и типы TypeScript.

Сценарии использования

  • Ускорение матричных операций и численных вычислений на веб-странице.
  • Обработка изображений и применение фильтров к пиксельным данным в браузере.
  • Прототипирование параллельных GPU-алгоритмов на JavaScript перед переносом на более низкоуровневый язык.
  • Ускорение вычислений с большими объёмами данных в сервисах Node.js при наличии GPU.

Быстрый старт

  1. 1

    Установите пакет из npm

    npm install gpu.js
  2. 2

    Создайте экземпляр GPU и kernel в Node.js

  3. 3

    Используйте сборку для браузера через тег script или CDN

Что важно знать

  • В следующей мажорной версии v3 все вызовы kernel будут возвращать Promise, из-за чего синхронный код, написанный сегодня, перестанет работать.
  • Синхронные вызовы kernel зависят от readback в WebGL, который блокирует главный поток.

Темы

Частые вопросы

Что такое gpu.js?
GPU.js преобразует простые функции JavaScript в шейдерный код, чтобы выполнять их на GPU в браузерах и Node.js, а при необходимости переключается на обычный JavaScript. GPU.js — библиотека JavaScript для вычислений общего назначения на GPU (GPGPU) в браузере и Node.js. Вы пишете обычную функцию JavaScript, которая вычисляет один элемент выходного массива, а GPU.js преобразует её в шейдерный язык и компилирует для параллельного выполнения на GPU. Если GPU недоступен, та же функция выполняется на CPU с помощью обычного JavaScript.
gpu.js можно использовать бесплатно? Какая у него лицензия?
gpu.js распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
gpu.js всё ещё поддерживается?
Активно поддерживается. Последний коммит в gpu.js — 5 окт. 2026 г..
Для чего можно использовать gpu.js?
Ускорение матричных операций и численных вычислений на веб-странице. Обработка изображений и применение фильтров к пиксельным данным в браузере. Прототипирование параллельных GPU-алгоритмов на JavaScript перед переносом на более низкоуровневый язык. Ускорение вычислений с большими объёмами данных в сервисах Node.js при наличии GPU.
Как установить gpu.js?
Установите пакет из npm: npm install gpu.js Создайте экземпляр GPU и kernel в Node.js Используйте сборку для браузера через тег script или CDN
Где скачать gpu.js?
Исходный код и инструкции по установке — на GitHub: https://github.com/gpujs/gpu.js

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты