Kiến trúc Pascal

Bách khoa toàn thư mở Wikipedia
Pascal

Pascal là tên mã cho một vi kiến trúc GPU được phát triển bởi Nvidia, là sự kế thừa cho kiến trúc Maxwell. Kiến trúc được giới thiệu lần đầu tiên vào tháng 4 năm 2016 cùng với sản phẩm Tesla P100 (GP100) vào ngày 5 tháng 4 năm 2016 và được sử dụng chủ yếu trong dòng sản phẩm GeForce 10, bắt đầu với sản phẩm GeForce GTX 1080 và GTX 1070 (cả hai đều sử dụng GPU GP104), được phát hành lần lượt vào ngày 17 tháng 5 năm 2016 và ngày 10 tháng 6 năm 2016. Pascal được sản xuất bằng quy trình FinFET 16 nm.

Kiến trúc được đặt theo tên của nhà toán học và vật lý học người Pháp vào thế kỷ 17, Blaise Pascal.

Vào ngày 18 tháng 3 năm 2019, Nvidia đã thông báo rằng trong một trình điều khiển vào tháng 4 năm 2019, họ sẽ kích hoạt DirectX Raytracing trên các thẻ dựa trên Pascal bắt đầu với GTX 1060 6 GB và trong các thẻ 16 series, một tính năng dành riêng cho RTX dựa trên Turing loạt đến thời điểm đó.[1]

Chi tiết[sửa | sửa mã nguồn]

Vào tháng 3 năm 2014, Nvidia tuyên bố rằng người kế nhiệm Maxwell sẽ là vi kiến trúc Pascal; công bố vào ngày 6 tháng 5 năm 2016 và phát hành vào ngày 27 tháng 5 năm 2016. Tesla P100 (chip GP100) có phiên bản kiến trúc Pascal khác so với GPU GTX (chip GP104). Các đơn vị trong GP104 có thiết kế giống Maxwell.[2]

Những cải tiến về kiến trúc của kiến trúc GP100 bao gồm:[3][4][5]

  • Trong Pascal, một SM (bộ xử lý đa luồng) bao gồm 128 lõi CUDA. Maxwell đóng gói 128, Kepler 192, Fermi 32 và Tesla chỉ có 8 lõi CUDA vào một SM; GP100 SM được phân chia thành hai khối xử lý, mỗi khối có 32 lõi CUDA chính xác đơn, bộ đệm lệnh, bộ lập lịch dọc, 2 đơn vị ánh xạ kết cấu và 2 đơn vị điều phối.
  • Khả năng tính toán CUDA 6.0.
  • Bộ nhớ băng thông cao 2 - một số thẻ có 16 GiB HBM2 trong bốn ngăn xếp với tổng số bus 4096 bit với băng thông bộ nhớ lên tới 720 GB / s.
  • Bộ nhớ hợp nhất - một kiến trúc bộ nhớ, trong đó CPU và GPU có thể truy cập cả bộ nhớ hệ thống chính và bộ nhớ trên card đồ họa với sự trợ giúp của công nghệ có tên là "Công cụ di chuyển trang".
  • NVLink - một bus băng thông cao giữa CPU và GPU và giữa nhiều GPU. Cho phép tốc độ truyền cao hơn nhiều so với tốc độ có thể đạt được bằng cách sử dụng PCI Express; ước tính cung cấp từ 80 đến 200   GB / s.[6][7]
  • Các phép toán dấu phẩy động 16 bit (FP16) (thông thường là "một nửa độ chính xác") có thể được thực thi với tốc độ gấp đôi tốc độ của các phép toán dấu phẩy động 32 bit ("độ chính xác đơn") [8] và các phép toán dấu phẩy động 64 bit (thông thường "độ chính xác kép") được thực hiện ở một nửa tốc độ của các phép toán dấu phẩy động 32 bit.[9]
  • Nhiều thanh ghi hơn - gấp đôi số lượng thanh ghi trên mỗi lõi CUDA so với Maxwell.
  • Thêm bộ nhớ chia sẻ.
  • Hệ thống lập kế hoạch cân bằng tải động.[10] Điều này cho phép bộ lập lịch tự động điều chỉnh lượng GPU được chỉ định cho nhiều tác vụ, đảm bảo GPU vẫn bão hòa với công việc trừ khi không còn công việc nào có thể được phân phối một cách an toàn để phân phối.[10] Do đó, Nvidia đã kích hoạt tính toán không đồng bộ một cách an toàn trong trình điều khiển của Pascal.[10]
  • Cấp độ hướng dẫn và cấp độ chủ đề.[11]

