고급 파라미터 제어 및 성능 최적화
WebGPU WGSL 컴퓨트 파이프라인, 메모리 버퍼 풀링 및 샘플러 제어 (AMEVA-Forge)
핵심 가치 제안 (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 런타임 하드웨어 파이프라인 구성 완료');