Navi vs. Turing: So sánh kiến trúc

Bạn đã nghe theo những tin đồn và phớt lờ sự cường điệu; bạn đã đợi các bài đánh giá và xem xét tất cả các điểm chuẩn. Cuối cùng, bạn đã tiêu hết số tiền của mình và bỏ đi với một trong những card đồ họa mới nhất của AMD hoặc Nvidia. Bên trong những thứ này, là một bộ xử lý đồ họa lớn, chứa hàng tỷ bóng bán dẫn, tất cả đều chạy ở tốc độ xung nhịp mà một thập kỷ trước không thể tưởng tượng được.

Bạn thực sự hài lòng với giao dịch mua của mình và các trò chơi chưa bao giờ trông hay hơn thế. Nhưng bạn có thể đang thắc mắc chính xác thì thứ gì đang cung cấp năng lượng cho Radeon RX 5700 hoàn toàn mới của bạn và nó khác với chip trong GeForce RTX như thế nào.

Chào mừng bạn đến với phần so sánh kiến trúc và tính năng của các GPU mới nhất của AMD và Nvidia: Navi vs Turing.

svg+xml,%3Csvg%20xmlns= Navi vs. Turing: So sánh kiến trúc

Trước khi bắt đầu phân tích cấu trúc và hệ thống chip tổng thể, chúng ta hãy xem định dạng cơ bản mà tất cả các GPU hiện đại tuân theo. Phần lớn, các bộ xử lý này chỉ là máy tính dấu phẩy động (FP); nói cách khác, chúng thực hiện các phép toán trên các giá trị thập phân/phân số. Vì vậy, ít nhất, một GPU cần có một đơn vị logic dành riêng cho các tác vụ này và chúng thường được gọi là FP ALU ( đơn vị logic số học dấu phẩy động ) hoặc gọi tắt là FPU. Không phải tất cả các phép tính mà GPU thực hiện đều dựa trên các giá trị dữ liệu FP, do đó, cũng sẽ có một ALU cho các phép toán số nguyên ( số nguyên ) hoặc thậm chí nó có thể là cùng một đơn vị, chỉ xử lý cả hai loại dữ liệu.

Bây giờ, các đơn vị logic này sẽ cần thứ gì đó để tổ chức chúng, bằng cách giải mã và đưa ra các hướng dẫn để giữ cho chúng bận rộn, và điều này sẽ ở dạng ít nhất một nhóm đơn vị logic chuyên dụng. Không giống như ALU, người dùng cuối sẽ không thể lập trình chúng; thay vào đó, nhà cung cấp phần cứng sẽ đảm bảo quá trình này được quản lý hoàn toàn bởi GPU và trình điều khiển của nó.

Để lưu trữ các hướng dẫn này và dữ liệu cần được xử lý, cũng cần phải có một số loại cấu trúc bộ nhớ. Ở cấp độ đơn giản nhất, nó sẽ có hai dạng: bộ đệm và một vùng bộ nhớ cục bộ . Cái trước sẽ được nhúng vào chính GPU và sẽ là SRAM . Loại bộ nhớ này nhanh nhưng chiếm một lượng tương đối lớn trong bố cục của bộ xử lý. Bộ nhớ cục bộ sẽ là DRAM , chậm hơn một chút so với SRAM và thường sẽ không được đưa vào chính GPU. Hầu hết các card đồ họa chúng ta thấy ngày nay đều có bộ nhớ cục bộ ở dạng mô-đun GDDR DRAM.

Cuối cùng, kết xuất đồ họa 3D liên quan đến các tác vụ được thiết lập bổ sung, chẳng hạn như tạo hình tam giác từ các đỉnh, tạo điểm ảnh khung 3D, lấy mẫu và trộn kết cấu, v.v. Giống như các đơn vị hướng dẫn và điều khiển, đây là những chức năng cố định về bản chất. Những gì chúng làm và cách chúng hoạt động hoàn toàn minh bạch đối với người dùng lập trình và sử dụng GPU.

Hãy đặt cái này lại với nhau và tạo ra một GPU:

svg+xml,%3Csvg%20xmlns= Navi vs. Turing: So sánh kiến trúc

Khối màu cam là đơn vị xử lý kết cấu bằng cách sử dụng cái được gọi là đơn vị ánh xạ kết cấu (TMU) – TA là đơn vị đánh địa chỉ kết cấu – nó tạo vị trí bộ nhớ cho bộ đệm và bộ nhớ cục bộ để sử dụng – và TF là đơn vị tìm nạp kết cấu thu thập các giá trị kết cấu từ bộ nhớ và trộn chúng lại với nhau. Ngày nay, các TMU gần như giống nhau trên tất cả các nhà cung cấp, ở chỗ chúng có thể giải quyết, lấy mẫu và trộn nhiều giá trị kết cấu trên mỗi chu kỳ xung nhịp GPU.

Khối bên dưới nó ghi các giá trị màu cho các pixel trong khung, cũng như lấy mẫu lại chúng (PO) và trộn chúng (PB); khối này cũng thực hiện các hoạt động được sử dụng khi khử răng cưa được sử dụng. Tên của khối này là đơn vị đầu ra kết xuất hoặc kết xuất phụ trợ (viết tắt là ROP/RB). Giống như TMU, giờ đây chúng đã được chuẩn hóa khá tốt, với mỗi cái xử lý thoải mái một số pixel trên mỗi chu kỳ xung nhịp.

Tuy nhiên, GPU cơ bản của chúng tôi sẽ rất tệ, ngay cả theo tiêu chuẩn từ 13 năm trước. Tại sao?

Chỉ có một FPU, TMU và ROP. Bộ xử lý đồ họa năm 2006, chẳng hạn như GeForce 8800 GTX của Nvidia lần lượt có 128, 32 và 24. Vì vậy, hãy bắt đầu làm điều gì đó về điều đó ….

svg+xml,%3Csvg%20xmlns= Navi vs. Turing: So sánh kiến trúc

Giống như bất kỳ nhà sản xuất bộ xử lý tốt nào, chúng tôi đã cập nhật GPU của mình bằng cách bổ sung thêm một số đơn vị. Điều này có nghĩa là con chip sẽ có thể xử lý đồng thời nhiều lệnh hơn. Để giải quyết vấn đề này, chúng tôi cũng đã thêm vào một bộ đệm nữa, nhưng lần này, ngay bên cạnh các đơn vị logic. Bộ đệm càng gần với cấu trúc máy tính, thì bộ đệm có thể bắt đầu thực hiện các thao tác được cung cấp cho nó càng nhanh.