Những cải tiến về kiến trúc của kiến trúc GP104 bao gồm:[2]

  • Khả năng tính toán CUDA 6.1.
  • GDDR5X - chuẩn bộ nhớ mới hỗ trợ tốc độ truyền dữ liệu 10Gbit / s, bộ điều khiển bộ nhớ được cập nhật.[12]
  • Đồng thời Đa chiếu - tạo ra nhiều phép chiếu của một luồng hình học duy nhất, khi nó đi vào công cụ SMP từ các giai đoạn đổ bóng ngược dòng.[13]
  • Cổng hiển thị 1.4, HDMI 2.0b.
  • Nén màu Delta thế hệ thứ tư.
  • Giao diện SLI nâng cao - Giao diện SLI có băng thông cao hơn so với các phiên bản trước.
  • Tính năng PureVideo Đặt giải mã video phần cứng H HEVC Main10 (10 bit), Main12 (12 bit) và giải mã phần cứng VP9.
  • Hỗ trợ HDCP 2.2 để phát và phát nội dung được bảo vệ 4K DRM (Maxwell GM200 và GM204 thiếu hỗ trợ HDCP 2.2, GM206 hỗ trợ HDCP 2.2).[14]
  • NVENC HEVC Main10 mã hóa phần cứng 10 bit.
  • GPU Boost 3.0.
  • Hướng dẫn cấp trước.[11] Trong các tác vụ đồ họa, trình điều khiển hạn chế điều này đối với quyền ưu tiên ở mức pixel vì các tác vụ pixel thường hoàn thành nhanh chóng và chi phí cho việc thực hiện quyền ưu tiên ở mức pixel thấp hơn nhiều so với thực hiện quyền ưu tiên ở mức hướng dẫn.[11] Nhiệm vụ tính toán có được quyền ưu tiên cấp độ luồng hoặc cấp độ hướng dẫn.[11] Ưu tiên cấp độ hướng dẫn là hữu ích, chỉ bởi vì các tác vụ tính toán có thể mất nhiều thời gian để hoàn thành và không có gì đảm bảo khi một tác vụ tính toán kết thúc, do đó trình điều khiển kích hoạt tính ưu tiên mức hướng dẫn rất đắt cho các tác vụ này.[11]

Tổng quan[sửa | sửa mã nguồn]

Một chip được phân vùng thành Cụm xử lý đồ họa (GPC). Đối với chip GP104, GPC bao gồm 5 SM.

Truyền phát bộ đa xử lý "Pascal"[sửa | sửa mã nguồn]

"Bộ đa xử lý truyền phát" tương ứng với Đơn vị tính toán của AMD. SMP bao gồm 128 ALU có độ chính xác đơn ("lõi CUDA") trên chip GP104 và 64 ALU có độ chính xác đơn trên chip GP100.

Cái mà AMD gọi là CU (đơn vị tính toán) có thể được so sánh với cái mà Nvidia gọi là SM (bộ xử lý đa luồng). Trong khi tất cả các phiên bản CU bao gồm 64 bộ xử lý đổ bóng (tức là 4 Đơn vị Vector SIMD (mỗi chiều rộng 16 làn) = 64), Nvidia (thường gọi các bộ xử lý đổ bóng là "lõi CUDA") đã thử nghiệm với các số rất khác nhau:

  • Trên Tesla 1 SM kết hợp 8 bộ xử lý đổ bóng chính xác đơn (FP32)
  • Trên Fermi 1 SM kết hợp 32 bộ xử lý đổ bóng có độ chính xác đơn (FP32)
  • Trên Kepler 1 SM kết hợp bộ xử lý đổ bóng 192 độ chính xác đơn (FP32) và 64 đơn vị độ chính xác kép (ít nhất là GPU GK110)
  • Trên Maxwell 1 SM kết hợp bộ xử lý đổ bóng 128 độ chính xác đơn (FP32)
  • Trên Pascal, nó phụ thuộc:
    • Trên GP100 1 SM kết hợp 64 bộ xử lý đổ bóng có độ chính xác đơn (FP32) và 32 độ chính xác kép (FP64) cung cấp tỷ lệ 2: 1 của thông lượng chính xác từ đơn đến kép. GP100 sử dụng các lõi FP32 linh hoạt hơn có thể xử lý một số chính xác đơn hoặc hai số chính xác một nửa trong một vectơ hai phần tử.[15] Nvidia dự định sẽ giải quyết việc tính toán các thuật toán liên quan đến việc học sâu với những thuật toán đó.
    • Trên GP104 1 SM kết hợp 128 ALU có độ chính xác đơn, 4 ALU có độ chính xác kép cung cấp tỷ lệ 32: 1 và một ALU chính xác một nửa có chứa một vectơ hai phao có độ chính xác một nửa có thể thực hiện cùng một lệnh trên cả hai phao tỷ lệ 64: 1 nếu cùng một hướng dẫn được sử dụng trên cả hai yếu tố.

