Environment:Dotnet Machinelearning OneDal Acceleration
| Knowledge Sources | |
|---|---|
| Domains | Infrastructure, Acceleration |
| Last Updated | 2026-02-09 11:00 GMT |
Overview
Intel oneDAL 2023.0.0 acceleration environment for x64 Windows, enabling hardware-accelerated ML algorithms via the `MLNET_BACKEND=ONEDAL` environment variable.
Description
This environment configures Intel oneDAL (oneAPI Data Analytics Library) as an optional acceleration backend for ML.NET. When enabled, it dispatches supported algorithms to Intel-optimized implementations. It requires x64 architecture and currently only has full support on Windows. The environment also depends on Intel oneAPI Threading Building Blocks (TBB) for parallelism.
Usage
Use this environment to accelerate ML.NET training and inference on Intel x64 hardware. Enable by setting the `MLNET_BACKEND` environment variable to `ONEDAL`. This is optional; ML.NET falls back to managed implementations when oneDAL is unavailable.
System Requirements
| Category | Requirement | Notes |
|---|---|---|
| OS | Windows (primary), Linux, macOS | Platform-specific package versions |
| Hardware | Intel x64 CPU | oneDAL optimized for Intel hardware |
| Architecture | x64 only | ARM and x86 not supported |
Dependencies
Native Packages (Platform-Specific)
Windows:
- `oneDAL` = 2023.0.0.23189
- `oneAPI TBB` = 2021.7.1.15305
Linux:
- `oneDAL` = 2023.0.0.23046
- `oneAPI TBB` = 2021.7.1.15005
macOS:
- `oneDAL` = 2023.0.0.22995
- `oneAPI TBB` = 2021.7.1.14939
Development
- `oneDAL Devel` = 2023.0.0.23189 (all platforms)
Credentials
- `MLNET_BACKEND`: Set to `ONEDAL` to enable oneDAL acceleration. Not a secret, but required for activation.
Quick Install
# Enable oneDAL acceleration (Windows/Linux/macOS x64 only)
# Set environment variable before running ML.NET application
set MLNET_BACKEND=ONEDAL # Windows
export MLNET_BACKEND=ONEDAL # Linux/macOS
# The oneDAL native libraries are included via NuGet packages
# No separate installation needed when using ML.NET NuGet packages
Code Evidence
Environment variable check from `src/Microsoft.ML.OneDal/OneDalUtils.cs:23`:
if (System.Runtime.InteropServices.RuntimeInformation.ProcessArchitecture ==
System.Runtime.InteropServices.Architecture.X64)
Backend activation from `README-oneDAL.md:16`:
Set MLNET_BACKEND=ONEDAL to enable oneDAL kernel dispatching
Windows PATH manipulation from `src/Microsoft.ML.OneDal/OneDalUtils.cs:26`:
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
// Manipulates PATH to find oneDAL native libraries
Version declarations from `eng/Versions.props:55-63`:
<OneDALWindowsVersion>2023.0.0.23189</OneDALWindowsVersion>
<OneDALLinuxVersion>2023.0.0.23046</OneDALLinuxVersion>
<OneDALMacVersion>2023.0.0.22995</OneDALMacVersion>
<OneDALDevelVersion>2023.0.0.23189</OneDALDevelVersion>
<OneAPITBBWindowsVersion>2021.7.1.15305</OneAPITBBWindowsVersion>
<OneAPITBBLinuxVersion>2021.7.1.15005</OneAPITBBLinuxVersion>
<OneAPITBBMacVersion>2021.7.1.14939</OneAPITBBMacVersion>
Common Errors
| Error Message | Cause | Solution |
|---|---|---|
| `DllNotFoundException: OneDalNative` | Running on non-x64 architecture | oneDAL requires x64; switch to x64 or disable oneDAL backend |
| `No acceleration detected` | MLNET_BACKEND not set | Set `MLNET_BACKEND=ONEDAL` environment variable |
| `oneDAL library not found in PATH` | Native libraries not in system PATH (Windows) | Ensure NuGet packages restored; check OneDalUtils PATH manipulation |
Compatibility Notes
- x64 only: oneDAL native binaries are compiled exclusively for x64 architecture.
- Windows primary: Full support on Windows with automatic PATH configuration.
- Linux/macOS: Supported but with platform-specific package versions.
- Fallback: When oneDAL is unavailable or not configured, ML.NET silently falls back to managed implementations with no error.