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)

文档和资源

总结 scikit-learn-intelex 让您保留熟悉的 scikit‑learn API,同时发挥英特尔 oneDAL 的性能,对于在表格数据上构建机器学习模型的任何人来说,这是一个实用的加速器。

相关

  • 项目
  • 项目
  • 项目
  • Dispatch
  • 项目