고급 파라미터 제어 및 성능 최적화

WebGPU WGSL 컴퓨트 파이프라인, 메모리 버퍼 풀링 및 샘플러 제어 (AMEVA-Forge)

Release: v1.0.1 PyPI Version WebGPU Engine License
핵심 가치 제안 (Why It Matters)

브라우저 샌드박스의 물리적 GPU VRAM과 메모리 한계를 우회하고, 60fps 논블로킹 UI를 유지하며 초고속 토큰 생성을 달성하는 WebGPU 튜닝 명세입니다.

1. WebGPU 런타임 및 메모리 버퍼 제어 파라미터

파라미터명 권장 설정 범위 물리적 시스템 거동 및 하드웨어 트레이드오프 상세 분석
devicePreference "high-performance" | "low-power" navigator.gpu.requestAdapter 호출 시 디스크리트 GPU(dGPU) 우선 할당 또는 모바일 내장 절전 GPU 선택.
workgroupSize [64, 1, 1] ~ [256, 1, 1] WGSL 셰이더 1D 워크그룹 크기. Adreno/Mali 모바일 환경은 64 또는 128이 레지스터 유출 없이 최적의 점유율(Occupancy)을 달성합니다.
kvCacheBudgetMb 128 ~ 1024 MB 어텐션 KV 캐시 VRAM 버퍼 할당 상한선. 초과 시 선입선출(FIFO) 슬라이딩 윈도우로 축소하여 브라우저 OOM을 선제 방어합니다.
cacheStorage "opfs" | "cache-api" | "none" 모델 가중치 브라우저 영속 캐시 엔진. "opfs"(Origin Private File System) 선택 시 최대 I/O 처리량과 무손실 2회차 즉각 로드를 제공합니다.
yieldIntervalMs 8 ~ 32 ms (기본값: 16 ms) 토큰 생성 루프 중 브라우저 메인 렌더링 이벤트 루프(requestAnimationFrame)에 제어권을 양보하는 주기. 60fps 부드러운 UI를 보장합니다.
directDma true | false 32비트 WASM 메모리(2GB 제한)를 완전히 우회하여 GGUF 버퍼를 WebGPU 버퍼로 직접 복사(GPUBufferUpload)하는 락 우회 모드.

2. 소프트맥스 샘플러 및 텍스트 생성 파라미터

파라미터명 기본값 / 범위 알고리즘 및 생성 제어 특성
temperature 0.7 (0.0 ~ 2.0) 0.0: 완전한 결정론적 ArgMax 탐욕 샘플링. 0.7: 자연어 균형. 1.0+: 높은 창의성과 어휘 다양성.
top_k 40 (1 ~ 100) 확률 상위 K개 토큰만 후보군으로 제한하여 저확률 쓰레기 토큰 유입을 차단합니다.
top_p 0.9 (0.1 ~ 1.0) 누적 확률 질량 P(Nucleus Sampling) 이하의 토큰 군집을 동적으로 슬라이싱합니다.
repetition_penalty 1.1 (1.0 ~ 2.0) Shifted Logit 페널티를 적용하여 문장 반복 루프와 동어 반복 현상을 방지합니다.

3. WebGPU 프로덕션 설정 예제 (JavaScript)

import { ForgeEngine } from '@uno-km/ameva-forge';

const engine = new ForgeEngine({
  devicePreference: 'high-performance',
  workgroupSize: [128, 1, 1],
  kvCacheBudgetMb: 512,
  cacheStorage: 'opfs',
  directDma: true,
  yieldIntervalMs: 16
});

await engine.init();
console.log('[AMEVA-Forge] WebGPU 런타임 하드웨어 파이프라인 구성 완료');