NVIDIA 通过缩减 CUDA 二进制文件大小提升 cuML 的 PyPI 分发可访问性
realtime news Dec 15, 2025 18:11
NVIDIA 在 PyPI 上推出可通过 pip 安装的 cuML 轮子,通过缩减 CUDA 二进制文件大小简化安装过程并拓宽可访问性。
NVIDIA 宣布对其 cuML 库用户进行重大改进,缩减了 CUDA 二进制文件的大小,支持在 PyPI 上直接分发。据 NVIDIA 的博客,这标志着使 cuML 更易访问的关键一步,特别是对于依赖内部 PyPI 镜像的企业环境用户。
简化安装流程
随着 25.10 版本的发布,cuML 轮子现在可直接从 PyPI pip 安装,无需复杂的安装步骤或管理 Conda 环境。用户只需一个简单的 pip 命令即可安装 cuML,这大大简化了流程。
缩减二进制文件大小的挑战
NVIDIA 面临的主要障碍是 CUDA C++ 库的巨大体积,以前超出了 PyPI 的托管能力。为了解决这个问题,NVIDIA 与 Python 软件基金会 (PSF) 合作,成功缩减了足够的二进制文件大小,以便在 PyPI 上托管。这种合作使用户能够直接安装 cuML,提高了访问性和用户体验。
安装指南
对于安装 cuML 的用户,NVIDIA 根据 CUDA 版本提供了特定的 pip 命令:
- 对于 CUDA 13:
pip install cuml-cu13(轮子大小:约 250 MB) - 对于 CUDA 12:
pip install cuml-cu12(轮子大小:约 470 MB)
二进制文件大小优化技术
为了减少约 30% 的二进制文件大小,NVIDIA 采用了若干优化技术。这包括识别并消除 CUDA C++ 代码库中的冗余,从而将 CUDA 12 的 libcuml 动态共享对象从 690 MB 减少到 490 MB。优化不仅加快了下载速度并减少了存储空间,还降低了带宽成本并加速了部署容器的构建。
了解 CUDA 编译
由于包含大量内核,CUDA 二进制文件本质上较大,这些内核是模板参数和支持的 GPU 架构的交叉产品。NVIDIA 的方法涉及将内核函数定义与其声明分离,确保每个内核在一个翻译单元 (TU) 中进行编译,从而减少重复和二进制文件大小。
未来前景
通过进行这些改进,NVIDIA 旨在帮助其他使用 CUDA C++ 库的开发人员有效管理二进制文件大小。这项举措不仅惠及 cuML 用户,还通过使 CUDA C++ 库更易于管理和访问,鼓励更广泛的采用。
开发者可参阅 NVIDIA 的 CUDA 编程指南 以获得关于 CUDA 编程和优化技术的更多见解。
Image source: Shutterstock