Kiến trúc song song và đa nhân
Kiến trúc song song và đa nhân liên quan đến phần cứng thực hiện nhiều thao tác cùng lúc — nhiều nhân trên một chip, các đơn vị vector và SIMD, và các GPU song song khổng lồ — cùng với cấu trúc bộ nhớ và giao tiếp cho phép công việc song song diễn ra đúng đắn và hiệu quả.
Definition
Kiến trúc song song và đa nhân là thiết kế phần cứng máy tính thực hiện nhiều phép tính đồng thời thông qua các nhân được nhân bản, các đơn vị song song dữ liệu rộng, hoặc các bộ tăng tốc chuyên dụng, cùng với các cơ chế kết nối và bộ nhớ điều phối chúng.
Scope
Lĩnh vực này bao gồm các tổ chức phần cứng cho tính song song: bộ xử lý đa chip và thiết kế nhiều nhân, hệ thống bộ nhớ chia sẻ cùng với tính nhất quán và đồng bộ mà chúng yêu cầu, bộ xử lý SIMD và vector cho tính song song cấp độ dữ liệu, và kiến trúc GPU. Nó đề cập đến cách phần cứng song song được xây dựng và cách hiệu suất của nó mở rộng. Nó không bao gồm khía cạnh phần mềm của lập trình song song và phân tán cũng như các hệ thống phân tán quy mô cụm, vốn được đề cập trong điện toán phân tán và song song, và công cụ thực thi lõi đơn được đề cập trong vi kiến trúc bộ xử lý.
Sub-topics
Core questions
- Phần cứng song song mở rộng hiệu suất như thế nào, và điều gì giới hạn sự mở rộng đó?
- Nhiều nhân được tích hợp trên một chip và kết nối với bộ nhớ chia sẻ như thế nào?
- Phần cứng bộ nhớ chia sẻ phải cung cấp những đảm bảo nhất quán và đồng bộ bộ nhớ nào?
- Các thiết kế SIMD, vector và GPU khai thác tính song song cấp độ dữ liệu như thế nào?
- Các kiến trúc song song được khớp với khối lượng công việc như thế nào để tối đa hóa thông lượng hữu ích trên mỗi watt?
Key concepts
- bộ xử lý đa chip
- tính song song cấp độ luồng
- tính song song cấp độ dữ liệu
- xử lý SIMD và vector
- GPU và nhiều nhân
- bộ nhớ chia sẻ và tính nhất quán
- tính nhất quán bộ nhớ
- mạng liên kết
- định luật Amdahl và khả năng mở rộng
- phần cứng đồng bộ hóa
Key theories
- Định luật Amdahl
- Tốc độ tăng từ việc song song hóa một phép tính bị giới hạn bởi phần phải chạy tuần tự: ngay cả với bộ xử lý không giới hạn, phần tuần tự vẫn giới hạn tốc độ tăng tổng thể, điều này định hình cách các kiến trúc song song được thiết kế và đánh giá.
- Phân loại tính song song kiểu Flynn
- Phần cứng song song được tổ chức theo cách các luồng lệnh và dữ liệu kết hợp — ví dụ, một lệnh nhiều dữ liệu (SIMD) cho tính song song dữ liệu và nhiều lệnh nhiều dữ liệu (MIMD) cho các hệ thống đa nhân và đa bộ xử lý — một phân loại định hình các lựa chọn kiến trúc.
Mechanisms
Bộ xử lý đa nhân đặt một số nhân trên một khuôn chia sẻ một hoặc nhiều cấp bộ nhớ đệm và một giao diện bộ nhớ, được kết nối bằng một kết nối trên chip. Các giao thức nhất quán giữ cho bộ nhớ đệm của chúng nhất quán, và một mô hình nhất quán bộ nhớ định nghĩa thứ tự các thao tác bộ nhớ được nhìn thấy trên các nhân. Phần cứng song song dữ liệu — các đơn vị vector, các làn SIMD, và các GPU với nhiều nhân nhẹ — áp dụng một thao tác trên nhiều phần tử dữ liệu, trong khi các nguyên thủy đồng bộ hóa điều phối các luồng song song.
Clinical relevance
Sau khi khả năng mở rộng xung nhịp lõi đơn bị đình trệ, kiến trúc song song và đa nhân trở thành con đường chính để đạt hiệu suất cao hơn, do đó hầu hết các bộ xử lý hiện đại đều là đa nhân. Các GPU và đơn vị SIMD hiện đang cung cấp sức mạnh cho đồ họa, điện toán khoa học và các phép toán ma trận là trọng tâm của học sâu, làm cho phần cứng song song trở thành trung tâm của các khối lượng công việc hiệu suất cao và trí tuệ nhân tạo.
History
Các máy song song có từ các siêu máy tính vector như Cray-1 vào những năm 1970 và các bộ xử lý đa nhiệm nghiên cứu của những năm 1980 và 1990. Sự kết thúc của việc mở rộng tần số vào khoảng giữa những năm 2000 đã đẩy ngành công nghiệp hướng tới các chip đa nhân như một mặc định. Các GPU đã phát triển từ các đường ống đồ họa chức năng cố định thành các bộ tăng tốc đa nhân có thể lập trình, và các kiến trúc song song dữ liệu đã trở thành nền tảng cho học máy hiện đại.
Debates
- Đa nhân đa năng so với bộ tăng tốc chuyên dụng
- Với lợi nhuận giảm dần từ đa nhân đồng nhất, có một cuộc tranh luận về việc nên ưu tiên bộ tăng tốc chuyên biệt theo miền (GPU, đơn vị tensor) đến mức nào so với các nhân đa năng, đánh đổi khả năng lập trình và tính linh hoạt với hiệu quả cho các khối lượng công việc cụ thể.
Key figures
- Gene Amdahl
- Michael J. Flynn
- John L. Hennessy
- David A. Patterson
- David E. Culler
Related topics
Seminal works
- hennessy2019
- amdahl1967
- patterson2020
Frequently asked questions
- Tại sao các bộ xử lý chuyển sang nhiều nhân?
- Việc tăng tần số xung nhịp của một nhân đơn đã gặp phải giới hạn về điện năng và nhiệt độ vào giữa những năm 2000. Việc thêm nhiều nhân đã tăng tổng thông lượng trong cùng một ngân sách điện năng, do đó đa nhân trở thành cách thống trị để duy trì hiệu suất tăng trưởng — mặc dù nó chuyển gánh nặng tăng tốc sang phần mềm song song.
- GPU khác với CPU đa nhân như thế nào?
- Một CPU có một vài nhân mạnh mẽ được tối ưu hóa cho việc thực thi đa năng, độ trễ thấp. Một GPU có nhiều nhân đơn giản hơn được tối ưu hóa cho công việc song song dữ liệu thông lượng cao, thực hiện cùng một thao tác trên nhiều phần tử dữ liệu, phù hợp với đồ họa và tính toán số dày đặc nhưng không phải tất cả các khối lượng công việc.