Chương 8: Liên kết và Mạng trong Thiết kế GPU
Khi số lõi và phân vùng bộ nhớ trong các GPU hiện đại tiếp tục tăng, thiết kế mạng liên kết trong chip trở nên rất quan trọng để đạt được hiệu suất và khả năng mở rộng cao. Mạng liên kết chịu trách nhiệm kết nối các lõi GPU với các phân vùng bộ nhớ và cho phép giao tiếp hiệu quả giữa chúng. Trong chương này, chúng tôi sẽ khám phá các khía cạnh khác nhau của thiết kế mạng liên kết và mạng trong chip cho GPU, bao gồm các kiến trúc Mạng trên Chip (NoC), thuật toán định tuyến, cơ chế kiểm soát luồng, đặc tính tải, mẫu lưu lượng và các kỹ thuật để thiết kế mạng liên kết có khả năng mở rộng và hiệu quả.
Kiến trúc Mạng trên Chip (NoC)
Mạng trên Chip (NoC) đã trở thành một giải pháp hứa hẹn để kết nối số lượng ngày càng tăng của các lõi và phân vùng bộ nhớ trong các GPU hiện đại. NoC cung cấp một cơ sở hạ tầng giao tiếp có khả năng mở rộng và linh hoạt, có thể xử lý hiệu quả các yêu cầu băng thông rộng và độ trễ thấp của các tải GPU. Nhiều kiến trúc NoC đã được đề xuất và nghiên cứu cho các kiến trúc GPU, mỗi kiến trúc đều có những ưu điểm và nhược điểm riêng.
Kiến trúc Crossbar
Kiến trúc crossbar là một thiết kế mạng liên kết đơn giản và trực tiếp, trong đó mỗi lõi được kết nối trực tiếp với mỗi phân vùng bộ nhớ thông qua một đường kết nối chuyên dụng. Hình 8.1 minh họa một kiến trúc crossbar cho một GPU với bốn lõi và bốn phân vùng bộ nhớ.
Lõi 0 Lõi 1 Lõi 2 Lõi 3
| | | |
| | | |
--|--------|--------|--------|--
| | | |
| | | |
Bộ nhớ 0 Bộ nhớ 1 Bộ nhớ 2 Bộ nhớ 3
Hình 8.1: Kiến trúc crossbar cho một GPU với bốn lõi và bốn phân vùng bộ nhớ.
Kiến trúc crossbar cung cấp kết nối đầy đủ giữa các lõi và các phân vùng bộ nhớ, leaminh cho giao tiếp băng thông cao. Tuy nhiên, số lượng đường kết nối và độ phức tạp của crossbar tăng theo bậc bình phương.Dưới đây là bản dịch tiếng Việt của tệp Markdown, với việc chỉ dịch các nhận xét trong mã, mà không dịch mã:
Topology lưới (Mesh Topology)
Topology lưới là lựa chọn phổ biến cho các kiến trúc GPU dựa trên NoC do tính khả mở rộng và đơn giản của nó. Trong một topology lưới, các lõi và phân vùng bộ nhớ được sắp xếp trong một lưới 2D, với mỗi nút được kết nối với các nút lân cận. Hình 8.2 cho thấy một topology lưới 4x4 cho một GPU với 16 lõi.
Lõi 0 --- Lõi 1 --- Lõi 2 --- Lõi 3
| | | |
| | | |
Lõi 4 --- Lõi 5 --- Lõi 6 --- Lõi 7
| | | |
| | | |
Lõi 8 --- Lõi 9 --- Lõi 10-- Lõi 11
| | | |
| | | |
Lõi 12-- Lõi 13-- Lõi 14-- Lõi 15
Hình 8.2: Topology lưới 4x4 cho một GPU với 16 lõi.
Topology lưới cung cấp khả năng mở rộng tốt khi số lượng liên kết và độ phức tạp của bộ định tuyến tăng tuyến tính với số lượng nút. Tuy nhiên, số lần nhảy trung bình và độ trễ tăng theo kích thước mạng, có thể ảnh hưởng đến hiệu suất của các GPU lớn hơn.
Topology vòng (Ring Topology)
Topology vòng kết nối các lõi và phân vùng bộ nhớ theo hình thức vòng tròn. Mỗi nút được kết nối với hai nút lân cận, một theo hướng kim đồng hồ và một theo hướng ngược chiều kim đồng hồ. Hình 8.3 minh họa một topology vòng cho một GPU với tám lõi.
Lõi 0 --- Lõi 1
| |
| |
Lõi 7 Lõi 2
| |
| |
Lõi 6 --- Lõi 5
| |
| |
Lõi 4 --- Lõi 3
Hình 8.3: Topology vòng cho một GPU với tám lõi.
Topology vòng đơn giản để triển khai và cung cấp một sự phân bổ cân bằng của lưu lượng. Tuy nhiên, số lần nhảy trung bình và độ trễ tăng tuyến tính với số lượng nút, khiến nó ít phù hợp hơn với các thiết kế GPU lớn hơn.
###Dưới đây là bản dịch tiếng Việt của file Markdown, với chú thích trong mã nguồn không được dịch.
Các Mạng Nối Kết Phân Cấp và Hỗn Hợp
Để giải quyết các hạn chế về khả năng mở rộng của các mạng nối kết riêng lẻ, các mạng nối kết phân cấp và hỗn hợp đã được đề xuất để sử dụng cho các liên kết GPU. Những mạng nối kết này kết hợp nhiều mạng nhỏ hơn hoặc các kiểu mạng nối kết khác nhau để tạo thành một mạng nối kết lớn hơn và có khả năng mở rộng hơn.
Ví dụ, một mạng nối kết lưới phân cấp có thể được tạo bằng cách chia một lưới lớn thành các tiểu lưới nhỏ hơn và kết nối chúng thông qua một mạng cấp cao hơn. Cách tiếp cận này giảm số nhảy trung bình và độ trễ so với một mạng lưới phẳng.
Các mạng nối kết hỗn hợp, như sự kết hợp của một lưới và một vòng, cũng có thể được sử dụng để cân bằng các trao đổi giữa khả năng mở rộng và hiệu suất. Mạng lưới có thể được sử dụng để giao tiếp cục bộ trong một nhóm lõi, trong khi mạng vòng có thể được sử dụng để giao tiếp toàn cầu giữa các nhóm.
Các Thuật Toán Định Tuyến và Điều Khiển Luồng
Các thuật toán định tuyến và cơ chế điều khiển luồng đóng vai trò quan trọng trong việc quản lý luồng dữ liệu thông qua mạng nối kết và đảm bảo sử dụng hiệu quả các tài nguyên mạng. Chúng xác định cách các gói tin được định tuyến từ nguồn đến điểm đến và cách xử lý tắc nghẽn mạng.
Các Thuật Toán Định Tuyến
Các thuật toán định tuyến có thể được phân loại thành hai nhóm chính: xác định và thích ứng.
-
Định tuyến Xác định:
- Các thuật toán định tuyến xác định luôn chọn cùng một đường dẫn giữa một cặp nguồn và đích nhất định, bất kể điều kiện mạng.
- Ví dụ về các thuật toán định tuyến xác định bao gồm định tuyến theo thứ tự chiều (DOR) và định tuyến XY.
- DOR định tuyến các gói tin trước tiên theo chiều X và sau đó theo chiều Y trong một mạng lưới.
- Định tuyến xác định đơn giản để triển khai và cung cấp độ trễ có thể dự đoán được, nhưng có thể dẫn đến phân bổ lưu lượng không đều và tắc nghẽn.
-
Định tuyến Thích ứng:
- Các thuật toán định tuyến thích ứng chọn đường dẫn động dựa trên các điều kiện mạng hiện tại, như mức sử dụng liên kết hoặc tắc nghẽn.
- Ví dụDưới đây là bản dịch tiếng Việt của tệp Markdown này. Đối với mã, tôi không dịch mã, chỉ dịch các bình luận.
Các loại thuật toán định tuyến thích ứng bao gồm định tuyến thích ứng tối thiểu và định tuyến thích ứng hoàn toàn.
- Định tuyến thích ứng tối thiểu cho phép các gói tin đi bất kỳ đường dẫn tối thiểu (đường dẫn ngắn nhất) giữa nguồn và đích.
- Định tuyến thích ứng hoàn toàn cho phép các gói tin đi bất kỳ đường dẫn có sẵn, bao gồm cả các đường dẫn không tối thiểu, để tránh các khu vực đông đúc.
- Định tuyến thích ứng có thể cân bằng tải lưu lượng tốt hơn và giảm thiểu tình trạng ùn tắc, nhưng nó yêu cầu phần cứng phức tạp hơn và có thể giới thiệu độ trễ bổ sung.
Hình 8.4 minh họa sự khác biệt giữa định tuyến XY xác định và định tuyến thích ứng tối thiểu trong một topology lưới.
(0,0) --- (1,0) --- (2,0) --- (3,0)
| | | |
| | | |
(0,1) --- (1,1) --- (2,1) --- (3,1)
| | | |
| | | |
(0,2) --- (1,2) --- (2,2) --- (3,2)
| | | |
| | | |
(0,3) --- (1,3) --- (2,3) --- (3,3)
Định tuyến XY:
(0,0) -> (1,0) -> (1,1) -> (1,2) -> (1,3)
Định tuyến thích ứng tối thiểu:
(0,0) -> (1,0) -> (2,0) -> (3,0) -> (3,1) -> (3,2) -> (3,3)
hoặc
(0,0) -> (0,1) -> (0,2) -> (0,3) -> (1,3) -> (2,3) -> (3,3)
Hình 8.4: So sánh định tuyến XY xác định và định tuyến thích ứng tối thiểu trong một topology lưới.
Điều khiển luồng
Các cơ chế điều khiển luồng quản lý việc phân bổ tài nguyên mạng, chẳng hạn như bộ đệm và liên kết, để ngăn ngừa tình trạng ùn tắc và đảm bảo sử dụng công bằng. Hai kỹ thuật điều khiển luồng phổ biến được sử dụng trong các kết nối GPU là điều khiển luồng dựa trên tín dụng và điều khiển luồng kênh ảo.
- Điều khiển luồng dựa trên tín dụng:
- Trong điều khiển luồng dựa trên tín dụng, mỗi bộ định tuyến duy trì một bộ đếm các không gian bộ đệm có sẵn (tín dụng) ở bộ định tuyến phía dưới.
- Khi một bộ định tuyến gửi một gói tin, nó giảm số tín dụng của mình. Khi bộ định tuyến phía dưới giải phóng một không gian bộ đệm, nó gửi một tín dụng trở lại bộ định tuyến phía trên.
- Bộ định tuyến phía trênĐây là bản dịch tiếng Việt của tệp Markdown:
Router chỉ có thể gửi một gói tin nếu nó có đủ tín dụng, ngăn chặn tràn bộ đệm và tắc nghẽn.
- Điều khiển Luồng Kênh Ảo:
- Điều khiển luồng kênh ảo cho phép nhiều kênh logic chia sẻ cùng một đường kết nối vật lý, cung cấp hiệu quả sử dụng tài nguyên mạng tốt hơn.
- Mỗi kênh ảo có bộ đệm riêng và cơ chế điều khiển luồng của riêng nó, cho phép các luồng giao thông khác nhau được cách ly và ưu tiên.
- Kênh ảo có thể ngăn chặn tình trạng chặn đầu dòng (head-of-line blocking), nơi một gói tin bị chặn ở đầu bộ đệm sẽ ngăn các gói tin khác tiếp tục.
Hình 8.5 minh họa khái niệm về kênh ảo trong một router.
Cổng Vào 0 Cổng Vào 1 Cổng Vào 2 Cổng Vào 3
| | | |
| | | |
VC0 VC1 VC2 VC0 VC1 VC2 VC0 VC1 VC2 VC0 VC1 VC2
| | | |
| | | |
--------- Bộ Chuyển Mạch Chéo ---------
|
|
Cổng Ra 0
Hình 8.5: Kênh ảo trong một router.
Đặc điểm tải và Mẫu Lưu Lượng
Hiểu rõ các đặc điểm của tải GPU và mẫu lưu lượng của chúng là rất quan trọng để thiết kế các liên kết nội bộ hiệu quả. Các ứng dụng khác nhau thể hiện các mẫu giao tiếp khác nhau và có các yêu cầu khác nhau về băng thông, độ trễ và tính cục bộ.
Đặc điểm Tải
Tải GPU có thể được mô tả dựa trên một số yếu tố, như:
-
Cường độ Tính toán:
- Các tải tính toán cường độ cao có tỷ lệ tính toán cao so với truy cập bộ nhớ.
- Các tải này thường yêu cầu giao tiếp băng thông cao giữa các lõi và phân vùng bộ nhớ để cung cấp dữ liệu cho các đơn vị tính toán.
-
Các Mẫu Truy Cập Bộ Nhớ:
- Một số tải thể hiện các mẫu truy cập bộ nhớ đều đặn, như truy cập tuần tự hoặc truy cập theo ô.Dưới đây là bản dịch tiếng Việt của file markdown với chú thích dịch cho các đoạn văn bản, không dịch code:
Trong khi những người khác có các mẫu truy cập không đều hoặc ngẫu nhiên.
- Các mẫu truy cập đều đặn có thể được tận dụng bằng các kỹthuật như ghép bộ nhớ và đệm trước, trong khi các mẫu không đều có thể yêu cầu các kỹthuật quản lý bộ nhớ tinh vi hơn.
-
Chia sẻ dữ liệu và đồng bộ hóa:
- Các tải lượng công việc với nhu cầu chia sẻ dữ liệu và đồng bộ hóa cao, như các thuật toán đồ thị hoặc mô phỏng vật lý, có thể tạo ra lưu lượng truyền thông giữa các lõi đáng kể.
- Hỗ trợ hiệu quả cho các nguyên tố đồng bộ hóa, như rào cản và các thao tác nguyên tử, là điều quan trọng cho những tải lượng công việc này.
-
Tính cục bộ:
- Các tải lượng công việc với tính cục bộ không gian và thời gian cao có thể được tận dụng từ việc lưu trữ cache và tái sử dụng dữ liệu.
- Khai thác tính cục bộ có thể giảm lượng lưu lượng trên liên kết liên kết và cải thiện hiệu suất tổng thể.
Các mẫu lưu lượng
Các tải lượng công việc GPU khác nhau thể hiện các mẫu lưu lượng khác nhau dựa trên nhu cầu giao tiếp của chúng. Một số mẫu lưu lượng phổ biến bao gồm:
-
Lưu lượng ngẫu nhiên đều:
- Trong lưu lượng ngẫu nhiên đều, mỗi nút gửi các gói tin đến các điểm đến được chọn ngẫu nhiên với xác suất bằng nhau.
- Mẫu lưu lượng này đại diện cho một kịch bản tệ nhất và thường được sử dụng để kiểm tra sức chịu tải của liên kết.
-
Lưu lượng lân cận nhất:
- Trong lưu lượng lân cận nhất, các nút giao tiếp chủ yếu với các nút lân cận trực tiếp trong mạng.
- Mẫu lưu lượng này phổ biến trong các ứng dụng có tính cục bộ không gian mạnh, như tính toán mẫu hoặc xử lý ảnh.
-
Lưu lượng điểm nóng:
- Trong lưu lượng điểm nóng, một số lượng nhỏ các nút (điểm nóng) nhận được lượng lưu lượng lớn hơn nhiều so với các nút khác.
- Lưu lượng điểm nóng có thể xảy ra trong các ứng dụng có các cấu trúc dữ liệu được chia sẻ hoặc các cơ chế điều khiển tập trung.
-
Lưu lượng tất cả-đến-tất cả:
- Trong lưu lượng tất cả-đến-tất cả, mỗi nút gửi các gói tin đến tất cả các nút khác trong mạng.
- Mẫu lưu lượng này phổ biến trong các thao tác giao tiếp tập thể, như chuyển vị ma trận hoặc FFT.
Hình 8.6 minh họaHere is the Vietnamese translation of the provided markdown file, with the code comments translated:
Lưu lượng Truy Cập Random Đồng Nhất:
(0,0) -> (2,3)
(1,1) -> (3,2)
(2,2) -> (0,1)
...
Lưu lượng Truy Cập Láng Giềng Gần Nhất:
(0,0) -> (0,1), (1,0)
(1,1) -> (0,1), (1,0), (1,2), (2,1)
(2,2) -> (1,2), (2,1), (2,3), (3,2)
...
Lưu lượng Truy Cập Điểm Nóng: (0,0) -> (1,1) (1,0) -> (1,1) (2,0) -> (1,1) ...
Lưu lượng Truy Cập Tất Cả-với-Tất Cả: (0,0) -> (1,0), (2,0), (3,0), (0,1), (1,1), (2,1), (3,1), ... (1,0) -> (0,0), (2,0), (3,0), (0,1), (1,1), (2,1), (3,1), ... (2,0) -> (0,0), (1,0), (3,0), (0,1), (1,1), (2,1), (3,1), ... ...
Hình 8.6: Những ví dụ về các mẫu lưu lượng truy cập khác nhau trong một topo-lô-gi lưới (mesh).
Hiểu các mẫu lưu lượng truy cập mà các tải GPU thể hiện là rất quan trọng để thiết kế các liên kết nội bộ hiệu quả. Các công cụ đo lường và các khuôn khổ mô phỏng có thể được sử dụng để đặc trưng hóa các mẫu truyền thông của các tải đại diện và hướng dẫn thiết kế topo-lô-gi liên kết, các thuật toán định tuyến, và các cơ chế điều khiển luồng.
## Thiết Kế Các Liên Kết Nội Bộ Có Thể Mở Rộng và Hiệu Quả
Thiết kế các liên kết nội bộ có thể mở rộng và hiệu quả cho GPU cần xem xét cẩn thận các yếu tố khác nhau, như số lượng lõi và phân vùng bộ nhớ, các mẫu lưu lượng truy cập dự kiến, và các ràng buộc về công suất và diện tích. Một số nguyên tắc thiết kế và kỹ thuật chính để xây dựng các liên kết nội bộ GPU hiệu suất cao bao gồm:
1. **Lựa Chọn Topo-lô-gi**: Chọn một topo-lô-gi liên kết nội bộ phù hợp dựa trên các yêu cầu về khả năng mở rộng, các mẫu lưu lượng truy cập dự kiến, và các ràng buộc về thiết kế. Topo-lô-gi lưới và chéo là những topo-lô-gi thường được sử dụng trong GPU, nhưng các topo-lô-gi phân cấp và lai ghép cũng có thể được áp dụng cho các thiết kế quy mô lớn hơn.
2. **Thiết Kế Thuật Toán Định Tuyến**: Phát triển các thuật toán định tuyến có thể xử lý hiệu quả các mẫu lưu lượng truy cập dự kiến trong khi giảm thiểu tình trạng tắc nghẽn và độ trễ. Các thuật toán định tuyến thích ứng có thể điều chỉnh động để phù hợp với các điều kiện mạng thường được sử dụng trong GPU để cải thiện hiệu suất theo từng phần.Đây là bản dịch tiếng Việt của tập tin markdown:
3. **Tối ưu hóa Kiểm soát Luồng**: Tối ưu hóa các cơ chế kiểm soát luồng để tối đa hóa việc sử dụng mạng và giảm thiểu yêu cầu về bộ đệm. Các kỹ thuật như kiểm soát luồng kênh ảo và kiểm soát luồng dựa trên tín hiệu tín dụng có thể giúp cải thiện hiệu quả của mạng và ngăn chặn chết ứng dụng.
4. **Cung cấp Băng thông**: Đảm bảo có đủ băng thông giữa các lõi và các phân vùng bộ nhớ để đáp ứng các yêu cầu về hiệu suất của các workload mục tiêu. Điều này có thể bao gồm tăng số lượng kênh bộ nhớ, sử dụng các công nghệ bộ nhớ băng thông cao, hoặc áp dụng các kỹ thuật tín hiệu nâng cao.
5. **Tối ưu Công suất và Diện tích**: Giảm thiểu mức tiêu thụ điện năng và diện tích của bộ liên kết thông qua các kỹ thuật như ngắt nguồn, ngắt xung, và tín hiệu low-swing. Thiết kế vật lý và tối ưu hóa bố trí cẩn thận cũng có thể giúp giảm thiểu tác động về diện tích và công suất của bộ liên kết.
6. **Độ tin cậy và Dung sai lỗi**: Tích hợp các tính năng độ tin cậy và dung sai lỗi vào trong thiết kế bộ liên kết để đảm bảo hoạt động chính xác khi có lỗi hoặc sự cố. Điều này có thể bao gồm các kỹ thuật như phát hiện và sửa lỗi, d冠ba dự phòng, và định tuyến thích ứng.
Ví dụ: Thiết kế bộ liên kết lưới phân cấp cho một GPU quy mô lớn
Xem xét một GPU có 128 lõi và 16 phân vùng bộ nhớ. Một bộ liên kết lưới phẳng sẽ yêu cầu một lưới 12x12 (144 node), điều này có thể quá lớn và tốn năng lượng. Thay vào đó, một bộ liên kết lưới phân cấp có thể được thiết kế như sau:
- Chia 128 lõi thành 16 cụm, mỗi cụm chứa 8 lõi.
- Trong mỗi cụm, sử dụng một lưới 8x8 để kết nối các lõi và một phân vùng bộ nhớ cục bộ.
- Kết nối 16 cụm bằng một lưới toàn cục 4x4.
Thiết kế phân cấp này giảm độ phức tạp và tiêu thụ điện năng của bộ liên kết, đồng thời vẫn cung cấp băng thông cao và khả năng mở rộng. Các lưới cục bộ xử lý hiệu quả các liên lạc trong cụm, trong khi lưới toàn cục cho phép các liên lạc giữa các cụm.Truy cập đến các phân vùng bộ nhớ từ xa
Hình 8.7 minh họa thiết kế liên kết lưới phân cấp.
Lưới toàn cục (4x4)
Cụm 0 Cụm 1 Cụm 2 Cụm 3 +-----------+-----------+-----------+-----------+ | | | | | | Lưới | Lưới | Lưới | Lưới | | cục bộ | cục bộ | cục bộ | cục bộ | | (8x8) | (8x8) | (8x8) | (8x8) | | | | | | +-----------+-----------+-----------+-----------+ | | | | | | Lưới | Lưới | Lưới | Lưới | | cục bộ | cục bộ | cục bộ | cục bộ | | (8x8) | (8x8) | (8x8) | (8x8) | | | | | | +-----------+-----------+-----------+-----------+ | | | | | | Lưới | Lưới | Lưới | Lưới | | cục bộ | cục bộ | cục bộ | cục bộ | | (8x8) | (8x8) | (8x8) | (8x8) | | | | | | +-----------+-----------+-----------+-----------+ | | | | | | Lưới | Lưới | Lưới | Lưới | | cục bộ | cục bộ | cục bộ | cục bộ | | (8x8) | (8x8) | (8x8) | (8x8) | | | | | | +-----------+-----------+-----------+-----------+
Hình 8.7: Thiết kế liên kết lưới phân cấp cho một GPU quy mô lớn.
## Kết luận
Thiết kế liên kết và mạng trên chip đóng một vai trò quan trọng trong hiệu suất, khả năng mở rộng và hiệu quả của các GPU hiện đại. Khi số lõi và phân vùng bộ nhớ tiếp tục tăng, liên kết phải cung cấp băng thông cao, độ trễ thấp và giao tiếp hiệu quả giữa các thành phần này.
Các khía cạnh chính của thiết kế liên kết GPU bao gồm lựa chọn kiếnĐây là bản dịch tiếng Việt của tệp Markdown được cung cấp:
Thiết kế kiến trúc mạng liên kết trong GPU liên quan đến các vấn đề như: cấu trúc mạng topo, các thuật toán định tuyến, cơ chế điều khiển luồng và đặc tính tải công việc. Các cấu trúc topo lưới và chập chéo thường được sử dụng trong GPU, nhưng các cấu trúc topo phân cấp và lai hợp có thể được áp dụng cho các thiết kế quy mô lớn hơn. Các thuật toán định tuyến thích ứng và các kỹ thuật điều khiển luồng nâng cao có thể giúp cải thiện hiệu suất và hiệu quả của mạng.
Việc thiết kế các mạng liên kết có thể mở rộng và hiệu quả liên quan đến việc xem xét cẩn thận các yếu tố như cung cấp băng thông, tối ưu hóa công suất và diện tích, và độ tin cậy. Các kỹ thuật như thiết kế phân cấp, điều khiển công suất và khả năng chịu lỗi có thể giúp giải quyết các thách thức này.
Khi các kiến trúc GPU tiếp tục phát triển và nhu cầu của các tải công việc song song tăng lên, thiết kế mạng liên kết và mạng trên chip sẽ vẫn là một lĩnh vực nghiên cứu và đổi mới tích cực. Các cấu trúc topo mới, thuật toán định tuyến và thiết kế tiết kiệm năng lượng sẽ là thiết yếu để cho phép thế hệ tiếp theo của các GPU hiệu suất cao và tiết kiệm năng lượng.