รูปแบบการเข้าถึงหน่วยความจำของชิป Apple M1
(lemire.me)"ซิงเกิลคอร์ของ M1 ประมวลผลหน่วยความจำแบบขนานได้มากกว่า 28 ขั้น"
-
การเข้าถึงหน่วยความจำมีต้นทุนสูงกว่างานคำนวณ
-
ในทางทฤษฎี โมเดลแบบ naive ที่มองว่าเมื่อเข้าถึง x แล้วจะอ่านค่าที่อยู่ใกล้กันอย่าง x+1 ได้แทบฟรีก็ดูสมเหตุสมผลอยู่บ้าง แต่ไม่สามารถใช้คาดการณ์ประสิทธิภาพได้
-
แล้วการคาดการณ์ประสิทธิภาพนี้จะล้มเหลวเมื่อไร? คอร์ CPU พยายามเข้าถึงหน่วยความจำหลายตำแหน่งพร้อมกัน
-
หากเข้าถึงหน่วยความจำพร้อมกัน 7 ครั้ง ก็ย่อมช้ากว่าการเข้าถึงเพียง 1 ครั้ง แต่จะช้ากว่าถึง 7 เท่าหรือไม่?
-
ทดสอบผ่านโปรแกรมเบนช์มาร์กว่ารองรับการเข้าถึงพร้อมกัน (lane, รูทีนติดตามพอยน์เตอร์ที่เป็นอิสระต่อกัน) ได้กี่ชุด
→ คาดจำนวน lane ได้จากจุดที่ประสิทธิภาพของการเข้าถึงพร้อมกันเริ่มลดลงในระดับหนึ่ง
- คาดว่าคอร์หนึ่งคอร์ของ Apple M1 มี 28 lane เพราะเมื่อเกิน 28 lane ประสิทธิภาพจะเริ่มลดลง
→ ดังนั้น เนื่องจากมีการประมวลผลแบบขนานในระดับสูง การประเมินต้นทุนด้วยโมเดล naive ข้างต้นจึงล้มเหลว
5 ความคิดเห็น
พอมีการพูดถึงเรื่อง CPU ทีไร
https://ridibooks.com/books/443000037
หนังสือเล่มนี้ช่วยได้มากเลยครับ/ค่ะ ถ้าใครอยากค่อย ๆ ตามมาตั้งแต่ต้น ลองอ่านหนังสือเล่มนี้ก่อนก็น่าจะพอตามได้ง่ายขึ้นครับ/ค่ะ
เพื่อป้องกันไม่ให้ดูเหมือนเป็นการโปรโมต Ridibooks (...) ชื่อหนังสือคือ: เรื่องราวของ CPU แบบมัลติคอร์ที่โปรแกรมเมอร์ไม่เคยรู้มาก่อน ครับ ที่ต้องเป็น Ridibooks ก็เพราะว่าหนังสือกระดาษเลิกพิมพ์ไปแล้ว และในบรรดาอีบุ๊ก ร้านที่ยังเหลืออยู่มีแค่ Ridibooks เท่านั้น เลยจำเป็นต้องลงแบบนี้ครับ
คุณคิมมินจังก็เขียนหนังสือแบบนี้ด้วยเหรอ... ผ่านไป 10 ปีแล้ว เวลาช่างไร้ความหมายจริง ๆ ^^;
นี่เป็นส่วนที่ยากมากจริง ๆ เพราะยากที่จะสรุปเป็นภาพรวมได้ แต่ในสถานการณ์ที่สถาปัตยกรรม CPU สมัยนี้หรือการประมวลผลแบบขนานมีมากขึ้น ก็ดูเหมือนว่าจะมีประสิทธิภาพได้มากทีเดียว ทำให้รู้สึกว่ามีการทดลองปรับปรุงโครงสร้างฮาร์ดแวร์กันเยอะเหมือนกันนะ
น่าจะเป็นเพราะเขียนโดยอาจารย์ด้านวิทยาการคอมพิวเตอร์ เลยบันทึกไว้เฉพาะข้อเท็จจริงที่ตัวเองเข้าใจได้อย่างชัดเจน..
ถ้าลองอ่านประกอบกันทั้งคอมเมนต์ของโพสต์นั้นและคอมเมนต์ใน HN https://news.ycombinator.com/item?id=25659615
โดยพื้นฐานแล้วก็น่าจะเข้าใจได้ว่า M1 แสดงประสิทธิภาพได้ยอดเยี่ยมแม้จะเข้าถึงหลายตำแหน่งแบบสุ่ม ก็ด้วยปัจจัยอย่างการทำงานแบบขนานมากกว่า 28 ชุดและขนาดของ L1 cache เป็นต้น