HyperAI초신경
Back to Headlines

포말스 GPU 엔진으로 VRAM 초과 데이터 처리 방법

3일 전

고용량 데이터를 처리하면서 VRAM 제약을 극복하는 방법: Polars GPU 엔진 활용 고도화된 분야에서는 금융 양적 분석, 알고리즘 거래, 사기 검출 등에서 데이터 전문가들이 수 백 기가바이트(GB)의 데이터를 신속하고 정확하게 처리해야 하는 경우가 많습니다. Polars는 가장 빠르게 성장하는 데이터 처리 라이브러리 중 하나로, 이 분야에서 주로 사용되는 계산 중심 쿼리를 NVIDIA cuDF로 가속화하여 제공합니다. 그러나 GPU를 활용할 때 흔히 마주치는 문제는 GPU의 전용 메모리인 VRAM이 시스템 RAM보다 작다는 것입니다. 이로 인해 매우 큰 데이터셋을 처리할 때 문제가 발생할 수 있습니다. Polars GPU 엔진은 이러한 제약을 극복하기 위한 두 가지 옵션을 제공합니다. 이를 통해 사용자는 VRAM 보다 큰 데이터를 처리하면서도 GPU 가속의 혜택을 누릴 수 있습니다. 첫 번째 옵션은 단일 GPU 유연성을 위한 Unified Virtual Memory(UVM)입니다. 데이터셋 크기가 GPU의 VRAM을 초과하기 시작하면 NVIDIA UVM 기술을 활용할 수 있습니다. UVM은 시스템 RAM(호스트 메모리)과 GPU VRAM(디바이스 메모리) 사이의 통합 메모리 공간을 생성합니다. 이렇게 하면 VRAM이 가득 찼을 때 Polars GPU 엔진이 시스템 RAM으로 데이터를 넘겨 저장할 수 있어, 메모리 부족 오류를 방지하고 VRAM보다 큰 데이터셋을 처리할 수 있게 됩니다. GPU가 현재 시스템 RAM에 있는 데이터에 접근이 필요할 때, 해당 데이터는 자동으로 VRAM으로 이동하여 처리됩니다. 이 접근법은 단일 GPU를 사용하면서도 VRAM보다 약간 더 큰 데이터셋을 처리해야 하는 경우에 이상적입니다. 코드 변경 없이 원활한 경험을 제공하지만, 시스템 RAM과 VRAM 간의 데이터 이동에 따른 성능 저하가 있을 수 있습니다. 그러나 RAPIDS Memory Manager(RMM)라는 라이브러리를 활용하면 이 성능 비용을 크게 줄일 수 있습니다. RMM은 GPU 메모리 할당을 세밀하게 제어하는 기능을 제공합니다. UVM의 동작 방식, 성능, 그리고 특정 요구사항에 맞는 구성 최적화에 대한 자세한 내용은 Polars GPU 엔진에서 VRAM보다 큰 데이터를 처리하기 위한 UVM 소개 문서를 참조하세요. 두 번째 옵션은 TB 규모 성능을 위한 다중 GPU 스트리밍 실행입니다. 수백 GB에서 테라바이트(TB) 규모의 데이터셋을 처리해야 하는 사용자를 위해 Polars GPU 엔진은 이제 실험적인 다중 GPU 스트리밍 실행 구성을 제공합니다. 일반적인 메모리 내 실행에서 데이터는 단일 파티션으로 처리되지만, 스트리밍 실행자则是通过数据分片和并行处理能力设计的,以在多个GPU之间分配工作负载。 核心机制是将Polars生成的优化内部表示(IR)图重写为批处理执行。然后,根据数据大小和可用工作的数量对生成的图进行分片。流执行器采用基于任务的执行模型,每个分片独立处理,使任务能够并行执行。 图1展示了Polars GPU引擎之前的内存内执行器与新的流执行器的比较。 流执行器支持单GPU执行,通过Dask同步调度器,以及多GPU执行,通过Dask分布式调度器。有许多参数可用于控制连接策略和分片大小。 测试团队在PDS-H基准测试中看到,在3 TB规模下,所有22个查询都在几秒钟内完成处理。您可以查看示例笔记本,并尝试在您的数据集上使用多GPU流处理。 选择合适的方法 UVM和多GPU流执行都是在Polars GPU引擎中处理大于GPU VRAM的数据集的强大方法。最佳选择取决于您的具体需求。 要了解更多关于这些配置的信息,请参阅Polars用户指南。 industy experts have praised these developments in the Polars GPU engine, noting their potential to revolutionize data processing in fields requiring rapid and efficient handling of large datasets. Polars, developed by the Polars Technologies, is an open-source project that has gained significant traction in recent years due to its high performance and ease of use. The introduction of these advanced features further solidifies Polars' position as a leading tool in the data processing landscape.

Related Links