Vercel AI публикува с отворен код vgpu: TypeScript WebGPU библиотека за шейдъри на AI агенти
Шейдърите все още са най-трудното нещо за внедряване от един обикновен уеб екип. WebGPU ви дава хардуера, а след това ви изправя пред адаптери, оформления на bind групи и дескриптори на конвейери, преди да се премести и един-единствен пиксел. Vercel пое тази цена вътрешно, изграждайки шейдърите за vercel.com, а сега публикува резултата като отворен код. vgpu е TypeScript библиотека, която третира файловете .wgsl като модули за импортиране, предоставя един Gpu контекст и изпълнява един и същ шейдър в canvas на браузър, в headless 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 във fullscreen ефект, чиито униформи се адресират чрез WGSL имената си посредством set(). Кадрите са изрично зададени: проходите, изчистванията и рисуванията са извиквания, а не имплицитно състояние на графа на сцената.
WGSL като модулна система
Отличителната черта са инструментите за шейдъри. Файловете .wgsl се импортират и експортират като TypeScript модули. vgpu разрешава графа на модулите, отразява свързванията, премахва неизползваните декларации и генерира компактен изходен код на шейдъра по време на компилация. Това премахва ръчно написаните декларации за свързвания, които обикновено се разминават с шейдъра. README посочва, че един завършен fullscreen ефект се доставя в размер 25 KB 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 компилира шейдъра, рендерира headless кадър и сравнява моментната снимка. Mock адаптерът е детерминистичен и съществува за тестове, които изобщо не трябва да използват 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 интерфейс работи в браузъра, в headless Node.js чрез Dawn и в детерминистичен mock.
- Файловете
.wgslсе импортират и експортират като TypeScript модули, с отражение за свързванията и оформленията. - Един завършен fullscreen ефект се доставя в размер 25 KB gzip-нат — бюджет, за който хранилището посочва, че се налага от CI.
- С MIT лиценз, в npm на версия v0.3.1, с CLI,
llms.txtи хостван MCP endpoint само за четене.
Разгледайте GitHub хранилището, документацията и примерите и npm пакета. Също така не се колебайте да ни последвате в Twitter и не забравяйте да се присъедините към нашия ML SubReddit с над 150 хил. членове и да се абонирате за нашия бюлетин. Чакайте! В Telegram ли сте? Сега можете да се присъедините към нас и в Telegram.
Преведено автоматично от английски. Оригиналната статия е на връзката по-долу.