Vercel AI відкриває вихідний код vgpu: бібліотека WebGPU на TypeScript для шейдерів ШІ-агентів
Шейдери й досі є найскладнішою частиною розгортання для звичайної вебкоманди. WebGPU надає доступ до апаратного забезпечення, а потім передає вам адаптери, макети груп прив’язки та дескриптори конвеєрів, перш ніж переміститься хоча б один піксель. Vercel самостійно понесла ці витрати, створюючи шейдери для vercel.com, і тепер відкрила результат у відкритому доступі. vgpu — це бібліотека TypeScript, яка розглядає файли .wgsl як модулі, доступні для імпорту, надає один контекст Gpu і запускає той самий шейдер у canvas браузера, у безголовому Node.js та в тесті знімка CI.
Чи придатна вона для розгортання?
Так, vgpu має ліцензію MIT і опублікована в npm, тож pnpm add vgpu — це весь процес встановлення. Це бібліотека, а не хостинговий сервіс, тому обліковий запис, квоти чи рахунки за інференс не потрібні.
Один контекст, без прихованого глобального стану
init() отримує адаптер і пристрій та повертає єдиний дескриптор Gpu. Усе інше доступне через нього. Приклад швидкого запуску браузера в README містить чотири рядки:
const gpu = await init();
const surface = gpu.surface(canvas, { dpr: [1, 2] });
const wave = gpu.effect(WAVE_WGSL, { set: { speed: 2 } });
gpu.frame.loop(() => { wave.set({ time: gpu.time }); wave.draw(); });surface обгортає canvas і обмежує співвідношення пікселів пристрою значеннями від 1 до 2. effect компілює WGSL у повноекранний ефект, чиї uniforms адресуються за їхніми іменами WGSL через set(). Кадри є явними: проходи, очищення та промальовування виконуються викликами, а не неявним станом графа сцени.
WGSL як система модулів
Відмінність полягає в інструментах для роботи із шейдерами. Файли .wgsl імпортують і експортують дані так само, як модулі TypeScript. vgpu розв’язує граф модулів, аналізує прив’язки, видаляє невикористовувані оголошення та генерує компактний код шейдерів під час збирання. Це усуває написані вручну оголошення прив’язок, які зазвичай розсинхронізуються із шейдером. У README зазначено, що повноекранний ефект займає 25 КБ у стисненому вигляді gzip, а дотримання цього бюджету контролюється в CI.
Три середовища виконання, один API
Пакет надає експорти підшляхів для vgpu, vgpu/node, vgpu/mock, vgpu/scene, vgpu/client і vgpu/core. Шлях Node працює на основі Dawn і виконує рендеринг поза екраном:
const target = gpu.target({ size: [256, 256], format: "rgba8unorm" });
const pixels = await target.read();Саме це робить рендеринг у CI практичним. pixelmatch і pngjs є прямими залежностями опублікованого пакета, що відповідає задокументованому процесу, у якому CI компілює шейдер, рендерить безголовий кадр і порівнює знімок. Імітаційний адаптер є детермінованим і призначений для тестів, які взагалі не повинні взаємодіяти з GPU.
Поверхня для агентів
Vercel називає це бібліотекою, орієнтованою насамперед на агентів, і структура пакета це підтверджує. Пакет містить бінарний файл vgpu, тож npx vgpu docs, npx vgpu examples і npx vgpu check працюють без глобального встановлення. vgpu.sh публікує agents.md, llms.txt і повний експорт документації, а також API для пошуку прикладів без токенів з описом OpenAPI 3.1. Хостинговий MCP-сервер лише для читання доступний за адресою vgpu.sh/api/mcp, а @modelcontextprotocol/server є прямою залежністю. У репозиторії також є навичка агента, яку можна встановити.
Порівняння
Основні висновки
- Vercel відкрила
vgpu— бібліотеку WebGPU, яку вона створила для розгортання шейдерів на vercel.com. - Єдина поверхня API працює в браузері, у безголовому Node.js через Dawn і в детермінованому імітаційному середовищі.
- Файли
.wgslімпортують і експортують дані так само, як модулі TypeScript, із підтримкою аналізу прив’язок і макетів. - Повноекранний ефект займає 25 КБ у стисненому вигляді gzip — бюджет, дотримання якого, за словами репозиторію, контролює CI.
- Ліцензія MIT, пакет доступний у npm у версії v0.3.1, а також містить CLI,
llms.txtі хостингову кінцеву точку MCP лише для читання.
Перегляньте репозиторій на GitHub, документацію та приклади і пакет npm. Також не соромтеся стежити за нами у Twitter і не забудьте приєднатися до нашого субреддіту про машинне навчання з понад 150 тисячами учасників та підписатися на нашу розсилку. Стривайте! Ви є в Telegram? тепер ви також можете приєднатися до нас у Telegram.
Перекладено автоматично з англійської. Оригінал статті — за посиланням нижче.