Vấn đề với thiết kế mới của chúng tôi là vẫn chỉ có một đơn vị điều khiển xử lý các ALU bổ sung của chúng tôi. Sẽ tốt hơn nếu chúng ta có nhiều khối đơn vị hơn, tất cả đều được quản lý bởi bộ điều khiển riêng biệt của chúng, vì điều này có nghĩa là chúng ta có thể có rất nhiều hoạt động khác nhau diễn ra cùng một lúc.

svg+xml,%3Csvg%20xmlns= Navi vs. Turing: So sánh kiến trúc

Bây giờ điều này là giống như nó! Các khối ALU riêng biệt, được đóng gói với các TMU và ROP của riêng chúng, đồng thời được hỗ trợ bởi các lát cắt chuyên dụng của bộ đệm nhanh, ngon. Vẫn chỉ có một trong số mọi thứ khác, nhưng cấu trúc cơ bản không cách xa bộ xử lý đồ họa mà chúng ta thấy trong PC và bảng điều khiển ngày nay.

Đọc thêm:  Người giải thích: Gigabit LTE là gì?

Bây giờ chúng ta đã mô tả bố cục cơ bản của chip đồ họa, hãy bắt đầu so sánh Navi với Turing với một số hình ảnh của chip thực tế, mặc dù đã được phóng đại và xử lý một chút để làm nổi bật các cấu trúc khác nhau.

Bên trái là bộ xử lý mới nhất của AMD. Thiết kế chip tổng thể được gọi là Navi (một số người gọi nó là Navi 10) và kiến trúc đồ họa được gọi là RDNA. Bên cạnh nó, bên phải, là bộ xử lý TU102 kích thước đầy đủ của Nvidia, thể hiện kiến trúc Turing mới nhất. Điều quan trọng cần lưu ý là những hình ảnh này không được chia tỷ lệ: khuôn Navi có diện tích 251 mm2, trong khi TU102 là 752 mm2. Bộ xử lý Nvidia lớn, nhưng nó không lớn hơn 8 lần so với sản phẩm của AMD!

svg+xml,%3Csvg%20xmlns= Navi vs. Turing: So sánh kiến trúc

Cả hai đều có số lượng bóng bán dẫn khổng lồ (10,3 so với 18,6 tỷ) nhưng TU102 có trung bình ~25 triệu bóng bán dẫn trên mỗi mm vuông so với 41 triệu bóng bán dẫn trên mỗi mm vuông của Navi.

Điều này là do mặc dù cả hai chip đều do TSMC chế tạo, nhưng chúng được sản xuất trên các nút quy trình khác nhau: Turing của Nvidia nằm trên dây chuyền sản xuất 12 nm trưởng thành, trong khi Navi của AMD được sản xuất trên nút 7 nm mới hơn.

Chỉ nhìn vào hình ảnh của các khuôn không cho chúng ta biết nhiều về kiến trúc, vì vậy chúng ta hãy xem sơ đồ khối GPU do cả hai công ty sản xuất.

svg+xml,%3Csvg%20xmlns= Navi vs. Turing: So sánh kiến trúc

Các sơ đồ không có nghĩa là thể hiện thực tế 100% bố cục thực nhưng nếu bạn xoay chúng 90 độ, bạn có thể xác định được các khối và dải trung tâm khác nhau rõ ràng ở cả hai. Để bắt đầu, chúng ta có thể thấy rằng hai GPU có cấu trúc tổng thể giống như cấu trúc của chúng ta (mặc dù có nhiều thứ hơn!).

Cả hai thiết kế đều tuân theo cách tiếp cận theo tầng đối với cách mọi thứ được tổ chức và nhóm lại – bắt đầu với Navi, GPU được xây dựng từ 2 khối mà AMD gọi là Công cụ tạo bóng (SE), mỗi khối được chia thành 2 khối khác gọi là Công cụ tính toán không đồng bộ (ACE) ). Mỗi một trong số này bao gồm 5 khối, có tiêu đề Bộ xử lý nhóm làm việc (WGP), lần lượt bao gồm 2 Đơn vị tính toán (CU).

Đối với thiết kế Turing, tên và số khác nhau, nhưng hệ thống phân cấp rất giống nhau: 6 Cụm xử lý đồ họa (GPC), mỗi cụm có 6 Cụm xử lý kết cấu (TPC), với mỗi cụm được tạo thành từ 2 Bộ đa xử lý truyền phát (SM) khối.

Nếu bạn hình dung bộ xử lý đồ họa giống như một nhà máy lớn, nơi các bộ phận khác nhau sản xuất các sản phẩm khác nhau, sử dụng cùng một nguyên liệu thô, thì cách tổ chức này bắt đầu có ý nghĩa. Giám đốc điều hành của nhà máy gửi tất cả các chi tiết hoạt động cho doanh nghiệp, sau đó nó được chia thành các nhiệm vụ và khối lượng công việc khác nhau. Bằng cách có nhiều bộ phận độc lập với nhà máy, hiệu quả của lực lượng lao động được cải thiện. Đối với GPU, không có gì khác biệt và từ khóa kỳ diệu ở đây là lập lịch trình .

Khi xem xét cách thức hoạt động của kết xuất trò chơi 3D, chúng tôi thấy rằng bộ xử lý đồ họa thực sự không gì khác hơn là một máy tính siêu nhanh, thực hiện một loạt các phép toán trên hàng triệu mẩu dữ liệu. Navi và Turing được phân loại là bộ xử lý Đa dữ liệu một lệnh (SIMD), mặc dù mô tả tốt hơn sẽ là Nhiều luồng một lệnh (SIMT).

Một trò chơi 3D hiện đại tạo ra hàng trăm luồng, đôi khi hàng nghìn luồng, vì số lượng đỉnh và pixel cần xử lý là rất lớn. Để đảm bảo rằng tất cả chúng được hoàn thành chỉ trong vài phần triệu giây, điều quan trọng là phải có càng nhiều đơn vị logic càng bận rộn càng tốt, mà không để toàn bộ công việc bị đình trệ do dữ liệu cần thiết không được đặt đúng chỗ hoặc không có đủ dung lượng tài nguyên để hoạt động TRONG.

