Announcement

Collapse
No announcement yet.

NVIDIA Will Fully Implement Async Compute Via Driver Support

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

  • NVIDIA Will Fully Implement Async Compute Via Driver Support

    And they've got Oxide from Ashes of Singularity to confirm that. Oxide’s developer “Kollock” wrote that NVIDIA has not fully implemented yet Async Compute in its driver...


    NVIDIA Will Fully Implement Async Compute Via Driver Support
    by Hilbert Hagedoorn on: 09/05/2015 07:07 PM | Source | 20 comment(s)

    And they've got Oxide from Ashes of Singularity to confirm that. Oxide?s developer ?Kollock? wrote that NVIDIA has not fully implemented yet Async Compute in its driver, Oxide is working closely with them in order to achieve that.

    ?We actually just chatted with Nvidia about Async Compute, indeed the driver hasn?t fully implemented it yet, but it appeared like it was. We are working closely with them as they fully implement Async Compute. We?ll keep everyone posted as we learn more.?

    From the looks of it, NVIDIA will ? at least for now ? rely on a software/hardware solution for Async Compute instead of a fully hardware one.

    As Overclock?s Mahigan explained:

    ?The Asynchronous Warp Schedulers are in the hardware. Each SMM (which is a shader engine in GCN terms) holds four AWSs. Unlike GCN, the scheduling aspect is handled in software for Maxwell 2. In the driver there?s a Grid Management Queue which holds pending tasks and assigns the pending tasks to another piece of software which is the work distributor. The work distributor then assigns the tasks to available Asynchronous Warp Schedulers. It?s quite a few different ?parts? working together. A software and a hardware component if you will.

    With GCN the developer sends work to a particular queue (Graphic/Compute/Copy) and the driver just sends it to the Asynchronous Compute Engine (for Async compute) or Graphic Command Processor (Graphic tasks but can also handle compute), DMA Engines (Copy). The queues, for pending Async work, are held within the ACEs (8 deep each)? and ACEs handle assigning Async tasks to available compute units.

    Simplified?

    Maxwell 2: Queues in Software, work distributor in software (context switching), Asynchronous Warps in hardware, DMA Engines in hardware, CUDA cores in hardware.
    GCN: Queues/Work distributor/Asynchronous Compute engines (ACEs/Graphic Command Processor) in hardware, Copy (DMA Engines) in hardware, CUs in hardware.?

    ตามนั้น

  • #2
    Async Compute เท่าที่อ่านๆดู Maxwell ตายคาตรงนี้แต่ Kepler รอด
    สงสัยไหม ดูจากลักษณะการทำงานตัวนี้คล้ายๆกับ double precision เลยซึ่งใน Maxwell อ่อนสุดๆในส่วนนี้อ่อนกว่า Kepler อีกต่างหาก 770 เทสเกมนี้กิน 970 เรียบนะครับ
    ผมว่าต่อให้ปรับ Driver อย่างมากก็ on par กับ Dx11 ที่ต้องแก้เพราะมัน FPS ลดนี่แหละ
    ถ้าแก้ใน driver ที่ได้เฮน่าจะเป็น 780Ti มากกว่า
    ผลเทสตัวนี้ออกมาเล่นเอา Titan ผมขายออกในราคาเพิ่มขึ้นเลย

    MAXWELL DOES SUPPORT ASYNC SHADERS/COMPUTE. There is a slight gain. But it software emulates it.
    เอาง่ายๆ Nvidia ไม่มี Native support สำหรับ ASYNC SHADERS/COMPUTE ทุกอย่างจำลองเอา
    ซึ่งแทบจะไม่ได้อะไรเพิ่มขึ้นเลย เคยบอกนานแล้วว่าผู้พัฒนาบอกว่าไม่มี Native support ต่างจาก AMD ที่ ASYNC SHADERS/COMPUTE นั้น Native support
    Last edited by Khow; 6 Sep 2015, 05:43:17.

    Comment


    • #3
      ถึงจะทำ ของเทียม แต่ผมก็รอลุ้นผล ผมดันใช้ Maxwell อยู่ T_T

      Comment


      • #4
        เกมไรใช้ Async ถ้าเกมวางแผนก็ไม่สนใจเพราะไม่เคยเล่นเลย

        Comment


        • #5
          รอดูไปก่อนเพราะไม่รู้จะหวังอะไรมากนัก ปัจจุบันที่อัพสเปคมานี่แทบจะเรียกว่าเพราะอยากอัพมากกว่าเหตุผลเรื่องการเอาไปเล่นเกมส์ด้วยซ้ำ เล่นเกมส์น้อยลงทุกทีแต่ความอยากในการตามสเปคไม่ได้น้อยลงตาม

          Comment


          • #6
            Originally posted by tack999 View Post
            เกมไรใช้ Async ถ้าเกมวางแผนก็ไม่สนใจเพราะไม่เคยเล่นเลย
            อนาคตต้องมีใช้เยอะขึ้นแน่เพราะมันเป็น function ใน dx12_0

            Comment


            • #7
              แล้วPascal มันจะรองรับ Async ไหมครับ

              Comment


              • #8
                Originally posted by SuppaBach View Post
                แล้วPascal มันจะรองรับ Async ไหมครับ
                รองรับครับ เพราะเป็นมาตาฐานของ dx12

                Comment


                • #9
                  คือ Maxwell ที่มันทำงานได้ดีขึ้นกว่า Kepler ประมาณ 35% เมื่อเทียบ Core ต่อ Core นั้น ก็เนื่องมาจากที่ Nvidia ออกแบบ Scheduler ใหม่ให้ GPU มัน Utilize งานได้เต็มที่ 100% ซึ่ง ตัว Scheduler ทำหน้าที่แบ่งงานใหญ่ให้เล็กลงแล้วกระจายไปทำงานในแตละ Processor แบบขนานกัน มันทำหน้าที่คล้าย Async Shader/Compute อยู่แล้ว ตัว Stream processor มันไม่ได้ว่างงานแล้ว จะใช้เทคนิค Async ไปก็ไม่ค่อยมีผล เพราะ Stream Processor มันก็ทำงานเต็มที่แล้ว
                  คือ Asynchronous มันเป็นเทคนิคทาง Software ไม่ไช่ Hardware การที่ Nvidia มี Scheduler Hardware ทำงานนี้แทน แล้ว DX12 ให้โปรแกรมเมอร์มาทำ Async Call เองอีก มันจึงเป็นการสร้าง Thread ซ้ำซ้อนเกิด Overhead ทำให้ประสิทธิภาพตกได้ แทนที่จะดีขึ้น
                  ตัวแปรมันอยู่ที่ว่า Nvidia สามารถทำการ Bypass ตัว Scheduler ของตัวเองผ่านทาง Driver ได้หรือเปล่า ถ้าได้ ประสิทธิภาพก็อาจจะได้เพิ่มมานิดหน่อย (เพราะของเก่ามันรีดเกือบเต็มที่แล้ว) เพราะการสั่งงานโดยโปรแกรมเมอร์เอง กับการทำงานแบบ Auto ใน Hardware ยังไงแบบสั่งงานเองก็จะได้ประสิทธิภาพตามใจโปรแกรมเมอร์มากกว่า
                  แต่ถ้าไม่ได้ ทำแค่ API มาหุ้ม(Wrapper)ตัว Scheduler อีกที (อย่างในข่าว) ผมว่าประสิทธิภาพมันก็ไม่ได้กระโดด เพราะความซ้ำซ้อนมันยังมีอยู่ ก็ต้องหวังพึ่งรุ่นต่อไปอย่าง Pascal ให้มัน Bypass ได้ ไม่ได้ทิ้งไปเลยเพื่อให้ใช้งานได้ดีกับเกมที่ใช้ DX 9/10/11 ด้วย ไม่งั้นก็ถอยหลังลงคลองอุตสาห์คิดมาแล้วใช้งานได้ดีด้วย เสียดาย

                  งานนี้ผมว่าผิดที่ Nvidia มันคิดล้ำหน้าเกินไป พอ DX12 โยนการจัดสรรทรัพยากรณ์ใช้งานให้ Programmer ทำเองหมด ทั้ง Resource Binding และการจัดการ Thread จึงมีอะไรแปลกๆเกิดขึ้น
                  ต่างจาก AMD ซุึ่ง Software กับ Hardware ค่อนข้างตรงไปตรงมา จึงได้เปรียบ เพราะไม่มีอะไรมาขวางระว่างโปรแกรมเมอร์กับ Hardware จึงทำงานได้เต็มที่ การที่ Nvidia ทำ Wrapper มาแบบนี้ ผมว่าเพื่อทำให้มัน Compatibility กับ DX12 มากกว่าเน้นประสิทธิภาพ คือถ้าเกมไหนเขียน Async มาก็ไม่ Error ฉันรองรับอะไรเทือกนี้
                  แต่จะดีขึ้นแค่ไหนก็รอดูต่อไป
                  Last edited by kaitom; 6 Sep 2015, 12:03:15.

                  Comment


                  • #10
                    Originally posted by kaitom View Post
                    คือ Maxwell ที่มันทำงานได้ดีขึ้นกว่า Kepler ประมาณ 35% เมื่อเทียบ Core ต่อ Core นั้น ก็เนื่องมาจากที่ Nvidia ออกแบบ Scheduler ใหม่ให้ GPU มัน Utilize งานได้เต็มที่ 100% ซึ่ง ตัว Scheduler ทำหน้าที่แบ่งงานใหญ่ให้เล็กลงแล้วกระจายไปทำงานในแตละ Processor แบบขนานกัน มันทำหน้าที่คล้าย Async Shader/Compute อยู่แล้ว ตัว Stream processor มันไม่ได้ว่างงานแล้ว จะใช้เทคนิค Async ไปก็ไม่ค่อยมีผล เพราะ Stream Processor มันก็ทำงานเต็มที่แล้ว
                    คือ Asynchronous มันเป็นเทคนิคทาง Software ไม่ไช่ Hardware การที่ Nvidia มี Scheduler Hardware ทำงานนี้แทน แล้ว DX12 ให้โปรแกรมเมอร์มาทำ Async Call เองอีก มันจึงเป็นการสร้าง Thread ซ้ำซ้อนเกิด Overhead ทำให้ประสิทธิภาพตกได้ แทนที่จะดีขึ้น
                    ตัวแปรมันอยู่ที่ว่า Nvidia สามารถทำการ Bypass ตัว Scheduler ของตัวเองผ่านทาง Driver ได้หรือเปล่า ถ้าได้ ประสิทธิภาพก็อาจจะได้เพิ่มมานิดหน่อย (เพราะของเก่ามันรีดเกือบเต็มที่แล้ว) เพราะการสั่งงานโดยโปรแกรมเมอร์เอง กับการทำงานแบบ Auto ใน Hardware ยังไงแบบสั่งงานเองก็จะได้ประสิทธิภาพตามใจโปรแกรมเมอร์มากกว่า
                    แต่ถ้าไม่ได้ ทำแค่ API มาหุ้ม(Wrapper)ตัว Scheduler อีกที (อย่างในข่าว) ผมว่าประสิทธิภาพมันก็ไม่ได้กระโดด เพราะความซ้ำซ้อนมันยังมีอยู่ ก็ต้องหวังพึ่งรุ่นต่อไปอย่าง Pascal ให้มัน Bypass ได้ ไม่ได้ทิ้งไปเลยเพื่อให้ใช้งานได้ดีกับเกมที่ใช้ DX 9/10/11 ด้วย ไม่งั้นก็ถอยหลังลงคลองอุตสาห์คิดมาแล้วใช้งานได้ดีด้วย เสียดาย

                    งานนี้ผมว่าผิดที่ Nvidia มันคิดล้ำหน้าเกินไป พอ DX12 โยนการจัดสรรทรัพยากรณ์ใช้งานให้ Programmer ทำเองหมด ทั้ง Resource Binding และการจัดการ Thread จึงมีอะไรแปลกๆเกิดขึ้น
                    ต่างจาก AMD ซุึ่ง Software กับ Hardware ค่อนข้างตรงไปตรงมา จึงได้เปรียบ เพราะไม่มีอะไรมาขวางระว่างโปรแกรมเมอร์กับ Hardware จึงทำงานได้เต็มที่ การที่ Nvidia ทำ Wrapper มาแบบนี้ ผมว่าเพื่อทำให้มัน Comparability กับ DX12 มากกว่าเน้นประสิทธิภาพ คือถ้าเกมไหนเขียน Async มาก็ไม่ Error ฉันรองรับอะไรเทือกนี้
                    แต่จะดีขึ้นแค่ไหนก็รอดูต่อไป
                    สาระ +100

                    Comment


                    • #11
                      Originally posted by kaitom View Post
                      คือ Maxwell ที่มันทำงานได้ดีขึ้นกว่า Kepler ประมาณ 35% เมื่อเทียบ Core ต่อ Core นั้น ก็เนื่องมาจากที่ Nvidia ออกแบบ Scheduler ใหม่ให้ GPU มัน Utilize งานได้เต็มที่ 100% ซึ่ง ตัว Scheduler ทำหน้าที่แบ่งงานใหญ่ให้เล็กลงแล้วกระจายไปทำงานในแตละ Processor แบบขนานกัน มันทำหน้าที่คล้าย Async Shader/Compute อยู่แล้ว ตัว Stream processor มันไม่ได้ว่างงานแล้ว จะใช้เทคนิค Async ไปก็ไม่ค่อยมีผล เพราะ Stream Processor มันก็ทำงานเต็มที่แล้ว
                      คือ Asynchronous มันเป็นเทคนิคทาง Software ไม่ไช่ Hardware การที่ Nvidia มี Scheduler Hardware ทำงานนี้แทน แล้ว DX12 ให้โปรแกรมเมอร์มาทำ Async Call เองอีก มันจึงเป็นการสร้าง Thread ซ้ำซ้อนเกิด Overhead ทำให้ประสิทธิภาพตกได้ แทนที่จะดีขึ้น
                      ตัวแปรมันอยู่ที่ว่า Nvidia สามารถทำการ Bypass ตัว Scheduler ของตัวเองผ่านทาง Driver ได้หรือเปล่า ถ้าได้ ประสิทธิภาพก็อาจจะได้เพิ่มมานิดหน่อย (เพราะของเก่ามันรีดเกือบเต็มที่แล้ว) เพราะการสั่งงานโดยโปรแกรมเมอร์เอง กับการทำงานแบบ Auto ใน Hardware ยังไงแบบสั่งงานเองก็จะได้ประสิทธิภาพตามใจโปรแกรมเมอร์มากกว่า
                      แต่ถ้าไม่ได้ ทำแค่ API มาหุ้ม(Wrapper)ตัว Scheduler อีกที (อย่างในข่าว) ผมว่าประสิทธิภาพมันก็ไม่ได้กระโดด เพราะความซ้ำซ้อนมันยังมีอยู่ ก็ต้องหวังพึ่งรุ่นต่อไปอย่าง Pascal ให้มัน Bypass ได้ ไม่ได้ทิ้งไปเลยเพื่อให้ใช้งานได้ดีกับเกมที่ใช้ DX 9/10/11 ด้วย ไม่งั้นก็ถอยหลังลงคลองอุตสาห์คิดมาแล้วใช้งานได้ดีด้วย เสียดาย

                      งานนี้ผมว่าผิดที่ Nvidia มันคิดล้ำหน้าเกินไป พอ DX12 โยนการจัดสรรทรัพยากรณ์ใช้งานให้ Programmer ทำเองหมด ทั้ง Resource Binding และการจัดการ Thread จึงมีอะไรแปลกๆเกิดขึ้น
                      ต่างจาก AMD ซุึ่ง Software กับ Hardware ค่อนข้างตรงไปตรงมา จึงได้เปรียบ เพราะไม่มีอะไรมาขวางระว่างโปรแกรมเมอร์กับ Hardware จึงทำงานได้เต็มที่ การที่ Nvidia ทำ Wrapper มาแบบนี้ ผมว่าเพื่อทำให้มัน Comparability กับ DX12 มากกว่าเน้นประสิทธิภาพ คือถ้าเกมไหนเขียน Async มาก็ไม่ Error ฉันรองรับอะไรเทือกนี้
                      แต่จะดีขึ้นแค่ไหนก็รอดูต่อไป
                      ถึงว่า dx11 ค่ายเขียว แรง สุดๆ เป็นเพราะ แบบนี้นี่เอง

                      Comment


                      • #12
                        คอยดูละกันถ้าการ์ดเขียวมันไม่พร้อมจะมีเกมระดับ AAA เกมไหนใช้ออฟชั่นที่การ์ดมันไม่รองรับมั้งเห็นเอาตั้งไปยัดไม่ให้ใช้หมด

                        Comment


                        • #13
                          Originally posted by kaitom View Post
                          งานนี้ผมว่าผิดที่ Nvidia มันคิดล้ำหน้าเกินไป พอ DX12 โยนการจัดสรรทรัพยากรณ์ใช้งานให้ Programmer ทำเองหมด ทั้ง Resource Binding และการจัดการ Thread จึงมีอะไรแปลกๆเกิดขึ้น
                          ต่างจาก AMD ซุึ่ง Software กับ Hardware ค่อนข้างตรงไปตรงมา จึงได้เปรียบ เพราะไม่มีอะไรมาขวางระว่างโปรแกรมเมอร์กับ Hardware จึงทำงานได้เต็มที่ การที่ Nvidia ทำ Wrapper มาแบบนี้ ผมว่าเพื่อทำให้มัน Compatibility กับ DX12 มากกว่าเน้นประสิทธิภาพ คือถ้าเกมไหนเขียน Async มาก็ไม่ Error ฉันรองรับอะไรเทือกนี้
                          แต่จะดีขึ้นแค่ไหนก็รอดูต่อไป
                          ผมว่า nvidia ไม่ได้คิดล้ำหน้าหรอกครับ แต่ nvidia พยายามจะรีดกำลังจาก dx11 มากกว่า และ maxwell ก็ design ไปเพื่อการนั้น และการที่ต้องพึ่งพา driver มากทำไห้ nvidia เองสามารถเพิ่มประสิทธิภาพการทำงานของ gpuในแต่ละเกมได้ดียิ่งขึ้นโดยเฉพาะเกมที่ใช้ GameWork API พอมาเจอ dx12 ซึ่งลดการพึ่งพา driver maxwell เลยเจอปัญหาเพราะ nvidia เอา HW Scheduler ออก (ถ้าจำไม่ผิดมีใน kepler) เพื่อที่จะรีดประสิทธิภาพและลดการกินไฟ เมื่อเกม engine ส่งงานไป เดิม dx11 จะมี driver คอยจัดการงานต่างๆไห้ถูกต้องก่อนจึงจะส่งไปไห้ dx11 จัดการต่อ พอมาเจอกับ dx12 ที่เกม engine ยิงยาวแทบจะคุยกับ gpu โดยตรงแล้ว คราวนี้พอ engine ป้อนงานไป แทนที่จะมีใครมาจัดการ schedule ไห้กลับไม่มี ผลบน dx12 ก็เลยอย่าที่เห็น

                          ผมว่าคนล้ำหน้าคือ amd มากกว่าล้ำจนลืมไปว่า gcn ออกมานั้นมันยังไม่มี low-level api บน pc เกมออกใหม่แทบจะ 100% นี่ dx11 ผลก็เลย gcn ทำงานไม่เต็มที่บน dx11 ( ACEs กินไฟฟรีๆเพราะ async ไม่ได้ถูกรองรับบน dx11 ผลคือ StreamProcessor ได้งานไม่เต็มที่ ถูกเปิดไว้ไห้กินไฟเสียเปล่าๆ amd ใส่ HW ACEs มาเพื่อการนี้) หมายถึงถ้าต้องการรีดประสอทธิภาพไห้เต็มต้องเขียนโค๊ดไห้ถูกฉโหลกกับ gcn เท่านั้น ในกรณี maxwell ต่อไห้เขียนโค๊ดไม่ถูกฉโหลกแต่ driver จะจัดการไห้มันถูกฉโหลกเอง ผลบน dx11 ก็อย่างที่เห็นกันนั้นแหละครับ

                          ขอโค้วอิตา Mahigan มาหน่อยแล้วกัน
                          On the nVIDIA side, only Maxwell 2, in theory, can handle mixed mode (1 Graphic and 31 Compute). The driver isn't working yet but nVIDIA are working on it.

                          The strength of GCN is in its ability to schedule many more threads per Compute Unit than anything on the nVIDIA side. GCN also relies on pure hardware scheduling (hence the higher power usage). This didn't make sense under DX11 but it makes a hell of a lot of sense for DX12.

                          Comment


                          • #14
                            Originally posted by bigtkman View Post
                            คอยดูละกันถ้าการ์ดเขียวมันไม่พร้อมจะมีเกมระดับ AAA เกมไหนใช้ออฟชั่นที่การ์ดมันไม่รองรับมั้งเห็นเอาตั้งไปยัดไม่ให้ใช้หมด
                            ผมละกลัวจริงตังค์ยิ่งหนาแถม support dev ดีกว่า amd อีก พวกเกม ps4 นี่ใช้ async กันแล้วพอร์ทมา dx12 นี่ง่ายแน่แต่ยากถ้าจะพอร์ทไป dx11
                            ยิ่งช่วงหลังมานี่เทรนการใช้ compute render มาแรงกำลังจะแซง shader render เพราะ dx12 นี่แหละ
                            เดิมนิยมแต่บน console เพราะข้อกำจัดด้าน hw dev เลยต้องรีดมันมาไห้หมด

                            Comment


                            • #15
                              ปัญหาใหญ่จริงๆมันอยู่ที่ dev ละงานนี้พอมี low-level api ลุ้นเอา dev จะขี้เกียจใช้ high ต่อหรือขยันใช้ low ติดตามชมกันต่อไป

                              -----------------------------------------------------------------------------
                              พอร์ทจาก PS4 มา DX12 ผมกลัวว่ามันจะไม่ง่ายอ่ะสิ ไม่รู้มีกี่ feature มีอะไรบ้าง เหมือนกันแค่ไหน

                              ช่วยขยายความ compute render กับ shader render นิดนึงครับ งง
                              Last edited by mathburn; 6 Sep 2015, 22:14:20.

                              Comment

                              Working...
                              X