อะไรคือข้อดีของการรักษาขนาดแบทช์ให้ได้ 2


18

ในขณะที่การฝึกอบรมรูปแบบในการเรียนรู้ของเครื่องทำไมบางครั้งมันจึงเป็นประโยชน์ในการรักษาขนาดของแบทช์ให้ได้ 2 ฉันคิดว่าเป็นการดีที่สุดที่จะใช้ขนาดที่เหมาะสมที่สุดในหน่วยความจำ GPU / RAM ของคุณ

คำตอบนี้อ้างว่าสำหรับบางแพ็คเกจพลังของ 2 จะดีกว่าขนาดแบตช์ ใครสามารถให้คำอธิบายโดยละเอียด / ลิงค์ไปยังคำอธิบายโดยละเอียดสำหรับเรื่องนี้? สิ่งนี้เป็นจริงสำหรับอัลกอริธึมการปรับให้เหมาะสมทั้งหมดหรือไม่

คำตอบ:


24

นี่เป็นปัญหาของการจัดแนวตัวประมวลผลเสมือน (VP) ไปยังตัวประมวลผลทางกายภาพ (PP) ของ GPU เนื่องจากจำนวน PP มักจะเป็นพลังของ 2 การใช้ VP จำนวนต่างจากพลังของ 2 ทำให้ประสิทธิภาพไม่ดี
คุณสามารถดูการทำแผนที่ของ VP ลงบนพีพีเป็นกองชิ้นขนาดจำนวนบุคคลในวง จำกัด
สมมติว่าคุณมี 16 PP
คุณสามารถแมป 16 VP ได้: 1 VP ถูกแมปไปที่ 1 PP
คุณสามารถแมป 32 VP ได้: 16 VP, 1 PP 2 ชิ้นจะรับผิดชอบ 2 VP
ระหว่างการดำเนินการ PP แต่ละคนจะดำเนินงานของรองประธานคนที่ 1 ซึ่งเป็นผู้รับผิดชอบต่อจากนั้นก็เป็นงานของรองประธานคนที่ 2 เป็นต้น
ถ้าคุณใช้ 17 รองประธานแต่ละคนจะดำเนินงาน PP อันดับที่ 1 ของพวกเขา ดำเนินงานของวันที่ 17 และคนอื่นจะไม่ทำอะไรเลย (ด้านล่าง)
นี่เป็นเพราะกระบวนทัศน์ SIMD (เรียกว่าเวกเตอร์ในยุค 70) ที่ใช้โดย GPUs สิ่งนี้มักเรียกว่า Data Parallelism: PP ทั้งหมดทำสิ่งเดียวกันในเวลาเดียวกัน แต่ใช้ข้อมูลที่แตกต่างกัน ดูhttps://en.wikipedia.org/wiki/SIMD
อย่างแม่นยำยิ่งขึ้นในตัวอย่างที่มีรองประธาน 17 คนเมื่องานของชิ้นที่ 1 เสร็จสิ้น (โดย PP ทั้งหมดที่ทำงานในตำแหน่งรองประธานคนที่ 1 ของพวกเขา) PP ทั้งหมดจะทำงานเดียวกัน (รองประธานคนที่ 2) แต่มีเพียงคนเดียวที่มี ข้อมูลเพื่อการทำงานใน
ไม่มีอะไรเกี่ยวข้องกับการเรียนรู้ นี่คือสิ่งที่เขียนโปรแกรมเท่านั้น


มันจะมีความแม่นยำมากขึ้นหรือไม่ที่จะบอกว่าขนาดของแบทช์ควรเป็นจำนวน PP หลายเท่า นั่นคือในตัวอย่างของคุณเราสามารถแมป 16x3 = 48 VP ถึง 16 PP ได้ไหม
1west

ใช่. ถ้าคุณทำแผนที่ VP -> PP คุณก็มั่นใจแล้วว่า 100% ถูกต้อง หากคุณใช้ห้องสมุดและขอ 80 VP ฉันไม่แน่ใจ. ฉันไม่ได้บอกว่าคุณผิด หากอัตราส่วนเป็นกำลัง 2 คุณสามารถใช้การปรับให้เหมาะสมแบบคลาสสิกและง่าย ๆ ได้มากหน่วยความจำเข้าถึง ถ้า # ของเพื่อนบ้านชั้นบนของ VP ไม่ใช่พลังของ 2, บอกว่า 5, lib จะไม่สามารถใช้ O (log_2 (n)) แบบคลาสสิคเข้าถึงหน่วยความจำเพื่อนบ้านได้อย่างง่ายดาย
jcm69

@ jcm69 คุณสามารถอธิบายหรือให้ลิงค์สำหรับ log_2 (n) เวลาเข้าถึงสำหรับการเข้าถึงหน่วยความจำ VP ได้
Arayan Singh

นั่นเป็นเพียงการพิจารณาโดยทั่วไปเกี่ยวกับการจัดการวัตถุในวิทยาการคอมพิวเตอร์ เมื่อคุณแน่ใจว่าวัตถุเป็นไปตามกฎของ 2 กฎพวกเขาสามารถจัดการได้อย่างง่ายดายและปลอดภัยโดยโครงสร้างการค้นหาแบบไบนารีการเปลี่ยนแปลงแบบไบนารีเป็นต้นเมื่อคุณไม่แน่ใจคุณอาจต้องทำการทดสอบเพิ่มเติมและอัลกอริธึมที่ซับซ้อนมากขึ้น อย่างไรก็ตามว่านิด ๆ หน่อย ๆ ห่างไกลจากคำถามแรก;)
jcm69

1

แนวคิดทั้งหมดคือให้เหมาะสมกับ mini-batch ของคุณทั้งหมดใน CPU / GPU เนื่องจาก CPU / GPU ทั้งหมดมาพร้อมกับความจุในการจัดเก็บในสองอำนาจดังนั้นจึงแนะนำให้รักษาขนาดชุดมินิชุดพลังของทั้งสอง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.