Khi xem xét cách thức hoạt động của kết xuất trò chơi 3D, chúng tôi thấy rằng bộ xử lý đồ họa thực sự không gì khác hơn là một máy tính siêu nhanh, thực hiện một loạt các phép toán trên hàng triệu mẩu dữ liệu. Navi và Turing được phân loại là bộ xử lý Đa dữ liệu một lệnh (SIMD), mặc dù mô tả tốt hơn sẽ là Nhiều luồng một lệnh (SIMT).

Navi và Turing hoạt động theo cách tương tự, theo đó một đơn vị trung tâm tiếp nhận tất cả các luồng rồi bắt đầu lên lịch và phát hành chúng. Trong chip AMD, vai trò này được thực hiện bởi Bộ xử lý lệnh đồ họa ; trong Nvidia, đó là GigaThread Engine . Các luồng được tổ chức theo cách sao cho những luồng có cùng hướng dẫn được nhóm lại với nhau, cụ thể là thành một bộ gồm 32 luồng.

AMD gọi bộ sưu tập này là wave , trong khi Nvidia gọi nó là warp . Đối với Navi, một Đơn vị Điện toán có thể xử lý 2 wave (hoặc một wave 64 luồng, nhưng quá trình này mất gấp đôi thời gian) và trong Turing, một Bộ đa xử lý phát trực tuyến hoạt động qua 4 warp. Trong cả hai thiết kế, wave/warps là độc lập, tức là chúng không cần những cái khác hoàn thành trước khi chúng có thể bắt đầu.

Cho đến nay, không có nhiều khác biệt giữa Navi và Turing – cả hai đều được thiết kế để xử lý một số lượng lớn luồng, để kết xuất và tính toán khối lượng công việc. Chúng ta cần xem xét những gì xử lý các luồng đó để xem hai gã khổng lồ GPU khác nhau ở điểm nào trong thiết kế.

Đọc thêm:  Chi phí trên mỗi khung hình: Card đồ họa có giá trị tốt nhất hiện nay

AMD và Nvidia có cách tiếp cận khác biệt rõ rệt đối với các đơn vị đổ bóng thống nhất của họ, mặc dù nhiều thuật ngữ được sử dụng có vẻ giống nhau. Đơn vị thực thi của Nvidia (lõi CUDA ) có bản chất vô hướng – điều đó có nghĩa là một đơn vị thực hiện một phép toán trên một thành phần dữ liệu; ngược lại, các đơn vị của AMD ( Bộ xử lý luồng ) hoạt động trên vectơ – một thao tác trên nhiều thành phần dữ liệu. Đối với các hoạt động vô hướng, chúng có một đơn vị chuyên dụng duy nhất.

Trước khi xem xét kỹ hơn các đơn vị thực thi, hãy xem xét các thay đổi của AMD đối với các đơn vị này. Trong 7 năm, card đồ họa Radeon đã tuân theo một kiến trúc có tên là Graphics Core Next (GCN). Mỗi con chip mới đã sửa đổi các khía cạnh khác nhau của thiết kế, nhưng về cơ bản chúng đều giống nhau.

AMD đã cung cấp một lịch sử (rất) ngắn gọn về kiến trúc GPU của họ:

svg+xml,%3Csvg%20xmlns= Navi vs. Turing: So sánh kiến trúc

GCN là một sự phát triển của TeraScale, một thiết kế cho phép xử lý các sóng lớn cùng một lúc. Vấn đề chính với TeraScale là nó không thân thiện lắm với các lập trình viên và cần các quy trình rất cụ thể để tận dụng tốt nhất. GCN đã sửa lỗi này và cung cấp một nền tảng dễ tiếp cận hơn nhiều.

Các CU trong Navi đã được sửa đổi đáng kể từ GCN như một phần của quá trình cải tiến của AMD. Mỗi CU chứa hai bộ:

Cùng với những thứ này, mỗi CU chứa 4 đơn vị kết cấu. Có các đơn vị khác bên trong, để xử lý dữ liệu đọc/ghi từ bộ đệm, nhưng chúng không được hiển thị trong hình bên dưới:

svg+xml,%3Csvg%20xmlns= Navi vs. Turing: So sánh kiến trúc

So với GCN, việc thiết lập RDNA CU có vẻ không khác lắm, nhưng điều quan trọng ở đây là cách mọi thứ được tổ chức và sắp xếp. Để bắt đầu, mỗi bộ 32 SP có đơn vị hướng dẫn chuyên dụng riêng, trong khi GCN chỉ có một lịch trình cho 4 bộ 16 SP.

svg+xml,%3Csvg%20xmlns= Navi vs. Turing: So sánh kiến trúc

Đây là một thay đổi quan trọng vì nó có nghĩa là một sóng 32 luồng có thể được cấp cho mỗi chu kỳ đồng hồ cho mỗi bộ SP. Kiến trúc RDNA cũng cho phép các đơn vị vectơ xử lý các đợt 16 luồng với tốc độ gấp đôi và các đợt 64 luồng với tốc độ một nửa, vì vậy mã được viết cho tất cả các card đồ họa Radeon trước đó vẫn được hỗ trợ.

Đối với các nhà phát triển trò chơi, những thay đổi này sẽ rất phổ biến.

Đối với các hoạt động vô hướng, hiện có gấp đôi số đơn vị để xử lý các hoạt động này; sự giảm số lượng thành phần duy nhất là ở dạng SFU – đây là các đơn vị chức năng đặc biệt , thực hiện các phép toán rất cụ thể, ví dụ như lượng giác (sin, tiếp tuyến), nghịch đảo (1 chia cho một số) và căn bậc hai. Có ít chúng hơn trong RDNA so với GCN nhưng giờ đây chúng có thể hoạt động trên các tập dữ liệu có kích thước gấp đôi so với trước đây.

Đối với các nhà phát triển trò chơi, những thay đổi này sẽ rất phổ biến. Các card đồ họa Radeon cũ hơn có rất nhiều hiệu suất tiềm năng, nhưng việc khai thác nó rất khó khăn. Giờ đây, AMD đã có một bước tiến lớn trong việc giảm độ trễ trong các lệnh xử lý và cũng giữ lại các tính năng để cho phép tương thích ngược với tất cả các chương trình được thiết kế cho kiến trúc GCN.

