Announcement

Collapse
No announcement yet.

New Tigerlake CPU (Willow Cove Microarchitect) Update from CES 2020

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Comlow
    replied
    คุณมาตอบผมก่อนดีกว่า
    1. ว่า AVX ใช้ FMA 256+256 ใช่มั้ย ?
    AVX ไหนล่ะ AVX/AVX2 หรือ AVX512 ?
    AVX ตัวแรกทำงานกับข้อมูลทศนิยมล้วนๆ ใน Sandy Bridge และ Ivy Bridge Microarchitect
    AVX2 เพิ่มการทำงานกับข้อมูลชนิดจำนวนเต็มและทศนิยมใน Haswell Boardwell
    AVX512 เพิ่มการทำงานกับข้อมูลชนิดจำนวนเต็มและทศนิยมใน Skylake X ขึ้นไป

    แต่คิดว่าคุณคงหมายถึง Skylake X ก็ผมบอกไปแล้วหลายๆ ครั้งว่า
    AVX512 มันไม่ใช่ AVX256+AVX256 ย้ำอีกที ไม่ใช่ AVX256+AVX256 ภาษาไทยนะ
    ถ้าขนาดนี้แล้วคุณยังไม่เข้าใจ ผมจะไม่อธิบายต่อละนะครับ เพราะมันซ้ำซากหลายรอบแล้ว

    2. ในสมการนั้น Port0+Port 1 = Port 5 ใช่มั้ย
    สมการไหนล่ะ ผมไม่เห็นมี แต่ถ้าคุณหมายถึงว่า Fused Port 0 และ Port 1 แล้ว Skylake X มีจำนวนรีจิสเตอร์เท่ากับ FMA512 Unit ชุดที่ 2 ใน Port 5
    หรือไม่ ? ถ้าอันนี้ละใช่

    3. คุณพูดเองว่า Zmmm. Register ที่เข้ามาใหม่ กว้าง 256 Bits ถูกมั้ย เพราะคุณพูดเองนะ
    ผมพูดตรงไหนว่า ZMM0-ZMM31 Register ที่เข้ามาใหม่กว้าง 256-bit ไปอ่านใหม่อีกทีซิ สายตาท่าจะมีปัญหา ไปหาตัดแว่นดีๆ ใส่นะหนูน้อย
    ผมบอกชัดๆ ว่ากว้าง 512-bit เพี้ยนละคุณ รีจิสเตอร์ AVX2 YMM0-YMM15 โน่นกว้าง 256-bit ใน Ryzen ของคุณน่ะ นี่มัน Skylake X นะ
    ขนาดผมพยายามไล่ทีละ Step คุณก็ยังตามไม่ทันผมเลย (สงสัยขาด FMA512 ใน CPU)

    4. อันนี้เพิ่ม ZMM0 กว้างกี่ BITS ผมอยากรู้
    512-bit ไง ZMM0-ZMM31 ใน Wikichip ยังไม่ชัดอีกเหรอ

    เก็บค่าเรียนดีไหมเนี่ย (ล้อเล่นน่า ให้ฟรีเลยความรู้ล้วนๆ )

    ปล. เรื่องเล่นมุก ผมคงสู้คุณ SSK ไม่ไหว ปล่อยมาหลายมุกแล้วฮากระจายจริงๆ ครับ นับถือจริงๆ ในแต่ละมุกที่คิดมาได้
    Last edited by Comlow; 3 Feb 2020, 19:15:42.

    Leave a comment:


  • ssk
    replied
    -
    Last edited by ssk; 20 Mar 2020, 13:17:54.

    Leave a comment:


  • Comlow
    replied
    Skylake X Microarchitect Diagram

    รู้สึกได้เหมือนได้ลูกศิษย์มาขอให้ติววิชา Microprocessor ให้ แต่ลูกศิษย์สอนยากหน่อย ต้องทำใจครับแฟนๆ Intel

    คิดว่ากระจ่างไปตั้งแต่วันเสาร์จนผมไปเที่ยวกลับมาแล้วลูกศิษย์ก็ยังไม่ Get จะทำไงดีน้อ แนะให้ไปซื้อ Skylake X หรือ Icelake มาใช้สะดีไหมเนี่ย

    1. อยากให้กลับไปทำความเข้าใจดีๆ ในสิ่งที่ผมอธิบายให้ฟังในวันเสาร์ ผมว่าคนที่เขาอ่านละเอียดและตั้งใจจะศึกษาจะเข้าใจดีได้ในเวลาที่น้อยที่สุด
    เพราะมันไม่อะไรในกอไผ่ที่ซับซ้อน

    2. ดูเหมือนคุณ SSK จะติดใจในประเด็น Port 0+Port 1 ผมก็ได้อธิบายไปแล้ว Instruction Windows ของ Skylake 512-bit wide VS Ryzen 256-bit wide คือประเด็นที่ 1
    และต่อมา เมื่อระบบ Decode เจอว่าเป็นคำสั่ง AVX512 มันก็จะ Fused Register ระหว่าง Port 0 และ 1 ให้กว้าง 512-bit อัตโนมัติเพื่อรองรับชุดคำสั่งและข้อมูลไปประมวลผลดังที่
    ได้อธิบายไปแล้ว คำสั่ง AVX512 ก็กระทำกับข้อมูลขนาด 512-bit ไม่ใช่ 256-bit จึงไม่ต้องมารอ Execute ที่ละ 256-bit แบบที่คุณ SSK เข้าใจ Input 512-bit -> Output 512-bit
    ตรงๆ เลยแค่นั้น ไม่มีอะไรซับซ้อนเลย เด็กๆ ก็เข้าใจได้ไม่ยาก แต่ถ้า Decode ว่าเป็น AVX256 หรือ SSE ก็จะทำงานกันอีกแบบก็แค่นั้นเอง ไม่เห็นจะเข้าใจอะไรยากเลยนะครับ

    ส่วน Scheduler คุณ SSK ก็ต้องเข้าใจก่อนว่า Skylake และ Ryzen มันต่างกันครับ ตัว Skylake เขาเป็นแบบ Unifed Scheduler คือจัดลำดับได้ทั้ง
    ชุดคำสั่งที่ทำงานกับข้อมูลชนิดที่เป็นจำนวนเต็มและ Logic (ALU) และจำนวนทศนิยม Floating Point (FPU) และ Vector เลยในตัว ทั้งหมดมี Reorder
    Buffer 224 Entry และสนับสนุนการเรียงลำดับ Allocation Queue ได้ถึง 64 ชุดคำสั่งต่อ thread ดังภาพ



    ในขณะที่ Ryzen นั้นจะใช้ระบบ Dedicate Scheduler แยกในส่วนคำสั่งการประมวลผลข้อมูลชนิดจำนวนเต็มและ Logic (ALU) ผ่าน
    Integer Scheduler ทางด้านซ้ายมือและ FPU Scheduler ทางด้านขวามือ



    หลังจาก X86/64 Decoder แล้วก็จะส่งมาพักไว้ใน MicroOp Queue เพื่อจะแยกชนิดการประมวลผลคำสั่งข้อมูลจำนวนเต็มและ Logic
    และชนิดทศนิยมและ Vectore ขนาด 128(256*) bit แบบในภาพข้างบน (*ZEN2 Microarchitect)

    แต่น่าเสียดายที่ Instruction Windows ของ Ryzen นั้นกว้างสูงสุดเพียง 256-bit wide และจำนวนรีจิสเตอร์ของ Ryzen ไม่มากพอที่จะ
    รองรับการประมวลผลข้อมูลและคำสั่ง AVX512 ที่ต้องอาศัยรีจิสเตอร์ขนาด 512-bit ZMM0-31 จำนวน 32 ชุดเข้าไปในแต่ Core เพื่อเข้า
    กันได้กับชุดคำสั่ง AVX512 มาตรฐานที่กำหนดโดย Intel

    ด้วยเหตุนี้ Ryzen จึงไม่สามารถประมวลผลข้อมูลคำสั่ง AVX512 ได้ครับ

    ผมสรุปให้ฟังง่ายๆ สั้นๆ เพียงแค่นี้ คิดว่าแฟนๆ Intel และ AMD ที่สนใจคงพอจะมองเห็นได้ชัดแล้วว่า

    1. Hardware ภายในของ CPU Intel ได้รับการออกแบบมาเพื่อทำงานกับชุดคำสั่งและข้อมูลระดับ 512-bit โดยเฉพาะ
    จึงทำให้ สถาปัตยกรรมของ Intel ล้ำสมัยกว่า AMD ที่ยังคงสนับสนุนเพียงการประมวลผลในระดับ 256-bit สูงสุดในปัจจุบัน

    2. CPU Skylake X ได้รับการพัฒนาแล้วเสร็จในปี 2014 ในขณะที่ AMD ZEN 2 พัฒนาเสร็จในปี 2019 ที่ผ่านมา

    3. ท่านคงมีคำตอบในใจกันเองแล้วนะครับว่า CPU ค่ายไหนล้ำหน้ากว่า

    และสำหรับปัจจุบันนี้ Intel ยังล้ำหน้าไปไกลลิบด้วยสถาปัตยกรรม Sunny Cove Microarchitect ในปี 2019 ที่ AMD ยากจะไล่ทัน
    อาทิ

    1. World First X86-64 CPU Increse Physical Address / Linear Address



    Intel เพิ่มความสามารถในการอ้าง Physical Address ไปที่ 52-bit และเพิ่มความสามารถการอ้าง Linear Address ไปที่ 57-bit จากปัจจุบัน 48-bit
    ใน Skylake Microarchitect ทำให้ CPU สามารถประกาศ Address ไปไกลกว่ายุคใดๆ ที่ผ่านมา

    2. 10-Port Execution (From 8 Skylake X) และเพิ่มแบนด์วิธ L1 cache จาก 2 x 512-bit Load / 1 x 512-bit Store ใน Skylake X
    เป็น 2 x 512-bit Load / 2 x 512-bit Store ใน Icelake และ CPU รุ่นที่ใหม่กว่า



    3. ชุดคำสั่ง AVX512 ใหม่อีกมากมาย


    สำหรับประเด็น Scheduler ที่ท่าน SSK กล่าวมา ในส่วนของ Intel และ AMD มีความแตกต่างกันนะครับ
    ข้อจำกัดของ Ryzen จึงไม่ใช่ข้อจำกัดของ Skylake แต่อย่างใด
    คงสรุปง่ายๆ ให้ทุกท่านฟังเป็นความรู้กันตรงนี้นะครับ

    สำหรับคำถามที่ว่า Intel หรือ AMD ล้ำหน้ากว่ากันนั้น ผมเชื่อว่าหากทุกท่านได้ติดตามมาตั้งแต่ต้น
    นาทีนี้ทุกท่านคงมีคำตอบในใจเป็นที่เรียบร้อยแล้วนะครับ
    Last edited by Comlow; 3 Feb 2020, 15:58:04.

    Leave a comment:


  • ssk
    replied
    -
    Last edited by ssk; 20 Mar 2020, 13:17:47.

    Leave a comment:


  • ssk
    replied
    พักดีกว่า................
    รู้สึกเบื่อๆ
    Last edited by ssk; 2 Feb 2020, 17:27:43.

    Leave a comment:


  • Dasd
    replied

    Leave a comment:


  • ssk
    replied
    อันนี้ผมบ่นครับ
    คือผมพยายามพูดให้เข้าใจง่ายๆ แล้วยังมีคนบ่นว่าฟังแล้วไม่เข้าใจเเลยครับ
    ผมจึงไม่อยากไปยุ่ง ไปคุยอะไรที่มันอลังการดาวล้านดวง
    - แบบความเทพของชุดคำสั่ง
    - ไครมันจะใช้ ใช้กันทั่วโลก หรือ ทั่วจักรวาล ตั้งแต่อดีตกาล ยันอณาคต
    - ไครมันจะมาแย่งซื้ออะไรไคร
    - ไครอยากลองของใหม่ ไครนิยมสะสมของโบราณ
    - ไครเป็นสาวก กำลังหนุนไคร
    - ไครจะแทงเข่า ตีศอก ได้คะแนนยก 1-2-3 เท่าไหร่
    นี่มันไม่ได้เกี่ยวกับผมนะ คือผมสนใจจะคุยแต่เรื่องที่ผมจะคุยอ่ะ....................................
    ผมก็หลีก ผมก็เลี่ยงจะ ไม่เอาไม่พูด และ ไม่ตอบเรื่องพวกนั้นน่ะครับ เดี๋ยวมันจะใหลออกนอกเรื่องไป



    มันจะประมานนี้แหละครับ

    Leave a comment:


  • ssk
    replied
    -
    Last edited by ssk; 20 Mar 2020, 13:17:37.

    Leave a comment:


  • winny6969
    replied
    โอ่ คุณ Comlow คุณโดนหยาบๆ ใส่คุณยังคุมอารมณ์

    คุณหาข้อมูลมาแชร์ แล้วยังต้องต้องหาข้อมูลมาอธิบายอีกที

    ขอชื่นชมคับ

    Leave a comment:


  • ssk
    replied
    -
    Last edited by ssk; 20 Mar 2020, 13:17:28.

    Leave a comment:


  • Comlow
    replied
    Originally posted by ssk View Post
    ผมเพิ่งเห็น คือผมจะบอกว่า
    - เดิม Port 0 กับ 1 ถ้าไม่ FUSE ประตูมันจะเป็น 2.5 เมตร+2.5 เมตร ที่ยังมีเสากลางถูกมั้ย?
    - ของกว้าง 5 เมตร มันจะเข้าไม่ได้เพราะติดเสากลาง ถูกมั้ย?
    - มันจึงต้อง Fuse เพื่อเอาเสากลางออก ถึงจะเอาของกว้าง 5 เมตร เข้าไปได้ ถูกมั้ย?

    นี่คือจุดมุ่งหมายที่ถามครับ
    นั่นละครับ ถูกละ ทีนี้สมมติรถยนต์เปรียบเหมือน instruction AVX512 ตัวรถมีความกว้าง 5 เมตร เมื่อคุณเอาเสากลางออก คุณวิ่งเข้าไปได้ตรงๆหรือคุณจะต้องมาแยกรถยนต์ออกเป็นชิ้นส่วนแล้วส่งเข้าไปล่ะ ในเมื่อมันได้ตรงๆ พอดีอยู่แล้ว ตรงนี้เข้าใจนะครับผม

    และเพิ่มเติมให้อีกนิดนึง เห็นคุณมีพื้นฐานด้านการใช้ VM Emulated กว่าใคร ผมอยากให้คุณสังเกตเห็นอะไร
    บางอย่าง ในสมัยก่อนคำสั่ง MMX 3DNOW SSE นั่นจะมีเพียงรีจิสเตอร์ 8 ชุดเท่าๆ กัน กับ IA32 X86 ใช่ไหม
    ในช่วงนั้น พอมายุค AVX2 มีการเพิ่มจำนวนเป็น 16 ชุด กว้าง 256 bit และตามด้วยยุค AVX512 เพิ่มเข้ามา
    เป็น 64 ชุดกว้าง 512 bit

    การจะรัน Emulator ใดๆ ถ้า Hardware ที่คุณใช้มีทรัพยากรเหนือกว่า มันย่อมทำได้ง่ายและมีประสิทธิภาพ
    สูงกว่าการที่คุณจะรัน Emulator ที่เรียกใช้ทรัพยากรสูงกว่า ระบบ Hardware ที่คุณมีนะ ดูกรณี Ryzen 3
    ของคุณกับ Sisoft นั่นละเป็นตัวอย่าง

    และผมยินดีที่คุณเริ่มเข้าใจสิ่งที่ผมพยายามจะสื่อให้คุณและเพื่อนที่ใช้ AMD ทราบอย่างเป็นมิตร มิได้มุ่งจะ
    กล่าวตำหนิหรือดูถูกดูแคลนผู้ใช้ AMD แต่อย่างใด
    Last edited by Comlow; 1 Feb 2020, 10:42:43.

    Leave a comment:


  • ssk
    replied
    มุดทำไมล่ะครับ ในเมื่อ instruction Windows กว้าง 512-bit จะมุดเพื่อ?
    โปรแกรมเมอร์ที่ฉลาด ถ้าไปตรงๆ ได้จะมาย่อเพื่อมุดทำไมครับ คุณเข้าใจ instruction windows wide ไหมตกลง?
    นี่ Skylake นะครับ ไม่ใช่ Ryzen ถึงจะต้องมุด

    อ่านที่ผมอธิบายดีๆ คุณจะประมวลคำสั่ง AVX512 หรือ AVX256 ล่ะ ตกลง
    ผมเพิ่งเห็น คือผมจะบอกว่า
    - เดิม Port 0 กับ 1 ถ้าไม่ FUSE ประตูมันจะเป็น 2.5 เมตร+2.5 เมตร ที่ยังมีเสากลางถูกมั้ย?
    - ของกว้าง 5 เมตร มันจะเข้าไม่ได้เพราะติดเสากลาง ถูกมั้ย?
    - มันจึงต้อง Fuse เพื่อเอาเสากลางออก ถึงจะเอาของกว้าง 5 เมตร เข้าไปได้ ถูกมั้ย?

    นี่คือจุดมุ่งหมายที่ถามครับ

    Leave a comment:


  • ssk
    replied
    -
    Last edited by ssk; 20 Mar 2020, 13:17:20.

    Leave a comment:


  • Comlow
    replied
    ถ้าจะประมวลผล AVX512 แสดงว่าคุณจะทำงานกับข้อมูลชนิด 512-bit
    ประตูทางเข้า 512-bit คุณก็ส่งทั้ง คำสั่งและข้อมูลเข้าไปตรงๆ เลยพ่อหนุ่ม
    จะมาย่อลงเหมือน Ryzen 256-bit 2 ชุดให้เกิด Latency แบบในภาพนี้
    ไปเพื่ออะไร?


    Latency PXET/PDEP (ns) Lower is better

    Instructions Windows Wide 64Byte performance (SKL/KBL/CFL/CML) VS ZEN(Pinnacle ridge/Matisse) 32Byte wide

    เอาแค่หอมปากหอมคอน้อ ยิ่งลงลึก เดี๋ยวจะมีคนขาย Ryzen อาม่าทิ้งกันหมด

    Leave a comment:


  • Comlow
    replied
    Originally posted by ssk View Post
    ข้อ 2 อ่านดีๆครับ ว่า ถ้า ไม่อยู่ใน fuse state มันจะมุดได้มั้ย?
    ถ้าไม่ FUSE ทั้งก้อน 512 BITS มันจะเข้าได้ยังไงครับ คือ FUSE AVX-512 มุดได้น่ะถูก
    แต่ถ้าไม่ FUSE มันจะมุดยังไงครับ ในเมื่อเค้าเขียนว่าต้อง FUSE ก่อน ถึงจะมุดได้ครับ
    ถ้ามุดตรงๆมันก็ต้อง AVX 256 สิครับ ถูกมั้ย?
    มุดทำไมล่ะครับ ในเมื่อ instruction Windows กว้าง 512-bit จะมุดเพื่อ?
    โปรแกรมเมอร์ที่ฉลาด ถ้าไปตรงๆ ได้จะมาย่อเพื่อมุดทำไมครับ คุณเข้าใจ instruction windows wide ไหมตกลง?
    นี่ Skylake นะครับ ไม่ใช่ Ryzen ถึงจะต้องมุด

    อ่านที่ผมอธิบายดีๆ คุณจะประมวลคำสั่ง AVX512 หรือ AVX256 ล่ะ ตกลง

    Leave a comment:

Working...
X