dotnet / dotnet/machinelearning

Support native ARM64 in Microsoft.ML.LightGbm

Open
#7,685 1 comment 1 reaction 0 assignees View on GitHub
area-Native enhancement
Dominant language
C#
Stars
9.4k
Forks
2k
Avg merge
2d 20h
Merged PRs (30d)
11

Description

### Summary

Track native ARM64 support for `Microsoft.ML.LightGbm` on Linux, macOS, and Windows.

The managed package works on .NET, but its upstream `LightGBM` NuGet dependency currently contains only:

- `linux-x64`
- `osx-x64`
- `win-x64`

It does not contain native assets for `linux-arm64`, `osx-arm64`, or `win-arm64`. Consequently, native ARM64 applications cannot load `lib_lightgbm` without manually supplying a compatible binary or using architecture emulation where available.

### Updated upstream context

This was previously reported for macOS in #7495 and closed as a platform limitation. However, the limitation appears to be in NuGet packaging rather than LightGBM itself:

- LightGBM publishes official macOS ARM64 Python wheels starting with 4.4.0: https://github.com/lightgbm-org/LightGBM/issues/5328#issuecomment-2169128216
- The latest LightGBM 4.7.0 NuGet package still lacks ARM64 runtime assets for Linux, macOS, and Windows.
- An attempted Linux ARM64 NuGet change was closed without implementation, with an upstream maintainer explicitly requesting a feature request: https://github.com/lightgbm-org/LightGBM/pull/7085#issuecomment-3554633594
- Upstream is separately working on Windows ARM64 support: https://github.com/lightgbm-org/LightGBM/issues/6967
- #6966 demonstrates that manually supplied macOS ARM64 binaries are possible, but version matching is brittle and unsupported.

### Proposed outcome

1. Coordinate with LightGBM upstream to publish `linux-arm64`, `osx-arm64`, and `win-arm64` native assets in its NuGet package.
2. Update ML.NET to the corresponding LightGBM package version.
3. Add native ARM64 training and inference coverage for each supported desktop OS.
4. Clearly document platform-specific limitations until each native asset is available.

### Acceptance criteria

Native ARM64 applications on Linux, macOS, and Windows can install `Microsoft.ML.LightGbm`, train and run a LightGBM model without manually copying native libraries or using architecture emulation.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.