Nhưng còn đối với thị trường đồ họa hoặc điện toán chuyên nghiệp thì sao? Những thay đổi này có lợi cho họ không?

Câu trả lời ngắn gọn sẽ là, có ( có lẽ ). Mặc dù phiên bản hiện tại của chip Navi như Radeon RX 5700 XT, có ít Bộ xử lý luồng hơn so với thiết kế Vega trước đó, chúng tôi nhận thấy nó vượt trội so với Radeon RX Vega 56 thế hệ trước khá dễ dàng:

svg+xml,%3Csvg%20xmlns= Navi vs. Turing: So sánh kiến trúc

Một số hiệu suất đạt được này sẽ đến từ tốc độ xung nhịp cao hơn của RX 5700 XT so với RX Vega 56 (vì vậy nó có thể ghi nhiều pixel hơn mỗi giây vào bộ nhớ cục bộ) nhưng lại giảm hiệu suất số nguyên và dấu phẩy động cao nhất tới 15%. ; tuy nhiên, chúng tôi thấy chip Navi vượt trội hơn Vega tới 18%.

Các chương trình kết xuất chuyên nghiệp và các nhà khoa học chạy các thuật toán phức tạp sẽ không chính xác vượt qua một vài vòng Battlefield V trong công việc của họ (tốt, có thể …) nhưng nếu các hoạt động vô hướng, vectơ và ma trận được thực hiện trong một công cụ trò chơi là được xử lý nhanh hơn, thì điều này sẽ chuyển thành thị trường máy tính. Ngay bây giờ, chúng tôi không biết kế hoạch của AMD đối với thị trường chuyên nghiệp là gì – họ có thể tiếp tục với kiến trúc Vega và tiếp tục tinh chỉnh thiết kế, để hỗ trợ sản xuất, nhưng với những cải tiến trong Navi, công ty sẽ di chuyển mọi thứ vào kiến trúc mới.

Thiết kế GPU của Nvidia đã trải qua quá trình phát triển tương tự kể từ năm 2006 khi họ ra mắt dòng GeForce 8, mặc dù có ít thay đổi cơ bản hơn so với AMD. GPU này thể hiện kiến trúc Tesla, một trong những GPU đầu tiên sử dụng phương pháp đổ bóng thống nhất cho kiến trúc thực thi. Dưới đây chúng ta có thể thấy những thay đổi đối với các khối SM từ người kế nhiệm Tesla (Fermi), cho đến người tiền nhiệm của Turing (Volta):

Đọc thêm:  Đánh giá trí thông minh tại nhà Neurio

svg+xml,%3Csvg%20xmlns= Navi vs. Turing: So sánh kiến trúc

Như đã đề cập trước đó trong bài viết này, lõi CUDA là vô hướng . Chúng có thể thực hiện một lệnh float và một lệnh số nguyên trong mỗi chu kỳ đồng hồ trên một thành phần dữ liệu (tuy nhiên, lưu ý rằng bản thân lệnh đó có thể mất nhiều chu kỳ đồng hồ để được xử lý), nhưng các đơn vị lập lịch sắp xếp chúng thành các nhóm theo cách sao cho, đối với một lập trình viên, họ có thể thực hiện các thao tác vectơ. Thay đổi quan trọng nhất trong những năm qua, ngoài việc đơn giản là có nhiều đơn vị hơn, liên quan đến cách chúng được sắp xếp và phân chia.

Trong thiết kế Kepler, toàn bộ chip có 5 GPC, với mỗi GPC chứa ba khối SM; vào thời điểm Pascal xuất hiện, các GPC được chia thành các phần riêng biệt (TPC) với hai SM trên mỗi TPC. Cũng giống như với thiết kế Navi. sự phân mảnh này rất quan trọng vì nó cho phép GPU tổng thể được sử dụng đầy đủ nhất có thể; nhiều nhóm lệnh độc lập có thể được xử lý song song, nâng cao hiệu suất tô bóng và tính toán của bộ xử lý.

Chúng ta hãy xem Turing tương đương với Đơn vị tính toán RDNA:

svg+xml,%3Csvg%20xmlns= Navi vs. Turing: So sánh kiến trúc

Một SM chứa 4 khối xử lý, mỗi khối chứa:

Ngoài ra còn có 2 đơn vị FP64 trên mỗi SM, nhưng Nvidia không hiển thị chúng trong sơ đồ khối của họ nữa và mỗi SM chứa 4 đơn vị kết cấu (chứa hệ thống lọc kết cấu và địa chỉ kết cấu) và 1 lõi RT (Dò tia).

ALU FP32 và INT32 có thể hoạt động đồng thời và song song. Đây là một tính năng quan trọng bởi vì mặc dù các công cụ kết xuất 3D yêu cầu hầu hết các phép tính dấu phẩy động, nhưng vẫn có một số lượng hợp lý các thao tác số nguyên đơn giản (ví dụ: tính toán địa chỉ dữ liệu) cần được thực hiện.

Tensor Cores là ALU chuyên dụng xử lý các hoạt động ma trận. Ma trận là mảng dữ liệu ‘vuông’ và lõi Tensor hoạt động trên ma trận 4 x 4. Chúng được thiết kế để xử lý các thành phần dữ liệu FP16, INT8 hoặc INT4 theo cách sao cho trong một chu kỳ xung nhịp, có tới 64 hoạt động float FMA (nhân-sau-cộng hợp nhất) diễn ra. Kiểu tính toán này thường được sử dụng trong cái gọi là mạng lưới thần kinh và suy luận – không thực sự phổ biến trong các trò chơi 3D, nhưng được sử dụng nhiều bởi Facebook cho các thuật toán phân tích phương tiện truyền thông xã hội của họ hoặc trong ô tô có hệ thống tự lái. Navi cũng có thể thực hiện các phép tính ma trận nhưng yêu cầu một số lượng lớn SP để thực hiện; trong hệ thống Turing, các phép toán ma trận có thể được thực hiện trong khi các lõi CUDA đang thực hiện phép toán khác.

RT Core là một đơn vị đặc biệt khác, duy nhất đối với kiến trúc Turing, thực hiện các thuật toán toán học rất cụ thể được sử dụng cho hệ thống dò tia của Nvidia. Phân tích đầy đủ về vấn đề này nằm ngoài phạm vi của bài viết này, nhưng RT Core về cơ bản là hai hệ thống hoạt động riêng biệt với phần còn lại của SM, vì vậy nó vẫn có thể hoạt động trên các trình đổ bóng đỉnh hoặc pixel, trong khi RT Core đang bận tính toán để dò tia.

