VectorWare는 Rust 표준 라이브러리(std library)를 GPU에서 사용할 수 있도록 구현하여, GPU 프로그래밍의 새로운 지평을 열었다.
기존 GPU 환경에서는 `#![no_std]` 제약으로 인해 표준 라이브러리 사용이 어려웠으나, Hostcall 프레임워크를 통해 이를 극복했다.
GPU와 CPU의 아키텍처적 수렴(Architectural Convergence)에 따라, GPU에서도 표준 라이브러리 지원의 필요성이 증대되고 있다.
향후 오픈 소스화(Open Sourcing) 및 업스트리밍(Upstreaming)을 통해 더 많은 개발자들이 GPU 프로그래밍의 이점을 누릴 수 있도록 할 예정이다.
VectorWare는 GPU에서 Rust 표준 라이브러리를 사용하기 위해 Hostcall(호스트 호출) 프레임워크를 개발했다. Hostcall은 GPU 코드에서 호스트 CPU로 요청을 보내는 방식으로, 기존의 시스템 콜(System Call)과 유사한 역할을 수행한다. 특히, std::fs::File::open과 같은 API는 Hostcall을 통해 호스트의 파일 시스템 API를 호출하여 구현된다. 이는 GPU에서 표준 라이브러리(Standard Library)의 기능을 사용할 수 있도록 하는 핵심 기술이며, 개발자 경험을 크게 향상시킨다.
CPU와 GPU의 아키텍처적 수렴(Architectural Convergence)은 표준 라이브러리 지원의 중요성을 높인다. AMD의 APU, NVIDIA의 DGX Spark, Apple의 M-series와 같이 CPU와 GPU가 통합되는 추세는 을 더욱 중요하게 만든다. VectorWare는 이러한 변화에 발맞춰 GPU에서도 CPU와 유사한 추상화를 제공함으로써, 개발자들이 환경에서 일관된 개발 경험을 누릴 수 있도록 지원한다.
VectorWare는 성능과 안전성을 모두 고려하여 Hostcall 프레임워크를 구현했다. 이중 버퍼링(Double-buffering) 및 원자적 연산(Atomic Operations)과 같은 GPU 프로그래밍 기법을 활용하여 데이터 무결성을 보장하고, GPU 힙 할당을 최소화하기 위해 결과 패킹(Packing Results)을 지원한다. 또한, Miri를 사용하여 Hostcall 런타임 및 커널의 안전성을 검증하는 등, 안전한 GPU 프로그래밍(Safe GPU Programming)을 위한 노력을 기울이고 있다.
VectorWare는 Rust 표준 라이브러리(std library)를 GPU에서 사용할 수 있도록 하는 기술을 오픈 소스화하고, Rust 커뮤니티에 기여할 계획이다. 현재는 libc 스타일의 Facade를 사용하여 표준 라이브러리를 구현했지만, 향후 Rust-native API를 통해 더욱 안전하고 효율적인 구현을 모색할 수 있다. 또한, 다양한 GPU 벤더(Vendor) 및 운영체제(Operating System)를 지원하기 위한 노력을 지속할 예정이다. 표준 라이브러리 업스트리밍(Upstreaming)은 GPU 프로그래밍 생태계 발전에 기여할 것이다.