HiveD เป็นตัวกำหนดเวลาสำหรับปริมาณงานการเรียนรู้เชิงลึก
เนื่องจากเป็นองค์ประกอบแบบสแตนด์อโลนหนึ่งของ Microsoft OpenPAI HiveD จึงได้รับการออกแบบให้เป็น Kubernetes Scheduler Extender สำหรับคลัสเตอร์ GPU แบบหลายผู้เช่า คลัสเตอร์ GPU ที่มีผู้เช่าหลายรายถือว่าผู้เช่า (ทีม) หลายรายใช้พูล GPU เดียวกันในคลัสเตอร์กายภาพ (PC) เดียว และให้การรับประกันทรัพยากรบางอย่างแก่ผู้เช่าแต่ละราย HiveD จำลองผู้เช่าแต่ละรายเป็นคลัสเตอร์เสมือน (VC) เพื่อให้ผู้เช่ารายหนึ่งสามารถใช้ VC ของตัวเองได้เสมือนว่าเป็นคลัสเตอร์ส่วนตัว ในขณะเดียวกันก็สามารถใช้ทรัพยากรฟรีของ VC อื่น ๆ ที่มีลำดับความสำคัญต่ำกว่าได้
HiveD มีคุณสมบัติหลักหลายประการสำหรับเวิร์กโหลดการเรียนรู้เชิงลึกดังนี้
คุณสมบัติเด่นที่ทำให้ HiveD แตกต่างก็คือ ให้การรับประกันทรัพยากรแก่ VC แต่ละราย ไม่เพียงแต่ในแง่ของปริมาณ ค่าตัวเลข แต่ยังรวมถึงในแง่ของ โทโพโลยี ซึ่งเป็นข้อกำหนดสำคัญของงานฝึกอบรมที่ใช้ GPU ตัวอย่างเช่น ตัวกำหนดเวลาแบบเดิมรับประกันว่า VC สามารถใช้ GPU ได้ 8 ตัว อย่างไรก็ตาม ยังไม่ทราบโทโพโลยีของ GPU ทั้ง 8 ตัว เป็นไปได้ว่างานฝึกอบรม 8-GPU ที่ต้องรันภายในโหนดเดียวนั้นไม่สามารถจัดสรรได้ แม้ว่า VC จะยังมี GPU ฟรี 8 ตัวก็ตาม เนื่องจาก GPU ฟรีทั้ง 8 ตัวนี้อาจอยู่ในหลายโหนด
HiveD ปกป้องทรัพยากรของ VC ในแง่ของ เซลล์ ซึ่งเป็นประเภททรัพยากรที่ผู้ใช้กำหนดซึ่งเข้ารหัสทั้งปริมาณและข้อมูลประเภทอื่น ๆ เช่นโทโพโลยีและประเภทฮาร์ดแวร์ ในตัวอย่างข้างต้น ผู้ใช้สามารถกำหนดประเภทเซลล์ของโหนด 8-GPU และสามารถกำหนด VC หนึ่งในเซลล์ดังกล่าวได้ จากนั้น HiveD จะตรวจสอบให้แน่ใจว่า มีโหนด 8-GPU หนึ่งโหนดสำหรับ VC เสมอ โดยไม่คำนึงถึงปริมาณงานอื่นๆ ในคลัสเตอร์
HiveD อนุญาตให้ใช้คำจำกัดความของเซลล์ที่ยืดหยุ่นสำหรับการรับประกันทรัพยากรแบบละเอียด ตัวอย่างเช่น ผู้ใช้สามารถกำหนดเซลล์ในระดับโทโพโลยีหลายระดับ (เช่น สวิตช์ PCI-e) สำหรับอุปกรณ์รุ่นต่างๆ (เช่น NVIDIA V100 GPU, AMD Radeon MI100 GPU, Cloud TPU v3) หรือการกำหนดค่าเครือข่าย (เช่น โดเมน InfiniBand) . VC สามารถมีเซลล์ได้หลายประเภท และ HiveD จะรับประกันทั้งหมด
HiveD เพิ่มประสิทธิภาพการทำงานของ การตั้งเวลาแบบกลุ่ม ซึ่งเป็นข้อกำหนดการจัดตารางเวลาโดยทั่วไปสำหรับงานการฝึกอบรมการเรียนรู้เชิงลึก ซึ่งควรจัดสรรคอนเทนเนอร์ทั้งหมดก่อนที่จะเริ่มงานการฝึกอบรมได้ งานหลายงานตามกำหนดการที่แข่งขันกันเพื่อชิงทรัพยากรชุดเดียวกันอาจทำให้เกิดความอดอยาก โดยแต่ละงานจะได้รับทรัพยากรเพียงบางส่วนเท่านั้นและต้องรออย่างไม่มีกำหนด
HiveD กำหนดเวลาคอนเทนเนอร์ทั้งหมดภายในงานในลักษณะ ธุรกรรม กล่าวคือ ข้อกำหนดของคอนเทนเนอร์ทั้งหมดเหล่านี้จะได้รับหรือปฏิเสธโดยรวม จึงหลีกเลี่ยงการจัดสรรทรัพยากรบางส่วนและความอดอยาก
HiveD รองรับงานหลายลำดับ ความสำคัญ งานที่มีลำดับความสำคัญสูงกว่าสามารถ ยึด งานที่มีลำดับความสำคัญต่ำกว่าได้ HiveD ยังแนะนำ งานที่ฉวยโอกาส เช่น งานที่มีลำดับความสำคัญต่ำที่สุด ซึ่งสามารถใช้ทรัพยากรฟรีของ VC อื่นได้เมื่อเป็นไปได้ (โดยไม่ทำลายการรับประกันทรัพยากรให้กับ VC อื่น ๆ )
การเช่าหลายรายการ: คลัสเตอร์เสมือน (VC)
การรับประกันทรัพยากร VC แบบละเอียด: ปริมาณ โทโพโลยี ประเภท ทรัพยากร VC ที่ปักหมุดไว้ ฯลฯ
การกำหนดเวลาภายใน VC ที่ยืดหยุ่น: การรับรู้โทโพโลยี, ประเภทฮาร์ดแวร์ที่ยืดหยุ่น, ทรัพยากร VC ที่ปักหมุดไว้, การปรับแต่งนโยบายการกำหนดเวลา ฯลฯ
การกระจายตัวของทรัพยากรที่ได้รับการปรับปรุงและความอดอยากน้อยลง
ลำดับความสำคัญ การใช้งานมากเกินไปโดยมีลำดับความสำคัญต่ำ และการสงวน Inter-/Intra-VC
งาน (เต็ม/บางส่วน) การจัดตารางเวลา/ใบจอง
ความทนทานต่อข้อผิดพลาด, การรับรู้ฮาร์ดแวร์ที่ไม่ดี, การกำหนดค่าใหม่เพื่อรักษางาน
คลัสเตอร์ Kubernetes เวอร์ชัน 1.14.2 ขึ้นไป บนคลาวด์หรือในองค์กร
กำหนดค่าตัวกำหนดเวลา
เรียกใช้ตัวกำหนดเวลา
ส่งปริมาณงานไปยัง Scheduler
คู่มือการใช้งาน
การสาธิตคุณสมบัติ
ออกแบบ
นักเทียบท่าฮับ
FrameworkController: Kubernetes Pod Controller สำหรับงานทั่วไป ซึ่งสามารถใช้ประโยชน์จาก HiveD เพื่อกำหนดเวลางานได้อย่างง่ายดาย
OpenPAI: โซลูชั่นที่สมบูรณ์สำหรับแพลตฟอร์ม AI HiveD จะเป็นมิตรกับผู้ใช้มากขึ้นเมื่อทำงานควบคู่กับ OpenPAI
โครงการนี้ยินดีรับการสนับสนุนและข้อเสนอแนะ การบริจาคส่วนใหญ่กำหนดให้คุณต้องยอมรับข้อตกลงใบอนุญาตช่างภาพ (CLA) โดยประกาศว่าคุณมีสิทธิ์ที่จะให้สิทธิ์แก่เราในการใช้การบริจาคของคุณจริงๆ สำหรับรายละเอียด โปรดไปที่ https://cla.opensource.microsoft.com
เมื่อคุณส่งคำขอดึง บอท CLA จะกำหนดโดยอัตโนมัติว่าคุณจำเป็นต้องจัดเตรียม CLA และตกแต่ง PR อย่างเหมาะสมหรือไม่ (เช่น การตรวจสอบสถานะ ความคิดเห็น) เพียงทำตามคำแนะนำที่ได้รับจากบอท คุณจะต้องทำสิ่งนี้เพียงครั้งเดียวกับ repos ทั้งหมดโดยใช้ CLA ของเรา
โครงการนี้ได้นำหลักจรรยาบรรณของ Microsoft Open Source มาใช้ สำหรับข้อมูลเพิ่มเติม โปรดดูคำถามที่พบบ่อยเกี่ยวกับจรรยาบรรณหรือติดต่อ [email protected] หากมีคำถามหรือความคิดเห็นเพิ่มเติม
โปรดอ้างอิง HiveD ในสิ่งพิมพ์ของคุณหากช่วยในการวิจัยของคุณ:
@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, }