Ở cấp độ cơ bản, Navi và Turing có các đơn vị thực thi cung cấp một bộ tính năng khá giống nhau (một điều cần thiết xuất phát từ nhu cầu tuân thủ các yêu cầu của Direct3D, OpenGL, v.v.) nhưng…

Ở cấp độ cơ bản, Navi và Turing có các đơn vị thực thi cung cấp một bộ tính năng khá giống nhau (điều cần thiết xuất phát từ nhu cầu tuân thủ các yêu cầu của Direct3D, OpenGL, v.v.) nhưng chúng có cách tiếp cận rất khác đối với cách thức hoạt động của các tính năng này xử lý. Về thiết kế nào tốt hơn, tất cả đều phụ thuộc vào cách chúng được sử dụng: một chương trình tạo ra nhiều luồng thực hiện các phép tính vectơ FP32 và một số thứ khác dường như sẽ ưu tiên Navi, trong khi một chương trình có nhiều phép tính số nguyên, dấu phẩy, vô hướng và vectơ sẽ ủng hộ tính linh hoạt của Turing, v.v.

GPU hiện đại là bộ xử lý phát trực tuyến, nghĩa là chúng được thiết kế để thực hiện một tập hợp các thao tác trên mọi phần tử trong luồng dữ liệu. Điều này làm cho chúng kém linh hoạt hơn so với CPU có mục đích chung và nó cũng yêu cầu phân cấp bộ nhớ của chip phải được tối ưu hóa để nhận dữ liệu và hướng dẫn tới ALU càng nhanh càng tốt và trong nhiều luồng nhất có thể. Điều này có nghĩa là GPU sẽ có ít bộ nhớ cache hơn CPU vì càng nhiều chip cần được dành riêng cho truy cập bộ nhớ cache, thay vì dung lượng bộ nhớ cache.

Cả AMD và Nvidia đều sử dụng nhiều cấp độ bộ đệm trong chip, vì vậy trước tiên chúng ta hãy xem qua gói Navi nào.

svg+xml,%3Csvg%20xmlns= Navi vs. Turing: So sánh kiến trúc

Bắt đầu từ cấp thấp nhất trong hệ thống phân cấp, hai khối Bộ xử lý luồng sử dụng tổng cộng 256 kiB thanh ghi mục đích chung vectơ (thường được gọi là tệp thanh ghi ), cùng dung lượng như trong Vega nhưng trên 4 khối SP; hết sổ đăng ký trong khi cố xử lý một số lượng lớn luồng thực sự ảnh hưởng đến hiệu suất, vì vậy đây chắc chắn là một “điều tốt”. AMD cũng đã tăng đáng kể tệp thanh ghi vô hướng. Trước đây chỉ là 4 kiB, bây giờ là 32 kiB trên mỗi đơn vị vô hướng.

Sau đó, hai Đơn vị Điện toán chia sẻ bộ đệm L0 hướng dẫn 32 kiB và bộ đệm dữ liệu vô hướng 16 kiB, nhưng mỗi CU có bộ đệm L0 vectơ 32 kiB của riêng mình; kết nối tất cả bộ nhớ này với ALU là Chia sẻ dữ liệu cục bộ 128 kiB.

Đọc thêm:  DLSS có thể kết xuất đồ họa "tốt hơn bản địa" không?

svg+xml,%3Csvg%20xmlns= Navi vs. Turing: So sánh kiến trúc

Trong Navi, hai Công cụ tính toán tạo thành Bộ xử lý nhóm làm việc và năm trong số đó tạo thành Công cụ tính toán không đồng bộ (ACE). Mỗi ACE có quyền truy cập vào 128 kiB bộ đệm L1 của riêng mình và toàn bộ GPU được hỗ trợ thêm bởi 4 MiB bộ đệm L2, được kết nối với các bộ đệm L1 và các phần khác của bộ xử lý.

Đây gần như chắc chắn là một dạng kiến trúc kết nối Infinity Fabric độc quyền của AMD vì hệ thống chắc chắn được sử dụng để xử lý 16 bộ điều khiển bộ nhớ GDDR6. Để tối đa hóa băng thông bộ nhớ, Navi cũng sử dụng tính năng nén màu không mất dữ liệu giữa L1, L2 và bộ nhớ GDDR6 cục bộ.

svg+xml,%3Csvg%20xmlns= Navi vs. Turing: So sánh kiến trúc

Một lần nữa, tất cả những điều này đều đáng hoan nghênh, đặc biệt là khi so sánh với các chip AMD trước đây không có đủ bộ đệm cấp thấp cho số lượng đơn vị đổ bóng mà chúng chứa. Tóm lại, nhiều bộ nhớ cache hơn tương đương với nhiều băng thông nội bộ hơn, ít hướng dẫn bị đình trệ hơn (vì chúng phải tìm nạp dữ liệu từ bộ nhớ ở xa hơn), v.v. Và điều đó đơn giản tương đương với hiệu suất tốt hơn.

Đối với hệ thống phân cấp của Turing, phải nói rằng Nvidia hơi ngại khi cung cấp thông tin chuyên sâu về lĩnh vực này. Trước đó trong bài viết này, chúng ta đã thấy rằng mỗi SM được chia thành 4 khối xử lý – mỗi khối có một tệp thanh ghi 64 kiB, nhỏ hơn so với tìm thấy trong Navi, nhưng đừng quên rằng ALU của Turing là vô hướng, không phải vectơ, các đơn vị.

svg+xml,%3Csvg%20xmlns= Navi vs. Turing: So sánh kiến trúc

Tiếp theo là 96 kiB bộ nhớ dùng chung, cho mỗi SM, có thể được sử dụng làm 64 kiB bộ đệm dữ liệu L1 và 32 kiB bộ đệm kết cấu hoặc không gian thanh ghi bổ sung. Trong ‘chế độ điện toán’, bộ nhớ dùng chung có thể được phân vùng theo cách khác, chẳng hạn như bộ nhớ dùng chung 32 kiB và bộ đệm L1 64 kiB, nhưng nó luôn được thực hiện dưới dạng phân chia 64+32.

