ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Windows 多核机器上 LightGBM CPU 利用率只有 10% 左右怎么排查

Windows 多核机器上 LightGBM CPU 利用率只有 10% 左右怎么排查 Windows 多核机器上 LightGBM CPU 利用率只有 10% 左右怎么排查【免费下载链接】LightGBMA fast, distributed, high performance gradient boosting (GBT, GBDT, GBRT, GBM or MART) framework based on decision tree algorithms, used for ranking, classification and many other machine learning tasks.项目地址: https://gitcode.com/GitHub_Trending/li/LightGBM在 Windows 多核机器上训练 LightGBM 模型数据集很大但任务管理器里 CPU 利用率一直停在 10% 左右其余核心基本闲置——这是 LightGBM 官方 FAQ 明确收录的一个排查场景。docs/FAQ.rst 第 8 条针对的正是这个现象给出的结论是如果当前 LightGBM 是用 MinGW 编译的Windows 多核系统上的 CPU 利用率可能极低官方建议使用 Visual Studio 编译它可能比 MinGW 快 10 倍尤其是很大的树may be 10x faster than MinGW, especially for very large trees。下面按文档中的说明给出确认、重建与验证的完整路径。先确认 LightGBM 是用哪个工具链编译的排查的第一步不是调参而是确认当前使用的 LightGBM 二进制文件CLI 可执行文件或 Python 包内置的动态库是用哪个工具链构建的。按 docs/Installation-Guide.rst 的说明Windows 上 LightGBM 支持三种构建方式Visual StudioCMake VS Build ToolsCMake MinGW-w64。官方在多处对工具链选择给出了一致的推荐FAQ 第 4 条I am using Windows. Should I use Visual Studio or MinGW for compiling LightGBM?的回答是Visual Studio performs best for LightGBMFAQ 第 8 条的标题就是CPU usage is low (like 10%) in Windows when using LightGBM on very large datasets with many-core systems回答为Please use Visual Studio as it may be 10x faster than MinGW, especially for very large trees安装指南的 Windows 章节明确写道推荐使用 Visual Studio因为它在 Windows 多核系统上有多线程效率优势better multithreading efficiency in Windows for many-core systems。所以如果你此前是从源码用 MinGW-w64 编译的或 Python 包是按 MinGW 方式构建安装的主路径就是把工具链换成 Visual Studio 或 VS Build Tools 后重新编译。注意该 FAQ 的适用条件Windows 大数据集 多核系统。如果数据集本身很小文档明确不建议开太多线程此时多核利用率偏低未必指向编译器问题。用 Visual Studio 重建 CLI 版主路径命令行版本官方推荐用 CMake VS Build Tools 构建。先安装 Git for Windows、CMake 和 VS Build Tools如果已安装 Visual Studio 则不需要单独装 VS Build Tools然后执行git clone --recursive https://github.com/lightgbm-org/LightGBM cd LightGBM cmake -B build -S . -A x64 cmake --build build --target ALL_BUILD --config Release构建成功后.exe和.dll文件位于LightGBM/Release文件夹.exe就是用于训练的 CLI 可执行文件。如果偏好图形界面文档也给出了 Visual Studio 路径安装 Visual Studio 后打开 windows/LightGBM.sln需要可执行文件时选择Release配置、需要共享库时选择DLL配置然后Build-Build Solution (CtrlShiftB)。若出现 Platform Toolset 或 Windows SDK Version 报错到Project-Properties-Configuration Properties-General中选择本机已安装的工具集或 SDK。用 Visual Studio 重建 Python 包如果你是通过 Python 包使用 lightgbm在已安装 Git for Windows 和 Visual Studio或 VS Build Tools的前提下可以从源码重新构建安装pip install lightgbm --no-binary lightgbmpython-package/README.rst 的 Build from Sources 一节对此明确说明Windows 用户需要 Visual Studio 或 VS Build Tools。目前如果正在用 MinGW-w64 构建官方给出的 MinGW 方式如下需要先安装 MinGW-w64pip install lightgbm --no-binary lightgbm --config-settingscmake.define.CMAKE_SHCMAKE_SH-NOTFOUND --config-settingscmake.args-GMinGW Makefiles但该小节同时注明由于 Visual Studio 在 Windows 多核系统上的多线程效率更好推荐使用 Visual Studio并指向 FAQ 的第 4 条和第 8 条。也就是说MinGW 构建方式虽然存在却不是多核大数据集场景下的推荐路径。顺带核对 num_threads 设置工具链问题解决后再核对线程数配置。按 docs/Parameters.rst 对num_threads参数的说明默认值为0表示使用 OpenMP 的默认线程数别名包括nthreads、n_jobs等为了获得最佳速度应设为物理 CPU 核心数而不是线程数多数 CPU 通过超线程让每个物理核心对应 2 个线程数据集较小时不要设得太大文档给出的例子是10,000 行的数据集不要使用 64 个线程文档还专门提醒任务管理器或类似的 CPU 监控工具可能报告核心没有被打满这是正常现象This is normal。因此一定程度的利用率不足未必有问题而大数据集 多核 利用率停在 10% 左右才是 FAQ 指向的 MinGW 编译问题不要在训练过程中修改该值尤其是通过外部包同时跑多个作业时否则可能引发错误。验证方式文档没有提供专门的检查命令验证依赖重跑训练对比换用 Visual Studio 构建的 LightGBM 后用同一份训练数据、同一组参数重新训练与 MinGW 构建版本的训练耗时对比。按 FAQ 的说法Visual Studio 构建可能比 MinGW 快 10 倍尤其很大的树可作为量级上的预期参考而不是硬性阈值。如果换用 Visual Studio 编译后训练耗时明显下降就可以确认之前 CPU 利用率低是工具链导致的。限制与边界该 FAQ 条目只针对 Windows 场景文档未覆盖 Linux/macOS 上的同类低利用率问题。该结论针对自行编译的 LightGBM。文档未说明 PyPI 预构建 wheel 的编译工具链只在 Windows 上推荐从源码用 Visual Studio 编译。数据集较小时文档不建议让num_threads占用大量核心此时不要以多核利用率低为判断编译器问题的依据。【免费下载链接】LightGBMA fast, distributed, high performance gradient boosting (GBT, GBDT, GBRT, GBM or MART) framework based on decision tree algorithms, used for ranking, classification and many other machine learning tasks.项目地址: https://gitcode.com/GitHub_Trending/li/LightGBM创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表