GPU에서의 Rust 스레드
VectorWare는 GPU 하드웨어의 강력한 성능을 Rust의 익숙한 추상화로 활용할 수 있도록, GPU에서 Rust의 std::thread를 성공적으로 실행하는 기술을 발표하였습니다.
기존 GPU 프로그래밍은 수천 개의 병렬 실행 인스턴스를 가진 커널 함수 형태로 동작하지만, VectorWare는 GPU의 워프(warp) 단위를 CPU의 스레드처럼 활용하여, 하나의 워프가 하나의 스레드 역할을 하도록 하였습니다. 이를 통해 GPU에서 명시적 동시성을 구현하며, Rust의 기존 스레드 API와 호환되는 환경을 제공합니다.
이 접근법은 GPU 내에서 스레드 간 분기(divergence)를 방지하고, Rust의 소유권과 생명주기 검사가 자연스럽게 적용되도록 하여, GPU 프로그래밍의 복잡성을 크게 줄이고 Rust 생태계의 많은 병렬 처리 라이브러리를 GPU에 그대로 적용할 수 있게 합니다. 다만, 워프 자원이 한정적이고 스레드 동기화 비용이 높으며, 워프 단위의 스레드 매핑으로 인한 자원 낭비 가능성 등은 향후 개선 과제로 남아 있습니다.