svg+xml,%3Csvg%20xmlns= Navi vs. Turing: So sánh kiến trúc

Việc thiếu thông tin chi tiết về hệ thống bộ nhớ Turn khiến chúng tôi muốn nhiều hơn nữa, vì vậy chúng tôi đã chuyển sang nhóm nghiên cứu GPU, làm việc tại Citadel Enterprise Americas. Cuối cùng, họ đã phát hành hai bài báo, phân tích các khía cạnh tốt hơn của kiến trúc Volta và Turing; hình ảnh trên là sự cố về phân cấp bộ nhớ trong chip TU104 (TU102 đầy đủ có 6144 kiB bộ đệm L2).

Nhóm đã xác nhận rằng thông lượng bộ đệm L1 là 64 bit mỗi chu kỳ và lưu ý rằng trong quá trình thử nghiệm, hiệu quả của bộ đệm L1 của Turing là tốt nhất trong tất cả các GPU của Nvidia. Điều này ngang bằng với Navi, mặc dù chip của AMD có tốc độ đọc cao hơn đối với Kho lưu trữ dữ liệu cục bộ nhưng tốc độ đọc đối với hướng dẫn/bộ đệm không đổi lại thấp hơn.

Cả hai GPU đều sử dụng GDDR6 cho bộ nhớ cục bộ – đây là phiên bản Graphics DDR SDRAM mới nhất – và cả hai đều sử dụng kết nối 32-bit cho các mô-đun bộ nhớ, vì vậy Radeon RX 5700 XT có 8 chip bộ nhớ, cho băng thông tối đa là 256 GiB /s và 8 GiB dung lượng. GeForce RTX 2080 Ti với chip TU102, chạy với 11 mô-đun như vậy để có băng thông 352 GiB/giây và 11 GiB dung lượng lưu trữ.

Các tài liệu của AMD đôi khi có vẻ khó hiểu: trong sơ đồ khối đầu tiên chúng ta thấy về Navi, nó hiển thị bốn bộ điều khiển bộ nhớ 64 bit, trong khi hình ảnh sau đó cho thấy có 16 bộ điều khiển. Cho rằng Samsung chỉ cung cấp các mô-đun bộ nhớ GDDR6 32 bit, có vẻ như hình ảnh thứ hai chỉ cho biết có bao nhiêu kết nối giữa hệ thống Infinity Fabric và bộ điều khiển bộ nhớ. Có lẽ chỉ có 4 bộ điều khiển bộ nhớ và mỗi bộ xử lý hai mô-đun.

Vì vậy, về tổng thể, dường như không có quá nhiều sự khác biệt giữa Navi và Turing khi nói đến bộ nhớ cache và bộ nhớ cục bộ của chúng. Navi có nhiều hơn Turing một chút về khía cạnh thực thi của mọi thứ, với hướng dẫn lớn hơn/bộ đệm L1 không đổi và lớn hơn, nhưng cả hai đều chứa đầy nội dung, cả hai đều sử dụng tính năng nén màu bất cứ khi nào có thể và cả hai đều có rất nhiều GPU chuyên dụng. không gian để tối đa hóa truy cập bộ nhớ và băng thông.

Mười lăm năm trước, các nhà sản xuất GPU đã đặt ra vấn đề lớn về số lượng tam giác mà chip của họ có thể xử lý, số lượng phần tử kết cấu có thể được lọc trong mỗi chu kỳ và khả năng của các đơn vị đầu ra kết xuất (ROP). Ngày nay, những khía cạnh này vẫn còn quan trọng nhưng do các công nghệ kết xuất 3D yêu cầu hiệu năng tính toán cao hơn bao giờ hết, nên trọng tâm tập trung nhiều hơn vào khía cạnh thực thi của mọi thứ.

Tuy nhiên, các đơn vị kết cấu và ROP vẫn đáng để nghiên cứu, nếu chỉ lưu ý rằng không có sự khác biệt rõ ràng ngay lập tức giữa Navi và Turing trong các lĩnh vực này. Trong cả hai kiến trúc, các đơn vị kết cấu có thể định địa chỉ và tìm nạp 4 phần tử kết cấu, lọc song tuyến tính chúng thành một phần tử và ghi tất cả vào bộ đệm trong một chu kỳ đồng hồ (không tính đến bất kỳ chu kỳ đồng hồ bổ sung nào được thực hiện để tìm nạp dữ liệu từ bộ nhớ cục bộ).

Đọc thêm:  Sự trỗi dậy của sức mạnh: Có phải CPU và GPU đang trở nên quá ngốn năng lượng?

Sự sắp xếp của các ROP/RB có một chút khác biệt giữa Navi và Turing, nhưng không nhiều: chip AMD có 4 RB trên mỗi ACE và mỗi RB có thể tạo ra 4 pixel được trộn trên mỗi chu kỳ xung nhịp; trong Turing, mỗi GPC có hai RB, với mỗi RB cho 8 pixel mỗi xung nhịp. Số lượng ROP của GPU thực sự là phép đo tốc độ đầu ra pixel này, do đó, chip Navi đầy đủ cho 64 pixel mỗi xung nhịp và TU102 đầy đủ cho 96 (nhưng đừng quên rằng đó là chip lớn hơn nhiều).

svg+xml,%3Csvg%20xmlns= Navi vs. Turing: So sánh kiến trúc

Về mặt tam giác của mọi thứ, có ít thông tin tức thời hơn. Những gì chúng tôi biết là Navi vẫn tạo ra tối đa 4 nguyên thủy trên mỗi chu kỳ xung nhịp (1 trên mỗi ACE) nhưng vẫn chưa có gì về việc liệu AMD có giải quyết được vấn đề liên quan đến Bộ tạo bóng nguyên thủy của họ hay không. Đây là một tính năng được quảng cáo nhiều của Vega, cho phép các lập trình viên có nhiều quyền kiểm soát hơn đối với các phiên bản gốc, sao cho nó có khả năng tăng thông lượng ban đầu lên gấp 4 lần. Tuy nhiên, chức năng này đã bị xóa khỏi trình điều khiển tại một số thời điểm không lâu sau khi sản phẩm ra mắt. ra mắt, và vẫn không hoạt động kể từ đó.

Mặc dù chúng tôi vẫn đang chờ thêm thông tin về Navi, nhưng sẽ không khôn ngoan nếu suy đoán thêm. Turing cũng xử lý 1 nguyên thủy trên mỗi xung nhịp trên mỗi GPC (tối đa 6 đối với GPU TU102 đầy đủ) trong Công cụ Raster, nhưng nó cũng cung cấp một thứ gọi là Lưới tạo bóng , cung cấp cùng loại chức năng của Trình tạo bóng nguyên thủy của AMD; nó không phải là một bộ tính năng của Direct3D, OpenGL hoặc Vulkan, nhưng có thể được sử dụng thông qua các tiện ích mở rộng API.

Điều này dường như mang lại cho Turing lợi thế hơn Navi, về mặt xử lý hình tam giác và nguyên thủy, nhưng không có đủ thông tin trong phạm vi công cộng tại thời điểm này để chắc chắn.

Có những khía cạnh khác của Navi và Turing đáng để so sánh. Để bắt đầu, cả hai GPU đều có công cụ hiển thị và phương tiện phát triển cao. Cái trước xử lý đầu ra cho màn hình, cái sau mã hóa và giải mã các luồng video.

svg+xml,%3Csvg%20xmlns= Navi vs. Turing: So sánh kiến trúc

Như bạn mong đợi từ thiết kế GPU mới 2019, công cụ hiển thị của Navi cung cấp độ phân giải rất cao, ở tốc độ làm mới cao và cung cấp hỗ trợ HDR. Nén luồng hiển thị (DSC) là một thuật toán nén mất dữ liệu nhanh cho phép các độ phân giải 4K+ tương tự ở tốc độ làm mới hơn 60 Hz được truyền qua một kết nối DisplayPort 1.4; may mắn thay, sự suy giảm chất lượng hình ảnh là rất nhỏ, gần như đến mức bạn cho rằng DSC hầu như không mất dữ liệu.

svg+xml,%3Csvg%20xmlns= Navi vs. Turing: So sánh kiến trúc

Turing cũng hỗ trợ DisplayPort với các kết nối DSC, mặc dù sự kết hợp giữa độ phân giải cao và tốc độ làm mới được hỗ trợ tốt hơn một chút so với trong Navi: 4K HDR ở 144 Hz – nhưng phần còn lại thì giống nhau.

svg+xml,%3Csvg%20xmlns= Navi vs. Turing: So sánh kiến trúc

Công cụ truyền thông của Navi cũng hiện đại như công cụ hiển thị của nó, hỗ trợ Mã hóa video nâng cao (H.264) và Mã hóa video hiệu quả cao (H.265), một lần nữa ở độ phân giải cao và tốc độ bit cao.

svg+xml,%3Csvg%20xmlns= Navi vs. Turing: So sánh kiến trúc

Công cụ video của Turing gần giống với công cụ của Navi nhưng hỗ trợ mã hóa 8K30 HDR có thể giúp cân bằng nghiêng về Turing đối với một số người.

Có những khía cạnh khác để so sánh (chẳng hạn như giao diện PCI Express 4.0 của Navi hoặc NV Link của Turing) nhưng chúng thực sự chỉ là những phần rất nhỏ trong kiến trúc tổng thể, bất kể chúng được cải tiến và tiếp thị nhiều như thế nào. Điều này đơn giản là vì, đối với đại đa số người dùng tiềm năng, những tính năng độc đáo này sẽ không thành vấn đề.

Bài viết này là một quan sát về thiết kế kiến trúc, các tính năng và chức năng, nhưng có một so sánh hiệu suất trực tiếp sẽ là một cách hay để hoàn thiện một phân tích như vậy. Tuy nhiên, việc kết hợp chip Navi trong Radeon RX 5700 XT với bộ xử lý Turing TU102 trong GeForce RTX 2080 Ti chẳng hạn, sẽ rõ ràng là không công bằng, vì cái sau có số lượng đơn vị đổ bóng hợp nhất gần gấp đôi so với cái trước. Tuy nhiên, có một phiên bản của chip Turing có thể được sử dụng để so sánh và đó là phiên bản trong GeForce RTX 2070 Super.

Điều đáng chú ý là RTX 2070 Super không phải là chip TU104 ‘đầy đủ’ (một trong các GPC bị vô hiệu hóa), vì vậy không phải tất cả 13,6 bóng bán dẫn đó đều hoạt động, điều đó có nghĩa là các chip này gần giống nhau về số lượng bóng bán dẫn. Về mặt giá trị, hai GPU có vẻ rất giống nhau, đặc biệt nếu bạn chỉ xem xét số lượng đơn vị đổ bóng, TMU, ROP và hệ thống bộ nhớ chính.

Trong bộ xử lý Nvidia, một SM có thể xử lý 32 sợi dọc đồng thời và với mỗi sợi dọc bao gồm 32 luồng, GeForce RTX 2070 Super được tải đầy đủ có thể hoạt động trên 40.960 luồng trên toàn bộ chip; đối với Navi, một CU có thể nhận tối đa 16 wave trên mỗi ALU SIMD32, với mỗi wave là 32 luồng. Vì vậy, Radeon RX 5700 XT cũng có thể được đóng gói với tối đa 40.960 luồng. Điều này dường như làm cho chúng chính xác ngay cả ở đây, nhưng do cách sắp xếp CU/SM khác nhau như thế nào và lợi thế của Nvidia với việc xử lý INT và FP đồng thời, kết quả cuối cùng sẽ phụ thuộc rất nhiều vào mã được chạy.

Điều này sẽ có tác động đến hiệu suất của các trò chơi khác nhau vì mã của một công cụ 3D sẽ ưu tiên cấu trúc này hơn cấu trúc kia, tùy thuộc vào loại hướng dẫn nào được gửi thường xuyên đến GPU. Điều này thể hiện rõ khi chúng tôi thử nghiệm hai card đồ họa:

Đọc thêm:  Cách xóa thư mục "Đối tượng 3D" và các phím tắt vô dụng khác khỏi File Explorer của Windows

svg+xml,%3Csvg%20xmlns= Navi vs. Turing: So sánh kiến trúc

Tất cả các trò chơi được sử dụng trong thử nghiệm đều được lập trình cho kiến trúc GCN của AMD, cho dù trực tiếp dành cho PC được trang bị Radeon hay thông qua GPU GCN có trong PlayStation 4 hoặc Xbox One. Có thể một số phiên bản được phát hành gần đây hơn có thể đã chuẩn bị sẵn cho những thay đổi của RDNA, nhưng sự khác biệt được thấy trong kết quả điểm chuẩn có nhiều khả năng là do công cụ kết xuất cũng như cách xử lý hướng dẫn và dữ liệu.

Vì vậy, tất cả những điều này có nghĩa là gì? Kiến trúc này có thực sự tốt hơn kiến trúc kia không? Turing chắc chắn cung cấp nhiều khả năng hơn Navi nhờ có Tensor và RT Cores, nhưng Navi chắc chắn cạnh tranh về hiệu suất kết xuất 3D. Sự khác biệt được thấy trong mẫu 12 trò chơi không đủ thuyết phục để đưa ra bất kỳ phán đoán dứt khoát nào.

Và đó là tin tốt cho chúng tôi.

Các kế hoạch Navi của AMD đã được công bố vào năm 2016 và mặc dù họ không nói nhiều vào thời điểm đó, nhưng họ đã nhắm đến việc ra mắt vào năm 2018. Khi ngày đó đến rồi đi, lộ trình đã thay đổi sang năm 2019, nhưng rõ ràng là Navi sẽ được sản xuất trên nút quy trình 7nm và thiết kế sẽ tập trung vào việc cải thiện hiệu suất.

Điều đó chắc chắn đã xảy ra và như chúng ta đã thấy trong bài viết này, AMD đã thực hiện các thay đổi về kiến trúc để cho phép nó cạnh tranh với các dịch vụ tương đương từ Nvidia. Thiết kế mới không chỉ mang lại lợi ích cho người dùng PC, vì chúng tôi biết rằng Sony và Microsoft sẽ sử dụng một biến thể của chip trong PlayStation 5 sắp ra mắt và Xbox tiếp theo.

Nếu bạn quay lại phần đầu của bài viết này và xem xét lại thiết kế cấu trúc của Shader Engines, cũng như kích thước tổng thể của khuôn và số lượng bóng bán dẫn, thì rõ ràng có khả năng một con chip ‘Navi lớn’ sẽ vượt lên dẫn đầu. card đồ họa cuối; AMD đã xác nhận khá nhiều rằng đây là một phần trong kế hoạch hiện tại của họ, cũng như nhằm cải tiến kiến trúc và quy trình chế tạo trong vòng hai năm tới.

svg+xml,%3Csvg%20xmlns= Navi vs. Turing: So sánh kiến trúc

Nhưng còn Nvidia, họ có kế hoạch gì cho Turing và người kế nhiệm nó? Đáng ngạc nhiên, rất ít đã được xác nhận bởi công ty. Trở lại năm 2014, Nvidia đã cập nhật lộ trình GPU của họ để lên lịch cho kiến trúc Pascal ra mắt vào năm 2016 (và đã đạt được mục tiêu đó). Vào năm 2017, họ đã công bố Tesla V100, sử dụng kiến trúc Volta của họ và chính thiết kế này đã tạo ra Turing vào năm 2018.

Kể từ đó, mọi thứ khá im ắng và chúng tôi phải dựa vào những tin đồn và mẩu tin tức, tất cả đều nói chung một điều: Kiến trúc tiếp theo của Nvidia sẽ được gọi là Ampere, nó sẽ được chế tạo bởi Samsung bằng quy trình 7nm của họ. , và nó được lên kế hoạch cho năm 2020. Ngoài ra, không có gì khác để tiếp tục. Rất khó có khả năng chip mới sẽ phá vỡ truyền thống tập trung vào các đơn vị thực thi vô hướng, cũng như không có khả năng loại bỏ các khía cạnh như Lõi Tensor, vì điều này sẽ gây ra các vấn đề tương thích ngược nghiêm trọng.

Tuy nhiên, chúng ta có thể đưa ra một số dự đoán hợp lý về GPU Nvidia tiếp theo sẽ như thế nào. Công ty đã đầu tư một lượng thời gian và tiền bạc đáng kể vào công nghệ dò tia và sự hỗ trợ cho công nghệ này trong các trò chơi sẽ chỉ tăng lên; vì vậy chúng ta có thể mong đợi thấy sự cải thiện với các lõi RT, về khả năng hoặc số lượng trên mỗi SM. Nếu chúng ta cho rằng tin đồn về việc sử dụng nút tiến trình 7 nm là đúng, thì Nvidia có thể sẽ nhắm đến việc giảm điện năng hơn là tăng tốc độ xung nhịp hoàn toàn, để họ có thể tăng số lượng GPC. Cũng có thể là 7 nm bị bỏ qua, và Nvidia hướng thẳng tới 5 nm để giành lợi thế trước AMD.

Và có vẻ như AMD và Nvidia sẽ phải đối mặt với sự cạnh tranh mới trên thị trường card đồ họa rời từ Intel, vì chúng ta biết rằng họ đang có kế hoạch tái gia nhập lĩnh vực này sau 20 năm gián đoạn. Liệu sản phẩm mới này (hiện có tên là Xe) có thể cạnh tranh ngang hàng với Navi và Turing hay không vẫn còn phải xem.

Trong khi đó, Intel vẫn tồn tại trên thị trường GPU trong suốt 2 thập kỷ đó bằng cách tạo ra đồ họa tích hợp cho CPU của họ. GPU mới nhất của Intel, Gen 11, giống kiến trúc của AMD hơn là của Nvidia vì nó sử dụng ALU vector có thể xử lý dữ liệu FP32 và INT32, nhưng chúng tôi không biết liệu card đồ họa mới có phải là sự phát triển trực tiếp của thiết kế này hay không.

Điều chắc chắn là vài năm tới sẽ rất thú vị, miễn là ba gã khổng lồ về cấu trúc silicon tiếp tục tranh giành ví tiền của chúng ta. Các thiết kế và kiến trúc GPU mới sẽ tăng số lượng bóng bán dẫn, kích thước bộ đệm và khả năng đổ bóng; Navi và RDNA là những người mới nhất trong số họ và đã chỉ ra rằng mỗi bước tiến, dù nhỏ, có thể tạo ra sự khác biệt lớn.

Bài viết này ban đầu được xuất bản vào ngày 7 tháng 8 năm 2019. Chúng tôi đã sửa đổi một chút và bổ sung nó như một phần của sáng kiến #ThrowbackThursday của chúng tôi.