DirectML adalah pustaka DirectX 12 dengan akselerasi perangkat keras dan berkinerja tinggi untuk pembelajaran mesin. DirectML memberikan akselerasi GPU untuk tugas pembelajaran mesin umum di berbagai perangkat keras dan driver yang didukung, termasuk semua GPU berkemampuan DirectX 12 dari vendor seperti AMD, Intel, NVIDIA, dan Qualcomm.
Saat digunakan secara mandiri, DirectML API adalah pustaka DirectX 12 tingkat rendah dan cocok untuk aplikasi berperforma tinggi dan berlatensi rendah seperti kerangka kerja, game, dan aplikasi real-time lainnya. Interoperabilitas DirectML dengan Direct3D 12 yang mulus serta overhead dan kesesuaian yang rendah di seluruh perangkat keras menjadikan DirectML ideal untuk mempercepat pembelajaran mesin ketika diinginkan kinerja tinggi, dan keandalan serta prediktabilitas hasil di seluruh perangkat keras sangat penting.
Informasi lebih lanjut tentang DirectML dapat ditemukan di Pengantar DirectML.
Kunjungi Halaman Arahan DirectX untuk sumber daya lebih lanjut bagi pengembang DirectX.
DirectML didistribusikan sebagai komponen sistem Windows 10, dan tersedia sebagai bagian dari sistem operasi (OS) Windows 10 di Windows 10, versi 1903 (10.0; Build 18362), dan yang lebih baru.
Dimulai dengan DirectML versi 1.4.0, DirectML juga tersedia sebagai paket mandiri yang dapat didistribusikan ulang (lihat Microsoft.AI.DirectML), yang berguna untuk aplikasi yang ingin menggunakan DirectML versi tetap, atau ketika dijalankan pada versi Windows 10 yang lebih lama. .
DirectML memerlukan perangkat berkemampuan DirectX 12. Hampir semua kartu grafis yang tersedia secara komersial yang dirilis dalam beberapa tahun terakhir mendukung DirectX 12. Contoh perangkat keras yang kompatibel meliputi:
DirectML mengekspos API C++ DirectX 12 asli. Header dan pustaka (DirectML.h/DirectML.lib) tersedia sebagai bagian dari paket NuGet yang dapat didistribusikan ulang, dan juga disertakan dalam Windows 10 SDK versi 10.0.18362 atau yang lebih baru.
DirectML terintegrasi sebagai backend untuk beberapa kerangka kerja seperti Windows ML, ONNX Runtime, dan TensorFlow.
Lihat bagian berikut untuk informasi lebih lanjut:
Kode sampel DirectML C++ tersedia di bawah Sampel.
Kode contoh DirectML Python tersedia di bawah Python/samples. Sampel memerlukan PyDirectML, pustaka proyeksi Python sumber terbuka untuk DirectML, yang dapat dibangun dan diinstal ke lingkungan eksekusi Python dari Python/src. Lihat file Python/README.md untuk lebih jelasnya.
DxDispatch adalah baris perintah sederhana yang dapat dieksekusi untuk meluncurkan program komputasi DirectX 12 (termasuk operator DirectML) tanpa menulis semua boilerplate C++.
Windows ML (WinML) adalah API berperforma tinggi dan andal untuk menerapkan inferensi ML yang dipercepat perangkat keras pada perangkat Windows. DirectML menyediakan backend GPU untuk Windows ML.
Akselerasi DirectML dapat diaktifkan di Windows ML menggunakan LearningModelDevice dengan salah satu DirectX DeviceKinds.
Untuk informasi selengkapnya, lihat Memulai Windows ML.
ONNX Runtime adalah akselerator inferensi dan pelatihan lintas platform yang kompatibel dengan banyak framework ML/DNN populer, termasuk PyTorch, TensorFlow/Keras, scikit-learn, dan banyak lagi.
DirectML tersedia sebagai penyedia eksekusi opsional untuk ONNX Runtime yang menyediakan akselerasi perangkat keras saat dijalankan di Windows 10.
Untuk informasi selengkapnya tentang memulai, lihat Menggunakan penyedia eksekusi DirectML.
PyTorch dengan DirectML memungkinkan pelatihan dan inferensi model pembelajaran mesin yang kompleks pada berbagai perangkat keras yang kompatibel dengan DirectX 12. Ini dilakukan melalui torch-directml
, sebuah plugin untuk PyTorch.
PyTorch dengan DirectML didukung pada versi terbaru Windows dan Subsistem Windows untuk Linux, dan tersedia untuk diunduh sebagai paket PyPI. Untuk informasi selengkapnya tentang memulai torch-directml
, lihat panduan Windows atau WSL 2 kami di Microsoft Learn.
TensorFlow adalah platform sumber terbuka yang populer untuk pembelajaran mesin dan merupakan kerangka kerja terkemuka untuk pelatihan model pembelajaran mesin.
Akselerasi DirectML untuk TensorFlow 1.15 saat ini tersedia untuk Pratinjau Publik. TensorFlow di DirectML memungkinkan pelatihan dan inferensi model pembelajaran mesin yang kompleks pada berbagai perangkat keras yang kompatibel dengan DirectX 12.
TensorFlow di DirectML didukung pada versi terbaru Windows 10 dan Subsistem Windows untuk Linux, dan tersedia untuk diunduh sebagai paket PyPI. Untuk informasi selengkapnya tentang memulai, lihat Pelatihan ML yang dipercepat GPU (docs.microsoft.com)
Kami menantikan kabar dari Anda!
Untuk TensorFlow dengan masalah DirectML, bug, dan masukan; atau untuk masalah umum DirectML dan masukan, harap ajukan masalah atau hubungi kami langsung di [email protected].
Untuk PyTorch dengan masalah DirectML, bug, dan masukan; atau untuk masalah umum DirectML dan masukan, harap ajukan masalah atau hubungi kami langsung di [email protected].
Untuk masalah Windows ML, silakan ajukan masalah GitHub di microsoft/Windows-Machine-Learning atau hubungi kami langsung di [email protected].
Untuk masalah ONNX Runtime, silakan ajukan masalah di microsoft/onnxruntime.
Panduan pemrograman DirectML
Referensi API DirectML
Memperkenalkan DirectML (Konferensi Pengembang Game '19)
Mempercepat Inferensi GPU dengan DirectML dan DirectX 12 (SIGGRAPH '18)
Windows AI: ML dengan akselerasi perangkat keras pada perangkat Windows (Microsoft Build '20)
Bermain game dengan Windows ML (Blog Pengembang DirectX)
DirectML di GDC 2019 (Blog Pengembang DirectX)
DirectX ❤ Linux (Blog Pengembang DirectX)
Proyek ini menyambut baik kontribusi dan saran. Sebagian besar kontribusi mengharuskan Anda menyetujui Perjanjian Lisensi Kontributor (CLA) yang menyatakan bahwa Anda berhak, dan memang benar, memberi kami hak untuk menggunakan kontribusi Anda. Untuk detailnya, kunjungi https://cla.microsoft.com.
Saat Anda mengirimkan permintaan tarik, bot CLA akan secara otomatis menentukan apakah Anda perlu memberikan CLA dan menghias PR dengan tepat (misalnya, label, komentar). Cukup ikuti instruksi yang diberikan oleh bot. Anda hanya perlu melakukan ini sekali di seluruh repo menggunakan CLA kami.
Proyek ini telah mengadopsi Kode Etik Sumber Terbuka Microsoft. Untuk informasi lebih lanjut lihat FAQ Pedoman Perilaku atau hubungi [email protected] jika ada pertanyaan atau komentar tambahan.