使用PyCUDA的经验:重构射线-曲面相交算法的现有实现

摘要:在CUDA框架中,PyCUDA是一种用于生成GPU运行时代码的Python脚本方法。本文是之前研究《在CUDA中实现的射线-曲面相交算法的GPU实现》(arXiv:2209.02878)的续篇。它提供了一个在GitHub上分发的开源代码,实现了基于GPU的线段-曲面三角形相交测试的PyCUDA版本。本文的目标是与对PyCUDA不熟悉的人分享一个PyCUDA的学习经验。在使用[1]中现有的CUDA代码和基础作为起点的基础上,我们记录了进行过的关键更改,以便过渡到PyCUDA。由于射线-曲面相交测试的CUDA源代码包含主机和设备代码,并使用多个内核函数,因此这些说明提供了一个实质性的示例和对使用PyCUDA的实际视角。它深入探讨了二进制基数树等自定义数据结构,并强调了一些可能的陷阱。案例研究提供了一种调试策略,可以使用标准Python工具在设备内存中检查复杂的C结构,而无需CUDA-GDB调试器。

作者:Raymond Leung

论文ID:2305.01867

分类:Distributed, Parallel, and Cluster Computing

分类简称:cs.DC

提交时间:2023-05-05

PDF 下载: 英文版 中文版pdf翻译中