Announcement

Collapse
No announcement yet.

ข้อสงไส เกี่ยวกับ shader unit ครับ

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

  • ข้อสงไส เกี่ยวกับ shader unit ครับ

    ผมเห็น shader unit ของ Nvidia จะน้อยกว่า AMD นะครับ แต่รุ้สึกมันน้อยกว่ามาก

    หรือว่า shader unit ของ AMD ต้องหาร 3 หรือปล่าว

    อญิบายทีครับ แล้วการ์ดจอตอนนี้ ตัวไหนคุ้มสุด ในราคา 7-8 k ครับ ทั่้ง 2 ค่ายนะครับ

    หรือรอ 6xxx series ดีกว่า

  • #2
    โอ๊ย...อธิบายกันตายเลย พิมพ์ลงกระกาษ A3 ก็ไม่พอ..

    (เอาแบบอย่างย่อนะ)

    ถ้าเราพูดเฉยๆว่า shader unit มันมีหลักอยู่ 3 ตัวครับ
    - Process Shaders(บางคนจะเรียก Unified Shaders) จะเรียกว่า Shaders อัฐประโยชน์ก็ได้ การประมวลVertex,Geometry,Pixel,GPGPU,FLOP,CUDA,OpenCL,DirectX,OpenGL อะไรจิปาถะที่ว่าจะใช้การ์ดจอเป็นสมอง ก็อยู่ในส่วนนี้หมดเลย (แบ่งๆกันใช้, ประยุกต์กันใช้)

    - Texture mapping unit - ประมวลผลเมื่อแมปพื้นผิว

    - Render Output unit(ROP) - เรนเดอร์ทุกอย่างร่วมให้เป็นภาพ


    คราวนี้ที่ถามว่า nVIDIA มี Shaders น้อยกว่า AMD นั้น... มันต้องมองให้ถูกที่ครับ
    - ถ้าเรามองที่ Process Shaders หรือ Unified Shaders อันนี้จริงว่า nVIDIA(เหมือน)มีน้อยกว่า แต่อย่าลืมว่า Unified Shaders ของ ATI มันคือการเล่นกล

    - แต่ถ้าเรามองที่ Texture กับ ROP ซึ่งสองส่วนนี้มีผลกับประสิทธิภาพของเกม 3มิติ เป็นอย่างมาก... อันนี้ ในการ์ดระดับเดียวกัน nVIDIA มักมีมากกว่านะครับ



    แล้วที่ Unified Shaders ของ ATI ต้องจับหารล่ะ?
    ถ้าจะพูดในเชิงสถาปัติ ผมก็ไม่รู้ลึกขนาดนั้น(ได้แต่อ่านผ่านๆตา แต่ไม่ค่อยเข้าหัวเลย) แต่ตามภาษาพูดที่เรามักพูดกัน ภายในGPUของATIจะมีจัดสรรอยู่ Unified Shaders จำนวณ5ชุดครับ เช่น ในHD4870 ก็คือ 160unit x 5ชุด = 800unit (ผมก็มักพูดภาษาโบราณว่า 800ท่อ)... ถ้าเป็น HD5870 ก็คือ 320unit x 5ชุด = 1600unit
    แต่เนื้องจาก Unified Shaders มันแบ่งเป็นชุดๆ ในการประมวลผลแต่ล่ะอย่างนั้น จะใช้ได้แค่ที่ล่ะ1ชุดเท่านั้น (คำนวณอย่างนึ่งจะใช้มันพร้อมกันหมด 5 ชุดเลยไม่ได้) ภาษาพูดเราเลยมักเรียกว่า เช่น HD4870 มีUnified Shadersแท้ 160unit (ภาษาผมก็จะเรียกว่า มีท่อแท้160ท่อ)... ซึ่งว่าๆไปแล้ว ถ้าต้องประมวลผลข้อมูลอย่างนึงอย่างใด1อย่าง HD4870 ก็จะเหมือนมีแค่ 160unit เท่านั้น(เมื่อเทียบกับUnitในแบบ nVIDIA)

    (ผมขออนุญาติพิมพ์ว่า "ท่อ" นะครับ เพราะพิมพ์ง่ายกว่า Unit )

    แต่การที่ ATI แบ่งเป็นชุดหลายๆชุด จึงทำให้GPUสามารถประมวลผลข้อมูลที่ต่างๆกันได้ พร้อมกัน 5 อย่าง... จึงทำให้โดยรวมแล้วถึงแม้เทียบกันใน1ชุดจะน้อยกว่า แต่การทำงานแบบคู่ขนานกันไปช่วยเพิ่มประสิทธิภาพทัดเทียบ ท่อเยอะๆในแบบnVIDIA ได้


    ทำไมATIถึงทำท่อเป็นชุดๆล่ะ...?
    เราอาจฟังดูแล้วว่าการแบ่ง Unified Shaders เป็นชุดๆนั้น มันดูน่าจะยุ่งยาก... แต่ความจริงมันทำได้ง่ายกว่าครับ เพราะการออกแบบวงจรให้มี Unified Shaders เยอะๆ ให้พวกมันทั้งหมดทำงานสัมพันธ์กันได้นั้นมันยากกว่า และต้องให้สามารถวิ่งที่ความเร็วคล๊อกสูงๆได้อีก ยิ่งยากเข้าไปใหญ่แลย (เหตุนี้คล๊อกของnVIDIAจึงมักน้อยกว่าATIไง ในการ์ดจอระดับเดียวกันนะ)

    เทคนิคการออกแบบ แนวลักไก่ของATIจึงทำได้ง่ายกว่า ใช่ทรัพยากรท่อได้มีประโยชน์กว่า... เพราะในการประมวลข้อมูลแต่ล่ะครั้ง ไม่ได้หมายความว่า จะต้องใช้จำนวนท่อเต็มหมดทุกท่อ ในทุกครั้งไปเสมอไป เช่น การคำนวณข้อมูลก้อนเล็กๆก็ไม่เห็นจะต้องใช้ 160 ท่อ อาจคำนวณหมดเพียงใช้ 80ท่อ ใน1รอบนาฬิกา... เห็นเช่นนี้แล้ววิศวะกรATI/AMDก็เลย บรรลุมรรคผลว่า เราทำท่อ(ในแต่ล่ะชุด)แค่พอสมควรก็เพียงพอแล้ว(ไม่ต้องทำท่อรวดเดียวมากถลมถลายแบบ nVIDIA ให้ยุงยากและแพง)

    นี่ล่ะคือที่มาของแนวคิด "ท่อ" Unified Shaders ของ ATI/AMD เขานะ...เอานะ...จบนะ



    งั่นมาต่อที่การคำนวณ Shaders ของ GPU ATI กันดีกว่า..
    ยกตัวอย่าง เช่น HD5870 สเปคของมันคือ

    HD5870
    - มี Unified Shaders = 320units x 5ชุด = รวม 1600units
    - มี Texture mapping unit = 80 units
    - มี Render Output unit = 32 units
    - GPU มีความเร็วคล๊อกที่ = 850 MHz

    เราจะคำนวนประสิทธิภาพได้ดังนี้
    - การหาค่า Pixel Fillrate หรือ จำนวณเม็ดPixelที่ประมวลผลได้สูงสุด... คำนวณได้โดยเอา Render Output unit x คล๊อกGPU = 32 x 850 = 27,200Mpixel/s หรือแปลงหน่วยเป็น 27.2Gpixel/s นั้นเอง

    - การหาค่า Texturel Fillrate หรือ จำนวณพื้นผิวที่ประมวลผลแมปกันได้มากที่สุด... คำนวณได้โดยเอา Texture mapping unit x คล๊อกGPU = 80 x 850 = 68,000Mtexture/s หรือ แปลงหน่วยเป็น 68.0Mtexture/s นั้นเอง

    - การหาค่า FLOPS หรือ อัตราการประมวลผลเลขเชิงทศนิยมสูงสุด... คำนวณได้โดยเอา Unified Shaders(ในแต่ละชุด) x คล๊อกGPU = 320 x 850 = 272,000 หรือแปลงหน่วยเป็น 2720 GFLOPS นั้นเอง

    (หมายเหตุ : ผมยัง งงๆ ว่ามันแปลงหลักเป็น Giga อย่างไงถึงได้ 2720 GFLOPS เพราะเลข 272,000มันควรมีหนวยเป็นMaga มันน่าจะได้ 272Giga ซิ? อันนี้ผมงง ท่านอื่นโปรดสอนผมทีครับ)


    สำหรับการอธิบายเชิง Shaders ขอจบเท่านี้ครับ... ถ้าถกกันเรื่องเชิงประสิทธิภาพ ก็ค่อยอภิปลายตอบไปตอบมากันไปนะครับ
    Last edited by Dokmai; 15 Oct 2010, 04:40:57. Reason: แก้คำผิด

    Comment


    • #3
      ท่าน ช่วยอธิบายทีครับ ผมสงไสเวลาดูตารางมัน***ง กันมากเลย

      Comment


      • #4
        5870 GFLOP หาได้จาก 1600*850*2

        Comment


        • #5
          --* ผมอยากทราบตอนนี้ ในราคาเดียวกัน เทียบประสิทธิภาพ ค่ายไหน คุ้มกว่ากัน

          Comment


          • #6
            Originally posted by beautyless View Post
            5870 GFLOP หาได้จาก 1600*850*2
            อืม..น่าจะใช่ๆ 1600*850*2 = 2720000 เมกา = 2720 กิกา เออ...นะๆ มีReferanceไม๊... ผมขอหาReferanceอีกนิดนึง เดี๊ยวจะได้เอาไปแก้ที่ผมตอบไปครับ

            ว่าแต่ 1600*850*2 ... ทำไมตั้งคูณ2ล่ะ คูณ2มาจากไหน

            แต่ขอบคุณครับ ขอบคุณอย่างสูงครับ
            Last edited by Dokmai; 14 Oct 2010, 23:21:53.

            Comment


            • #7
              Originally posted by NoOdlEz View Post
              --* ผมอยากทราบตอนนี้ ในราคาเดียวกัน เทียบประสิทธิภาพ ค่ายไหน คุ้มกว่ากัน

              7-8 K ตอนนี้ก็เอา GTX460 1GB ดีที่สุด
              ถ้าไม่คิดอะไรกับ ATI ก็ควรรอนะ HD6870 อีกแค่อาทิตย์เดียว
              เห็นว่าแรงเท่ากับตัว 12900 บาทในราคา แค่ 7-9 k

              Comment


              • #8
                เป็นข้อมูลที่มีประโยชน์มากเลยครับ

                ถ้างั้น GTX 480 ก็จะมี 480 Unit เต็มๆไม่มีการหารหรือเปล่าครับ

                Comment


                • #9
                  มาอีท่านี้อีกแหละ
                  คำถามยอดนิยม อันไหนประสิทธิภาพคุ้มกว่ากัน
                  คำตอบยอดนิยม gtx460 470 480

                  Comment


                  • #10
                    จดๆ

                    Comment


                    • #11
                      Originally posted by beautyless View Post
                      7-8 K ตอนนี้ก็เอา GTX460 1GB ดีที่สุด
                      ถ้าไม่คิดอะไรกับ ATI ก็ควรรอนะ HD6870 อีกแค่อาทิตย์เดียว
                      เห็นว่าแรงเท่ากับตัว 12900 บาทในราคา แค่ 7-9 k
                      ว่าจะยืมเงินห้องมาซื้อ อยุ่

                      Comment


                      • #12
                        Originally posted by Dokmai View Post
                        โอ๊ย...อธิบายกันตายเลย พิมพ์ลงกระกาษ A3 ก็ไม่พอ..

                        (เอาแบบอย่างย่อนะ)

                        ถ้าเราพูดเฉยๆว่า shader unit มันมีหลักอยู่ 3 ตัวครับ
                        - Process Shaders(บางคนจะเรียก Unified Shaders) จะเรียกว่า Shaders อัฐประโยชน์ก็ได้ การประมวลVertex,Geometry,Pixel,GPGPU,FLOP,CUDA,OpenCL,DirectX,OpenGL อะไรจิปาถะที่ว่าจะใช้การ์ดจอเป็นสมอง ก็อยู่ในส่วนนี้หมดเลย (แบ่งๆกันใช้, ประยุกต์กันใช้)

                        - Texture mapping unit - ประมวลผลเมื่อแมปพื้นผิว

                        - Render Output unit(ROP) - เรนเดอร์ทุกอย่างร่วมให้เป็นภาพ


                        คราวนี้ที่ถามว่า nVIDIA มี Shaders น้อยกว่า AMD นั้น... มันต้องมองให้ถูกที่ครับ
                        - ถ้าเรามองที่ Process Shaders หรือ Unified Shaders อันนี้จริงว่า nVIDIA(เหมือน)มีน้อยกว่า แต่อย่าลืมว่า Unified Shaders ของ ATI มันคือการเล่นกล

                        - แต่ถ้าเรามองที่ Texture กับ ROP ซึ่งสองส่วนนี้มีผลกับประสิทธิภาพของเกม 3มิติ เป็นอย่างมาก... อันนี้ ในการ์ดระดับเดียวกัน nVIDIA มักมีมากกว่านะครับ



                        แล้วที่ Unified Shaders ของ ATI ต้องจับหารล่ะ?
                        ถ้าจะพูดในเชิงสถาปัติ ผมก็ไม่รู้ลึกขนาดนั้น(ได้แต่อ่านผ่านๆตา แต่ไม่ค่อยเข้าหัวเลย) แต่ตามภาษาพูดที่เรามักพูดกัน ภายในGPUของATIจะมีจัดสรรอยู่ Unified Shaders จำนวณ5ชุดครับ เช่น ในHD4870 ก็คือ 160unit x 5ชุด = 800unit (ผมก็มักพูดภาษาโบราณว่า 800ท่อ)... ถ้าเป็น HD5870 ก็คือ 320unit x 5ชุด = 1600unit
                        แต่เนื้องจาก Unified Shaders มันแบ่งเป็นชุดๆ ในการประมวลผลแต่ล่ะอย่างนั้น จะใช้ได้แค่ที่ล่ะ1ชุดเท่านั้น (คำนวณอย่างนึ่งจะใช้มันพร้อมกันหมด 5 ชุดเลยไม่ได้) ภาษาพูดเราเลยมักเรียกว่า เช่น HD4870 มีUnified Shadersแท้ 160unit (ภาษาผมก็จะเรียกว่า มีท่อแท้160ท่อ)... ซึ่งว่าๆไปแล้ว ถ้าต้องประมวลผลข้อมูลอย่างนึงอย่างใด1อย่าง HD4870 ก็จะเหมือนมีแค่ 160unit เท่านั้น(เมื่อเทียบกับUnitในแบบ nVIDIA)

                        (ผมขออนุญาติพิมพ์ว่า "ท่อ" นะครับ เพราะพิมพ์ง่ายกว่า Unit )

                        แต่การที่ ATI แบ่งเป็นชุดหลายๆชุด จึงทำให้GPUสามารถประมวลผลข้อมูลที่ต่างๆกันได้ พร้อมกัน 5 อย่าง... จึงทำให้โดยรวมแล้วถึงแม้เทียบกันใน1ชุดจะน้อยกว่า แต่การทำงานแบบคู่ขนานกันไปช่วยเพิ่มประสิทธิภาพทัดเทียบ ท่อเยอะๆในแบบnVIDIA ได้


                        ทำไมATIถึงทำท่อเป็นชุดๆล่ะ...?
                        เราอาจฟังดูแล้วว่าการแบ่ง Unified Shaders เป็นชุดๆนั้น มันดูน่าจะยุ่งยาก... แต่ความจริงมันทำได้ง่ายกว่าครับ เพราะการออกแบบวงจรให้มี Unified Shaders เยอะๆ ให้พวกมันทั้งหมดทำงานสัมพันธ์กันได้นั้นมันยากกว่า และต้องให้สามารถวิ่งที่ความเร็วคล๊อกสูงๆได้อีก ยิ่งยากเข้าไปใหญ่แลย (เหตุนี้คล๊อกของnVIDIAจึงมักน้อยกว่าATIไง ในการ์ดจอระดับเดียวกันนะ)

                        เทคนิคการออกแบบ แนวลักไก่ของATIจึงทำได้ง่ายกว่า ใช่ทรัพยากรท่อได้มีประโยชน์กว่า... เพราะในการประมวลข้อมูลแต่ล่ะครั้ง ไม่ได้หมายความว่า จะต้องใช้จำนวนท่อเต็มหมดทุกท่อ ในทุกครั้งไปเสมอไป เช่น การคำนวณข้อมูลก้อนเล็กๆก็ไม่เห็นจะต้องใช้ 160 ท่อ อาจคำนวณหมดเพียงใช้ 80ท่อ ใน1รอบนาฬิกา... เห็นเช่นนี้แล้ววิศวะกรATI/AMDก็เลย บรรลุมรรคผลว่า เราทำท่อ(ในแต่ล่ะชุด)แค่พอสมควรก็เพียงพอแล้ว(ไม่ต้องทำท่อรวดเดียวมากถลมถลายแบบ nVIDIA ให้ยุงยากและแพง)

                        นี่ล่ะคือที่มาของแนวคิด "ท่อ" Unified Shaders ของ ATI/AMD เขานะ...เอานะ...จบนะ



                        งั่นมาต่อที่การคำนวณ Shaders ของ GPU ATI กันดีกว่า..
                        ยกตัวอย่าง เช่น HD5870 สเปคของมันคือ

                        HD5870
                        - มี Unified Shaders = 320units x 5ชุด = รวม 1600units
                        - มี Texture mapping unit = 80 units
                        - มี Render Output unit = 32 units
                        - GPU มีความเร็วคล๊อกที่ = 850 MHz

                        เราจะคำนวนประสิทธิภาพได้ดังนี้
                        - การหาค่า Pixel Fillrate หรือ จำนวณเม็ดPixelที่ประมวลผลได้สูงสุด... คำนวณได้โดยเอา Render Output unit x คล๊อกGPU = 32 x 850 = 27,200Mpixel/s หรือแปลงหน่วยเป็น 27.2Gpixel/s นั้นเอง

                        - การหาค่า Texturel Fillrate หรือ จำนวณพื้นผิวที่ประมวลผลแมปกันได้มากที่สุด... คำนวณได้โดยเอา Texture mapping unit x คล๊อกGPU = 80 x 850 = 68,000Mtexture/s หรือ แปลงหน่วยเป็น 68.0Mtexture/s นั้นเอง

                        - การหาค่า FLOPS หรือ อัตราการประมวลผลเลขเชิงทศนิยมสูงสุด... คำนวณได้โดยเอา Unified Shaders(ในแต่ละชุด) x คล๊อกGPU = 320 x 850 = 272,000 หรือแปลงหน่วยเป็น 2720 GFLOPS นั้นเอง

                        (หมายเหตุ : ผมยัง งงๆ ว่ามันแปลงหลักเป็น Giga อย่างไงถึงได้ 2720 GFLOPS เพราะเลข 272,000มันควรมีหนวยเป็นMaga มันน่าจะได้ 272Giga ซิ? อันนี้ผมงง ท่านอื่นโปรดสอนผมทีครับ)


                        สำหรับการอธิบายเชิง Shaders ขอจบเท่านี้ครับ... ถ้าถกกันเรื่องเชิงประสิทธิภาพ ก็ค่อยอภิปลายตอบไปตอบมากันไปนะครับ



                        ขอบคุณมากๆเลยครับ เป็นประโยชน์มากกกกกก

                        Comment


                        • #13
                          ดันๆครับ
                          คนที่ไม่รุจะได้ดู และอีกอยาก ไม่ต้องมานั่งถามกันบ่อย สงสารคนตอบ

                          Comment


                          • #14
                            ดันๆ mod ปักหมุดก็ดีครับ

                            Comment


                            • #15
                              ขนาดย่อๆ นะเนี่ย

                              Comment

                              Working...
                              X