uxlfoundation/scikit-learn-intelex
Extension for Scikit-learn is a seamless way to speed up your Scikit-learn application
scikit‑learn‑intelex – 在 CPU 和 GPU 上加速 scikit‑learn
这是什么
- 一个开源扩展,在支持的硬件上可将流行的 Python 库 scikit‑learn 的速度提高约 100 倍。它通过将 scikit‑learn 的核心算法替换为英特尔 oneAPI 数据分析库(oneDAL)中的高度优化实现来实现这一点。
为什么重要
- Scikit‑learn 是表格机器学习(逻辑回归、随机森林、SVM、聚类等)的首选工具包。许多生产管道使用它,但该库不感知硬件。
scikit‑learn‑intelex在不要求代码更改的情况下,添加了 SIMD、多线程、缓存感知和 GPU 卸载优化。
主要特性
- CPU 加速 – SIMD 和多核优化使训练和推理平均提速 8.5 倍,同时保持数值结果不变。
- GPU 和多 GPU 支持 – 可选的基于 oneAPI 的卸载以进一步提速(需要英特尔 oneAPI 运行时)。
- 零代码集成 – 要么通过猴子补丁修改现有的
sklearn导入(from sklearnex import patch_sklearn; patch_sklearn()),要么直接导入即用模块sklearnex。 - 兼容性 – 适用于 scikit‑learn 1.6‑1.9 和 Python 3.10‑3.14;可通过 PyPI 和 conda‑forge 获取。
- 模型构建器兼容性 – 可加速由 XGBoost 或 LightGBM 生成的决策树模型。
典型使用场景
- 训练或评分时间成为瓶颈的大规模表格数据管道。
- 需要低延迟预测的实时推理服务。
- 在多节点集群或启用 GPU 的工作站上进行分布式训练。
快速开始
# 从 PyPI 安装(或使用 conda‑forge)
pip install scikit-learn-intelex
# CPU 示例 – 修补 scikit‑learn
from sklearnex import patch_sklearn
patch_sklearn()
from sklearn.cluster import DBSCAN
clustering = DBSCAN(eps=3, min_samples=2).fit(X)
# GPU 示例 – 使用 config_context
from sklearnex import patch_sklearn, config_context
patch_sklearn()
with config_context(target_offload="gpu:0"):
clustering = DBSCAN(eps=3, min_samples=2).fit(X)
文档和资源
- 完整文档:https://uxlfoundation.github.io/scikit-learn-intelex/
- 基准测试和示例笔记本在仓库中链接。
- 通过 GitHub Discussions 提供社区支持;提供贡献指南。
总结
scikit-learn-intelex 让您保留熟悉的 scikit‑learn API,同时发挥英特尔 oneDAL 的性能,对于在表格数据上构建机器学习模型的任何人来说,这是一个实用的加速器。
相关
- 项目
- 项目
- 项目
- Dispatch
- 项目