데브허브 | DEVHUB | TypeScript on the GPU with TypeGPU creator Iwo PlazaTypeScript on the GPU with TypeGPU creator Iwo Plaza
- TypeGPU는 WebGPU 위에 구축된 래퍼로, TypeScript 개발자 경험을 유지하면서 GPU에 대한 저수준 접근을 제공합니다. 💻
- 주요 목표는 JavaScript/TypeScript로 셰이더를 작성할 수 있게 하여, 기존 WebGPU 셰이딩 언어(WSL)의 접근성 문제를 해결하는 것입니다. ✍️
- TypeGPU는 WebGPU의 강력함에도 불구하고, 매우 저수준이고 복잡한 데이터 통신(바이너리, 메모리 패딩 등)으로 인한 개발자의 좌절감에서 탄생했습니다. 🤯
- Zod에서 영감을 받은 스키마를 사용하여 CPU와 GPU 간의 데이터 직렬화/역직렬화를 자동화하고 타입 안전성을 제공하여 통신을 간소화합니다. ↔️
useGPU 지시어를 통해 TypeScript 코드를 셰이더 코드로 변환하며, 이는 컴파일러를 통해 런타임에 셰이더 코드를 생성하는 방식으로 작동합니다. ✨
- TypeGPU는 TRPC나 SvelteKit이 프론트엔드-백엔드 통신을 간소화하듯이, CPU-GPU 간의 복잡한 통신을 추상화하는 역할을 합니다. 🌉
- 기술적으로는 Unplugin 및 AST(추상 구문 트리)를 활용하여
useGPU로 표시된 함수를 분석하고, 런타임에 셰이더 코드를 생성하기 위한 메타데이터를 주입합니다. ⚙️
- 3JS를 대체하기보다는 보완하는 역할을 하며, 3JS 내에서 특정 재료나 컴퓨트 셰이더 로직을 TypeGPU 함수로 대체할 수 있는 통합 기능을 제공할 예정입니다. 🤝
- WebGPU 학습의 어려움과 복잡성을 크게 줄여, 개발자들이 더 쉽게 GPU 프로그래밍에 접근하고 깊이 탐구할 수 있도록 돕습니다. 🚀
- '젤리 슬라이더'와 같은 성공적인 예시를 통해 TypeGPU의 강력함과 창의적인 가능성을 입증하며 긍정적인 반응을 얻었습니다. 🌟