Polymorph Engine 4.0[sửa | sửa mã nguồn]

Polymorph Engine phiên bản 4.0 là đơn vị chịu trách nhiệm cho Tessname. Nó tương ứng về chức năng với Bộ xử lý hình học của AMD. Nó đã được chuyển từ mô-đun đổ bóng sang TPC để cho phép một động cơ Polymorph cung cấp nhiều SM trong TPC.[16]

Vi xử lí[sửa | sửa mã nguồn]

  • GP100: Bộ tăng tốc GPU Nvidia Tesla P100 được nhắm mục tiêu vào các ứng dụng GPGPU như tính toán chính xác kép FP64 và đào tạo học sâu sử dụng FP16. Nó sử dụng bộ nhớ HBM2.[17] Quadro GP100 cũng sử dụng GPU GP100.
  • GP102: GPU này được sử dụng trong TITAN Xp,[18] Titan X [19] và GeForce GTX 1080 Ti. Nó cũng được sử dụng trong Quadro P6000 [20] & Tesla P40.[21]
  • GP104: GPU này được sử dụng trong GeForce GTX 1070, GTX 1070 Ti và GTX 1080. GTX 1070 có 15/20 và GTX 1070 Ti có 19/20 SM được kích hoạt. Cả hai đều được kết nối với bộ nhớ GDDR5, trong khi GTX 1080 là chip đầy đủ và được kết nối với bộ nhớ GDDR5X. Nó cũng được sử dụng trong Quadro P5000, Quadro P4000 và Tesla P4.
  • GP106: GPU này được sử dụng trong GeForce GTX 1060 với bộ nhớ GDDR5 / GDDR5X [22].[23][24] Nó cũng được sử dụng trong Quadro P2000.
  • GP107: GPU này được sử dụng trong GeForce GTX 1050 Ti và GeForce GTX 1050. Nó cũng được sử dụng trong Quadro P1000, Quadro P600 & Quadro P400.
  • GP108: GPU này được sử dụng trong GeForce GT 1030.

Trên chip GP104, SM bao gồm 128 ALU có độ chính xác đơn ("lõi CUDA"), trên GP100 của 64 ALU có độ chính xác đơn. Do cách tổ chức chip khác nhau, như số lượng ALU chính xác kép, hiệu suất chính xác kép về mặt lý thuyết của GP100 là một nửa so với lý thuyết cho độ chính xác đơn; tỷ lệ là 1/32 cho chip GP104.

Bảng so sánh một số chip Kepler, Maxwell và Pascal
GK104 GK110 GM204 (GTX 970) GM204 (GTX 980) GM200 GP104 GP100
Bộ đệm kết cấu chuyên dụng cho mỗi SM 48 KiB
Kết cấu (đồ họa hoặc tính toán) hoặc dữ liệu chỉ đọc (chỉ tính toán) bộ đệm cho mỗi SM 48 KiB [25]
Bộ nhớ chia sẻ có thể lựa chọn lập trình / phân vùng L1 cho mỗi SM Bộ nhớ chia sẻ 48 KiB + bộ đệm 16 KiB L1 (mặc định) [26] Bộ nhớ chia sẻ 48 KiB + bộ đệm 16 KiB L1 (mặc định) [26]
Bộ nhớ chia sẻ 32 KiB + bộ đệm 32 KiB L1 [26] Bộ nhớ chia sẻ 32 KiB + bộ đệm 32 KiB L1 [26]
Bộ nhớ chia sẻ 16 KiB + bộ đệm 48 KiB L1 [26] Bộ nhớ chia sẻ 16 KiB + bộ đệm 48 KiB L1 [26]
Bộ đệm cache / kết cấu L1 hợp nhất cho mỗi SM 48 KiB [27] 48 KiB [27] 48 KiB [27] 48 KiB [27] 24 KiB [27]
Bộ nhớ dùng chung cho mỗi SM 96 KiB [27] 96 KiB [27] 96 KiB [27] 96 KiB [27] 64 KiB [27]
Bộ đệm L2 trên mỗi chip 512 KiB [27] 1536 KiB [27] 1792 KiB [28] 2048 KiB [28] 3072 KiB [27] 2048 KiB [27] 4096 KiB [27]

