前几天,我正想使用Python在 GPU 上读取箭头缓冲区,但就我所知,conda 或 pip 上提供的 pyarrow 包都没有使用 CUDA 支持构建。与编译 C 包装到 Python 生态系统中的许多包一样,Apache Arrow被全面记录,但如何选择使用 CUDA 支持构建 pyarrow的排列数量很快变得令人难以接受。

在这篇文章中,我将向您展示如何使用Docker和Virtualenv在Ubuntu上用CUDA支持构建pyarrow。这些方向与官方的 Apache Arrow 文档大致相同,但在这里,我逐步解释它们,并仅显示我使用的单一构建工具链。

第 1 步:具有 GPU 支持的 Docker

尽管我在带有 NVIDIA GPU 的工作站上使用了 Ubuntu 18.04 LTS,但每当我执行这样的项目时,我都喜欢使用 Docker 容器来隔离所有内容。您最不想做的事情是调试环境错误、更改一个项目的依赖项并破坏其他内容。值得庆幸的是,NVIDIA Docker 开发人员映像可通过 DockerHub 获得: