장점:
단점:
주요 기능 및 능력:
GPUDrive는 GPUDrive: Data-driven, multi-agent driving simulation at 1 million FPS 논문에서 소개된 2024년의 신생 오픈소스 시뮬레이터로, 자율주행 연구를 위한 전례 없는 시뮬레이션 속도와 확장성을 목표로 합니다. 이 시뮬레이터는 Madrona 게임 엔진 위에 구축되어 있으며, GPU 실행에 최적화되어 벤치마크에서 초당 100만 스텝 이상의 시뮬레이션 속도를 달성합니다(GPUDrive 논문) – 이는 기존 시뮬레이터보다 몇 배나 빠른 속도입니다. GPUDrive의 핵심 아이디어는 시뮬레이터 병목 현상을 제거하여 다중 에이전트 주행 계획 및 학습을 대규모로 가능하게 하는 것입니다. 사용자는 관측 공간, 보상 함수, 동역학을 C++로 정의할 수 있으며, 이 코드들은 CUDA 코드로 JIT 컴파일되어 매우 복잡한 에이전트 행동을 구현할 수 있습니다(GPUDrive 논문). 특히, GPUDrive는 시나리오와 에이전트 로직에 있어 데이터 기반으로 설계되어, Waymo Open Motion Dataset과 같은 실제 데이터 시나리오를 받아들여 이를 시뮬레이션할 수 있습니다. 저자들은 실제 시나리오에서 강화학습 에이전트를 학습시키는 예를 보여주었으며, 다른 교통 에이전트들이 데이터셋을 그대로 따르거나 학습된 정책에 의해 제어될 수 있음을 언급합니다(GPUDrive 논문). 주로 RL 환경으로 소개되었지만, GPUDrive는 사전 제작된 “시뮬레이터 에이전트”와 실험을 통해 학습된 일부 사전 학습 에이전트도 오픈소스로 포함하고 있습니다(GPUDrive 논문). 이 사전 학습된 모델은 데이터로부터 학습된 반응형 운전자 모델로 볼 수 있는데, RL 정책을 통해 실제 데이터를 기반으로 주행하는 법을 학습한 결과일 가능성이 높습니다. 또한, 이 시뮬레이터는 클로즈드 루프 다중 에이전트 환경으로, 서로 다른 신경망 정책에 의해 제어되는 다수의 차량들이 실시간으로 상호작용할 수 있습니다. 요약하면, GPUDrive의 주요 강점은 실제 데이터 시나리오와 대규모 병렬 시뮬레이션을 결합하여, 수천 가지 변형을 빠르게 실행하며 다중 에이전트 전술이나 드문 이벤트를 탐구할 수 있게 한다는 점입니다. 다만, 고화질 물리 시뮬레이션보다는 속도와 처리량, 그리고 이종 에이전트 행동 실험에 더 중점을 두고 있습니다.
모듈성 및 그룹 커스터마이제이션:
GPUDrive는 이종 에이전트를 명시적으로 지원합니다. 시뮬레이터는 각 에이전트가 서로 다른 업데이트 함수를 가질 수 있도록 설계되었으며, 이 모든 것이 GPU 코드로 효율적으로 컴파일됩니다(GPUDrive 논문). 예를 들어, 한 그룹의 차량은 보수적인 주행 정책을, 다른 그룹은 공격적인 정책을 사용할 수 있으며, 이는 각기 다른 신경망 가중치나 로직으로 정의됩니다. 이 모든 것이 GPU 상에서 하나의 통합된 시뮬레이션 스텝 내에서 실행되어, 에이전트들이 동기화되고 효율적으로 작동합니다. 그룹을 정의하는 것은 시나리오 초기화 시 각 에이전트에 어떤 정책 인스턴스를 할당할 것인지를 지정하는 것만큼 간단합니다. 저자들은 또한 복잡하고 이종적인 행동 – 즉, 에이전트마다 맞춤형 결정 로직을 구현 – 을 성능 저하 없이 통합할 수 있다고 언급합니다(GPUDrive 논문). 실제로, 사용자는 모방 학습된 모델, RL로 학습된 모델, 또는 휴리스틱 모델 등 다양한 운전자 모델 라이브러리를 구축하여, 시나리오에 혼합하여 적용할 수 있습니다. 그룹별로 최소한의 수정만으로 원하는 행동 함수를 각 에이전트에 할당하면 되므로, GPUDrive는 혼합 자율주행 연구에 매우 강력한 플랫폼이 됩니다. 다만, 이러한 행동 함수는 GPU 호환 코드(C++/CUDA)를 통해 구현되어야 하므로, Python보다 다소 복잡할 수 있지만 속도 면에서는 큰 이점을 제공합니다.
다른 시뮬레이터와의 비교:
GPUDrive는 엄청난 시뮬레이션 속도와 다중 에이전트 학습에 중점을 둔 점에서 돋보입니다. 전통적인 시뮬레이터인 CARLA나 MetaDrive는 실시간 또는 실시간보다 몇 배 빠른 속도로 한 인스턴스에서 실행되지만, GPUDrive는 수 초 만에 하루치 주행을 시뮬레이션할 수 있습니다(물리적 정밀도는 낮을 수 있음). 리얼리즘 측면에서 CARLA는 고화질 물리와 시각 효과를 제공하지만 트래픽 AI가 제한적(규칙 기반)인 반면, GPUDrive는 속도를 위해 동역학을 단순화하지만, 학습된 에이전트가 있다면 훨씬 더 똑똑한 행동을 할 수 있습니다. 즉, GPUDrive는 일부 물리적 세부사항을 희생하는 대신, 대규모 행동 복잡성에 초점을 맞춥니다. 실제 데이터(Waymo)를 시작 시나리오로 사용하기 때문에, 환경은 ScenarioNet이나 Waymax와 유사하게 현실적일 수 있습니다. 다만, GPUDrive의 내장 에이전트 모델은 현재 주로 RL 정책에 초점을 맞추고 있어, 모방 학습 중심은 다소 부족할 수 있으나, 사용자가 직접 모방 정책을 학습하여 삽입할 수 있습니다. Waymax와 비교하면, Waymax는 JAX 기반으로 최적화되어 있으나 GPUDrive의 맞춤형 엔진만큼의 초고속 FPS에는 미치지 못할 수 있으며, 반면 Waymax는 Python과 JAX를 통해 보다 쉽게 사용할 수 있는 반면, GPUDrive는 C++ 지식이 필요합니다. SMARTS와 비교하면, SMARTS는 다중 에이전트 지원이 있으나 Python 및 CPU 성능에 제한이 있는 반면, GPUDrive는 SMARTS보다 훨씬 뛰어난 성능을 제공하지만, SMARTS가 제공하는 다양한 관측 공간이나 통합 도구(예: SUMO를 이용한 교통 시나리오 XML 설정)는 제공하지 않습니다. 요약하면, GPUDrive의 장점은 학습 알고리즘을 위한 확장성에 있으며, 수십억 스텝에 달하는 대규모 시뮬레이션을 실행할 수 있어, 다른 시뮬레이터로는 감당하기 어려운 규모의 실험을 가능하게 합니다(GPUDrive 논문, GPUDrive 논문).
사용성, 데이터셋 통합 및 시나리오 생성:
GPUDrive는 최첨단 연구 도구로, 초보자에게는 다소 사용하기 어려울 수 있습니다. 강력한 NVIDIA GPU와 빌드 과정이 필요하며, 시나리오를 작성하려면 C++ 로직이나 제공된 래퍼를 사용해야 합니다. 다행히도, 저자들은 예제와 Dockerfile을 포함하여 설정 과정을 쉽게 할 수 있도록 오픈소스로 공개하였습니다(GPUDrive 논문). Waymo Open Motion Dataset과의 통합도 제공되며, 사용자는 데이터셋 파일을 GPUDrive가 요구하는 포맷으로 변환한 후 사용할 수 있습니다. 시나리오 생성 측면에서는, GPUDrive 자체에 시나리오 편집 UI가 내장되어 있지 않으므로, 데이터를 재생하거나 코드로 환경(차량 위치, 목표 등)을 정의해야 합니다. 많은 사용자가 평가보다는 학습을 위한 경험 생성에 GPUDrive를 활용할 것이며, Python을 통한 설정 인터페이스도 제공되어 C++로 모든 것을 작성할 필요는 없습니다(GPUDrive 논문). 모듈성은 뛰어나, 새로운 운전자 모델을 추가하려면 새로운 함수(디바이스 함수)를 작성하면 되며, 고급 사용자는 PyTorch 모델을 TorchScript나 ONNX로 내보내 CUDA 커널 내에서 호출할 수도 있습니다. 이러한 유연성은 매우 높지만, 그만큼 전문 지식이 요구됩니다. 유지관리 측면에서는, 이 프로젝트는 2025년 초 기준 300+ GitHub 스타와 활발한 이슈 및 커밋 기록을 보이고 있어, 대학 연구실과 연계된 것으로 보이며, 성능 면에서 최첨단을 달리고 있습니다. 다만, 커뮤니티 채택 측면에서는 CARLA나 Waymax보다 덜 성숙할 수 있습니다.