HiveD adalah penjadwal untuk beban kerja pembelajaran mendalam.
Sebagai salah satu komponen mandiri dari Microsoft OpenPAI, HiveD dirancang untuk menjadi Kubernetes Scheduler Extender untuk cluster GPU Multi-Tenant . Klaster GPU multi-penyewa mengasumsikan beberapa penyewa (tim) berbagi kumpulan GPU yang sama dalam satu klaster fisik (PC) dan memberikan beberapa jaminan sumber daya untuk setiap penyewa. HiveD memodelkan setiap penyewa sebagai kluster virtual (VC), sehingga satu penyewa dapat menggunakan VC-nya sendiri seolah-olah itu adalah kluster pribadi, sekaligus dapat menggunakan sumber daya gratis VC lain dengan prioritas lebih rendah.
HiveD menyediakan beberapa fitur utama untuk beban kerja deep learning sebagai berikut.
Fitur mematikan yang membedakan HiveD adalah ia memberikan jaminan sumber daya untuk setiap VC, tidak hanya dalam hal kuantitas, nilai numerik, tetapi juga dalam hal topologi , yang merupakan persyaratan utama pekerjaan pelatihan berbasis GPU. Misalnya, penjadwal tradisional menjamin bahwa VC dapat menggunakan 8 GPU. Namun belum mengetahui topologi dari 8 GPU tersebut. Ada kemungkinan bahwa tugas pelatihan 8 GPU yang harus dijalankan dalam satu node, tidak dapat dialokasikan meskipun VC-nya masih memiliki 8 GPU gratis. Ini karena 8 GPU gratis ini mungkin dimiliki oleh banyak node.
HiveD melindungi sumber daya VC dalam bentuk sel , jenis sumber daya yang ditentukan pengguna yang mengkodekan kuantitas dan jenis informasi lainnya, seperti topologi dan jenis perangkat keras. Dalam contoh di atas, pengguna dapat menentukan tipe sel dari node 8-GPU, dan VC dapat ditetapkan ke salah satu sel tersebut. Kemudian, HiveD akan memastikan bahwa selalu ada satu node 8-GPU yang tersedia untuk VC , terlepas dari beban kerja lain di cluster.
HiveD memungkinkan definisi sel yang fleksibel untuk jaminan sumber daya yang lebih baik. Misalnya, pengguna dapat menentukan sel pada beberapa tingkat topologi (misalnya, saklar PCI-e), untuk model perangkat yang berbeda (misalnya, GPU NVIDIA V100, GPU AMD Radeon MI100, Cloud TPU v3), atau konfigurasi jaringan (misalnya, domain InfiniBand) . VC dapat memiliki berbagai jenis sel, dan HiveD akan menjamin semuanya.
HiveD mengoptimalkan kinerja penjadwalan geng , persyaratan penjadwalan umum untuk pekerjaan pelatihan pembelajaran mendalam, di mana semua kontainer harus dialokasikan sebelum tugas pelatihan dapat dimulai. Beberapa pekerjaan yang dijadwalkan secara geng yang bersaing untuk mendapatkan sumber daya yang sama dapat menyebabkan kelaparan, di mana setiap pekerjaan hanya mendapat sebagian sumber daya dan harus menunggu tanpa batas waktu.
HiveD menjadwalkan semua kontainer dalam pekerjaan dengan cara transaksional , yaitu, semua persyaratan kontainer ini akan dipenuhi atau ditolak secara keseluruhan, sehingga menghindari alokasi sumber daya parsial dan kelaparan.
HiveD mendukung berbagai prioritas pekerjaan. Pekerjaan dengan prioritas lebih tinggi dapat mendahului pekerjaan dengan prioritas lebih rendah. HiveD juga memperkenalkan pekerjaan oportunistik , yaitu pekerjaan dengan prioritas terendah yang dapat menggunakan sumber daya gratis VC lain bila memungkinkan (tanpa melanggar jaminan sumber daya untuk VC lain).
Multi-Sewa: Klaster Virtual (VC)
Jaminan Sumber Daya VC Terperinci: Kuantitas, Topologi, Jenis, Sumber Daya VC yang Disematkan, dll.
Penjadwalan Intra-VC Fleksibel: Kesadaran Topologi, Jenis Perangkat Keras Fleksibel, Sumber Daya VC yang Disematkan, Kustomisasi Kebijakan Penjadwalan, dll.
Fragmentasi Sumber Daya yang Dioptimalkan dan Mengurangi Kelaparan
Prioritas, Penggunaan Berlebihan dengan Prioritas Rendah, dan Preemption Antar/Intra-VC
Penjadwalan/Preemption Geng Pekerjaan (Penuh/Sebagian).
Toleransi Kesalahan, Kesadaran Perangkat Keras yang Buruk, Konfigurasi Ulang yang Mempertahankan Pekerjaan
Cluster Kubernetes, v1.14.2 atau lebih tinggi, on-cloud atau on-premise.
Penjadwal Konfigurasi
Jalankan Penjadwal
Kirimkan Beban Kerja ke Penjadwal
Panduan Pengguna
Demo Fitur
Desain
DockerHub
FrameworkController: Pengontrol Pod Kubernetes Tujuan Umum, yang dapat dengan mudah memanfaatkan HiveD untuk menjadwalkan pekerjaan.
OpenPAI: Solusi lengkap untuk platform AI. HiveD akan lebih ramah pengguna jika bekerja sama dengan OpenPAI.
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.opensource.microsoft.com.
Saat Anda mengirimkan permintaan tarik, bot CLA akan secara otomatis menentukan apakah Anda perlu memberikan CLA dan menghiasi PR dengan tepat (misalnya, pemeriksaan status, 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.
Silakan kutip HiveD dalam publikasi Anda jika itu membantu penelitian Anda:
@inproceedings {hived-osdi2020, author = {Hanyu Zhao and Zhenhua Han and Zhi Yang and Quanlu Zhang and Fan Yang and Lidong Zhou and Mao Yang and Francis C.M. Lau and Yuqi Wang and Yifan Xiong and Bin Wang}, title = {{HiveD}: Sharing a {GPU} Cluster for Deep Learning with Guarantees}, booktitle = {14th {USENIX} Symposium on Operating Systems Design and Implementation ({OSDI} 20)}, year = {2020}, isbn = {978-1-939133-19-9}, pages = {515--532}, url = {https://www.usenix.org/conference/osdi20/presentation/zhao-hanyu}, publisher = {{USENIX} Association}, month = nov, }