Hiệu năng[sửa | sửa mã nguồn]

Khả năng xử lý chính xác về mặt lý thuyết của GPU Pascal trong GFLOPS được tính là 2 X (hoạt động trên mỗi lệnh FMA trên lõi CUDA trên mỗi chu kỳ) × số lõi CUDA × tốc độ xung nhịp lõi (tính bằng GHz).

Khả năng xử lý chính xác kép về mặt lý thuyết của GPU Pascal là 1/2 hiệu suất chính xác đơn trên Nvidia GP100 và 1/32 của Nvidia GP102, GP104, GP106, GP107 & GP108.

Khả năng xử lý chính xác một nửa lý thuyết của GPU Pascal là 2 × hiệu suất chính xác đơn trên GP100 [9] và 1/64 trên GP102, GP104, GP106, GP107 & GP108.[15]

Kế thừa[sửa | sửa mã nguồn]

Sau Pascal, kiến trúc tiếp theo sẽ được mã hóa sơ bộ là Volta.[29] Nvidia đã thông báo rằng GPU Volta sẽ có Bộ nhớ băng thông cao, Bộ nhớ hợp nhất, hỗ trợ hoàn thành FP16 (gấp hai lần FP32 của nó) và NVLink.[29] Người ta vẫn chưa biết liệu Volta sẽ là một phần của dòng sản phẩm tiêu dùng hay không và có thể được thay thế bằng các cấu trúc vi mô Ampere hoặc Turing.[30]

Xem thêm[sửa | sửa mã nguồn]

