ช่วงนี้ Hot มากคงเป็นประเด็นเกี่ยวกับคำสั่ง AVX512 ที่หลายท่านให้ความสนใจและติดตาม ส่วนใหญ่ที่ผ่านมาเราพูดถึงความสามารถของ
CPU ที่สนับสนุนคำสั่ง AVX512 ในการใช้ประมวลผลคำสั่ง AVX512 และคำสั่งทางด้าน AI และ Deep Learning อาทิ VNNI BFLOAT16
GFNI VBMI1 VBMI2 ซึ่งล้วนเป็นการกล่าวถึงเฉพาะความสามารถของ CPU ที่สนับสนุนคำสั่ง AVX512 ทั้งสิ้น
เรามาลองมองกลับไปให้ลึกในสถาปัตยกรรม CPU ที่สนับสนุนคำสั่ง AVX512 สัก 2 เจนเนอเรชั่นคือ Skylake X และ Icelake เริ่มจาก
Skylake X กันก่อน นอกเหนือจากการประมวลผลคำสั่ง AVX512 ได้แล้ว ในส่วนของ Backward Compatibility กับคำสั่ง SIMD เดิม
อย่าง SSE 128 บิต และ AVX/AES/AVX2/FMA ในระดับ 256 บิต CPU Skylake X ก็สามารถทำงานได้มีประสิทธิภาพสูงกว่า CPU
สถาปัตยกรรมอื่นๆ อีกหลายเท่าตัว เนื่องจากทรัพยากรในระบบที่ออกแบบมาเพื่อรองรับคำสั่ง AVX512 เป็นสำคัญ
ในการออกแบบชิพ CPU โดย Intel นั้นในทางวิศวกรรมจะไม่มีการแยก Die สำหรับการประมวลผล X86-64 และ Vector register ออกจาก
กันเป็นเอกเทศในทุกเจนเนอเรชั่นตั้งแต่ Intel เริ่มใช้คำสั่ง MMX เป็นต้นมา เช่นเดียวกับกรณี AVX512 ก็เช่นกัน Intel ใช้วิธีเพิ่มรีจิสเตอร์เข้า
มา 32 ตัวขนาด 512-bit แล้วใช้ Digital Pointer (CPU FLAG) ในการแยกระดับการประมวลผลคำสั่ง X86-64 มาตรฐาน หรือ คำสั่ง MMX
/SSE หรือคำสั่ง AVX/AVX2/FMA3 รวมถึง AVX512
ผู้ที่ซื้อ CPU ที่สนับสนุนคำสั่ง AVX512 แต่ละ Core ก็จะได้รับการเพิ่ม SRAM ในส่วนของรีจิสเตอร์เข้าไปมากกว่า CPU ที่สนับสนุนคำสั่ง AVX2
หรือ SSE ต่อ Core ซึ่งตรงนี้ ก็ทำให้มี Headroom มากกว่า CPU รุ่นก่อนหน้า 2 - 4 เท่าตัวในการประมวลผลคำสั่ง SIMD อาทิ SSE AVX ใน
CPU ที่สนับสนุนคำสั่ง AVX512
จากภาพข้างบนจะเห็นว่าใน CPU ที่สนับสนุนคำสั่ง SIMD แต่ละ Generation นั้นมีจำนวน รีจิสเตอร์ ที่เพิ่มขึ้นเพื่อประมวลผลคำสั่ง SIMD เป็นเท่า
ตัว จาก 8 ชุดในสถาปัตยกรรม 32 บิตในคำสั่ง MMX และ SSE ในสมัย Pentium 3 ต่อเนื่องมาถึงยุคกลางของ Pentium 4
จากนั้นก็ขยับขึ้นมาเป็น 16 ชุดในยุคสถาปัตยกรรม Intel 64 ใน Pentium 4 D -> Core i เจนเนอเรชั่นแรก
และเพิ่มเข้ามาอีก 16 ชุดในยุค Sandy Bridge -> Skylake S
ท้ายที่สุดคือเพิ่มมาเป็นอีก 32 ชุดในยุค Skylake X->Cannonlake -> Icelake -> Tigerlake อย่างที่เราทราบกันดี
แน่นอนเมื่อทรัพยากรของ CPU ที่สนับสนุน AVX512 มีจำนวนเป็น 2 เท่าของ CPU ที่สนับสนุน AVX2 แนวคิดการประมวลผลแบบขนานจึงตามมา
นั่นทำให้ทรูพุทของ CPU ที่สนับสนุน AVX512 ให้ผลลัพธ์ในการประมวลผลคำสั่ง AVX2 ได้ดีกว่า ถึง 4* เท่า ในการประมวลผลคำสั่ง AVX2
และ 8* เท่าในการประมวลผลคำสั่ง SSE
(* เฉพาะรุ่นที่มี FMA512 Unit 2 ชุด)
นอกจากนี้ CPU ที่สนับสนุนคำสั่ง AVX512 นั้นในส่วนของ Memory sub system ภายใน Core รวมถึงช่องทางการรับส่งข้อมูลแต่ละ Core
ก็ได้รับการขยายจาก 256 บิตเป็น 512 บิต เพื่อให้การโหลดข้อมูลไปทำการประมวลผลและส่งออกผลลัพธ์ในระดับ 512 บิตเป็นไปอย่างรวดเร็ว
มากกว่า CPU ที่ไม่สนับสนุนคำสั่ง AVX512 อีกด้วย






Comment