王荣柴
2024 年 12 月 6 日 05:36
NVIDIA 的 RAPIDS cuDF 利用统一虚拟内存将 pandas 的性能提高 50 倍,提供与现有工作流程和 GPU 加速的无缝集成。
NVIDIA 的 RAPIDS cuDF 集成了统一虚拟内存 (UVM),显着增强了 pandas 库的性能,这是数据科学工作流程的重大进步。据 NVIDIA 报道,这种集成使 pandas 的运行速度提高了 50 倍,而无需对现有代码进行任何修改。 cuDF-pandas 库作为 GPU 加速代理运行,在可行时在 GPU 上执行操作,并在必要时通过 pandas 恢复到 CPU 处理,从而保持整个 pandas API 和第三方库的兼容性。
统一虚拟内存的作用
CUDA 6.0 中引入的统一虚拟内存在解决 GPU 内存有限的挑战和简化内存管理方面发挥着至关重要的作用。 UVM 创建了 CPU 和 GPU 之间共享的统一地址空间,允许工作负载通过利用系统内存来扩展,超越 GPU 内存的物理限制。此功能对于内存容量有限的消费级 GPU 特别有利,使数据处理任务能够超额订阅 GPU 内存,并根据需要自动管理主机和设备之间的数据迁移。
技术见解和优化
UVM 的设计促进了页面粒度的无缝数据迁移,降低了编程复杂性并消除了显式内存传输的需要。然而,由于页面错误和迁移开销,可能会出现潜在的性能瓶颈。为了缓解这些问题,采用了预取等优化,在内核执行之前主动将数据传输到 GPU。 NVIDIA 的技术博客中介绍了这种方法,该博客提供了有关 UVM 在不同 GPU 架构上的操作的见解以及在实际应用程序中优化性能的技巧。
cuDF-pandas 实施
cuDF-pandas 实现利用 UVM 提供高性能数据处理。默认情况下,它使用 UVM 支持的托管内存池,最大限度地减少分配开销并确保主机和设备内存的有效使用。预取优化可确保数据在内核访问之前迁移到 GPU,从而减少运行时页面错误并提高联接和 I/O 进程等大规模操作期间的执行效率,从而进一步增强性能。
实际应用和性能提升
在实际场景中,例如在 GPU 内存有限的 Google Colab 等平台上执行大型合并或连接操作,UVM 允许数据集在主机和设备内存之间拆分,从而有助于成功执行而不会遇到内存错误。 UVM 的使用使用户能够有效地处理更大的数据集,为端到端应用程序提供显着的加速,同时保持稳定性并避免大量的代码修改。
有关 NVIDIA RAPIDS cuDF 及其与统一虚拟内存集成的更多详细信息,请访问 NVIDIA 博客。
图片来源:Shutterstock
关键词:人工智能,加密,区块链,新闻