Tham khảo[sửa | sửa mã nguồn]

  1. ^ “Accelerating The Real-Time Ray Tracing Ecosystem: DXR For GeForce RTX and GeForce GTX”. NVIDIA.
  2. ^ a b “NVIDIA GeForce GTX 1080” (PDF). International.download.nvidia.com. Truy cập ngày 15 tháng 9 năm 2016.
  3. ^ Gupta, Sumit (21 tháng 3 năm 2014). “NVIDIA Updates GPU Roadmap; Announces Pascal”. Blogs.nvidia.com. Bản gốc lưu trữ ngày 25 tháng 3 năm 2014. Truy cập ngày 25 tháng 3 năm 2014.
  4. ^ “Parallel Forall”. NVIDIA Developer Zone. Devblogs.nvidia.com. Truy cập ngày 25 tháng 3 năm 2014.
  5. ^ “NVIDIA Tesla P100” (PDF). International.download.nvidia.com. Truy cập ngày 15 tháng 9 năm 2016.
  6. ^ “nside Pascal: NVIDIA's Newest Computing Platform”. 5 tháng 4 năm 2016.
  7. ^ Denis Foley (25 tháng 3 năm 2014). “NVLink, Pascal and Stacked Memory: Feeding the Appetite for Big Data”. nvidia.com. Truy cập ngày 7 tháng 7 năm 2014.
  8. ^ “NVIDIA's Next-Gen Pascal GPU Architecture to Provide 10X Speedup for Deep Learning Apps”. The Official NVIDIA Blog. Bản gốc lưu trữ ngày 2 tháng 4 năm 2015. Truy cập ngày 23 tháng 3 năm 2015.
  9. ^ a b Smith, Ryan (5 tháng 4 năm 2015). “NVIDIA Announces Tesla P100 Accelerator - Pascal GP100 Power for HPC”. AnandTech. Truy cập ngày 27 tháng 5 năm 2016. Each of those SMs also contains 32 FP64 CUDA cores - giving us the 1/2 rate for FP64 - and new to the Pascal architecture is the ability to pack 2 FP16 operations inside a single FP32 CUDA core under the right circumstances
  10. ^ a b c Smith, Ryan (20 tháng 7 năm 2016). “The NVIDIA GeForce GTX 1080 & GTX 1070 Founders Editions Review: Kicking Off the FinFET Generation”. AnandTech. tr. 9. Truy cập ngày 21 tháng 7 năm 2016.
  11. ^ a b c d e Smith, Ryan (20 tháng 7 năm 2016). “The NVIDIA GeForce GTX 1080 & GTX 1070 Founders Editions Review: Kicking Off the FinFET Generation”. AnandTech. tr. 10. Truy cập ngày 21 tháng 7 năm 2016.
  12. ^ “GTX 1080 Graphics Card”. GeForce. Truy cập ngày 15 tháng 9 năm 2016.
  13. ^ Carbotte, Kevin (17 tháng 5 năm 2016). “Nvidia GeForce GTX 1080 Simultaneous Multi-Projection & Async Compute”. Tomshardware.com. Truy cập ngày 15 tháng 9 năm 2016.
  14. ^ “Nvidia Pascal HDCP 2.2”. Nvidia Hardware Page. Bản gốc lưu trữ ngày 8 tháng 5 năm 2016. Truy cập ngày 8 tháng 5 năm 2016.
  15. ^ a b Smith, Ryan (20 tháng 7 năm 2016). “The NVIDIA GeForce GTX 1080 & GTX 1070 Founders Editions Review: Kicking Off the FinFET Generation”. AnandTech. tr. 5. Truy cập ngày 21 tháng 7 năm 2016.
  16. ^ Smith, Ryan (20 tháng 7 năm 2016). “The NVIDIA GeForce GTX 1080 & GTX 1070 Founders Editions Review: Kicking Off the FinFET Generation”. AnandTech. tr. 4. Truy cập ngày 21 tháng 7 năm 2016.
  17. ^ Harris, Mark (5 tháng 4 năm 2016). “Inside Pascal: NVIDIA's Newest Computing Platform”. Parallel Forall. Nvidia. Truy cập ngày 3 tháng 6 năm 2016.
  18. ^ “NVIDIA TITAN Xp Graphics Card with Pascal Architecture”. NVIDIA.
  19. ^ “NVIDIA TITAN X Graphics Card with Pascal”. GeForce. Truy cập ngày 15 tháng 9 năm 2016.
  20. ^ “New Quadro Graphics Built on Pascal Architecture”. NVIDIA. Truy cập ngày 15 tháng 9 năm 2016.
  21. ^ “Accelerating Data Center Workloads with GPUs”. NVIDIA. Truy cập ngày 15 tháng 9 năm 2016.
  22. ^ https://www.nvidia.com
  23. ^ “NVIDIA GeForce GTX 1060 to be released on July 7th”. VideoCardz.com. Truy cập ngày 15 tháng 9 năm 2016.
  24. ^ “GTX 1060 Graphics Cards”. GeForce. Truy cập ngày 15 tháng 9 năm 2016.
  25. ^ Smith, Ryan (12 tháng 11 năm 2012). “NVIDIA Launches Tesla K20 & K20X: GK110 Arrives At Last”. AnandTech. tr. 3. Truy cập ngày 24 tháng 7 năm 2016.
  26. ^ a b c d e f Nvidia (1 tháng 9 năm 2015). “CUDA C Programming Guide”. Truy cập ngày 24 tháng 7 năm 2016.
  27. ^ a b c d e f g h i j k l m n o Triolet, Damien (24 tháng 5 năm 2016). “Nvidia GeForce GTX 1080, le premier GPU 16nm en test !”. Hardware.fr (bằng tiếng Pháp). tr. 2. Truy cập ngày 24 tháng 7 năm 2016.
  28. ^ a b Smith, Ryan (26 tháng 1 năm 2015). “GeForce GTX 970: Correcting The Specs & Exploring Memory Allocation”. AnandTech. tr. 1. Truy cập ngày 24 tháng 7 năm 2016.
  29. ^ a b “NVIDIA Updates GPU Roadmap; Announces Pascal”. The Official NVIDIA Blog. Bản gốc lưu trữ ngày 25 tháng 3 năm 2014. Truy cập ngày 22 tháng 4 năm 2019.
  30. ^ “NVIDIA Turing Release Date”. Techradar.