DirectMLとは
DirectMLは、Microsoftが開発したWindows向けの機械学習ハードウェア加速APIです。DirectX 12の一部として提供され、CPU、GPU、NPUなどのハードウェアを自動的に使い分け、最適なパフォーマンスでAI推論を実行します。Copilot+ PCの全AI機能を支える中核技術です。
DirectMLの特徴
1. ハードウェア非依存
- 自動最適化:Intel、AMD、NVIDIA、Qualcommすべてのハードウェアに対応
- プロセッサ選択:タスクに応じて最適なプロセッサを自動選択
- ドライバレベル対応:ハードウェアベンダーが最適化
2. 幅広いモデル対応
- TensorFlow:TensorFlow-DirectMLで対応
- PyTorch:PyTorch-DirectMLで対応
- ONNX:ONNX Runtimeと統合
- Windows ML:Windowsアプリで機械学習を簡単に利用
3. DirectX 12との統合
- 既存のDirectX 12インフラを活用
- ゲームエンジンとの統合が容易
- グラフィックスとAIの同時処理
DirectMLが使われている機能
Copilot+ PC機能
Windows Studio Effects:ビデオ会議エフェクトLive Captions:リアルタイム字幕・翻訳Cocreator:AI画像生成Recall:画面履歴のAI検索
サードパーティアプリ
- Adobe Photoshop:Neural Filters
- DaVinci Resolve:AI動画編集
- Stable Diffusion:画像生成(DirectML版)
- Whisper:音声認識(DirectML版)
開発者向け情報
使用方法
# ONNX Runtime with DirectML
import onnxruntime as ort
# DirectMLプロバイダーを使用
providers = ['DmlExecutionProvider']
session = ort.InferenceSession('model.onnx', providers=providers)
# 推論実行(自動的にNPU/GPUを使用)
outputs = session.run(None, inputs)
対応言語・フレームワーク
- C++:ネイティブAPI
- C#/.NET:Windows.AI.MachineLearning
- Python:TensorFlow-DirectML、PyTorch-DirectML、ONNX Runtime
他のAI APIとの比較
| 項目 | DirectML | CUDA | OpenVINO |
|---|---|---|---|
| 対応ハードウェア | Intel/AMD/NVIDIA/Qualcomm | NVIDIAのみ | 主にIntel |
| OS対応 | Windowsのみ | Windows/Linux/Mac | Windows/Linux/Mac |
| NPU対応 | ◎ 完全対応 | × 非対応 | ◎ 対応 |
| 使いやすさ | ◎ 自動最適化 | ○ 手動設定必要 | ○ やや複雑 |
まとめ
DirectMLは、Windowsの機械学習向けハードウェア加速APIで、Copilot+ PCのNPUを含む全てのハードウェアを自動的に最適化します。開発者はハードウェアの違いを意識せず、高性能なAIアプリケーションを構築できます。
