Làm thế nào để bạn tính toán tốc độ xử lý trên bộ vi xử lý đa lõi?

Mục lục:

Làm thế nào để bạn tính toán tốc độ xử lý trên bộ vi xử lý đa lõi?
Làm thế nào để bạn tính toán tốc độ xử lý trên bộ vi xử lý đa lõi?

Video: Làm thế nào để bạn tính toán tốc độ xử lý trên bộ vi xử lý đa lõi?

Video: Làm thế nào để bạn tính toán tốc độ xử lý trên bộ vi xử lý đa lõi?
Video: Cách Làm Giao Diện Windows ĐỘC LẠ Hơn - YouTube 2024, Tháng tư
Anonim
Sự ra đời của bộ vi xử lý đa lõi tiết kiệm lớp người tiêu dùng đặt ra câu hỏi cho nhiều người sử dụng: làm thế nào để bạn có hiệu quả tính toán tốc độ thực sự của một hệ thống đa lõi? Là một hệ thống 3Ghz 4 lõi thực sự 12Ghz? Đọc tiếp khi chúng tôi điều tra.
Sự ra đời của bộ vi xử lý đa lõi tiết kiệm lớp người tiêu dùng đặt ra câu hỏi cho nhiều người sử dụng: làm thế nào để bạn có hiệu quả tính toán tốc độ thực sự của một hệ thống đa lõi? Là một hệ thống 3Ghz 4 lõi thực sự 12Ghz? Đọc tiếp khi chúng tôi điều tra.

Phiên Hỏi & Đáp hôm nay đến với chúng tôi theo lịch sự của SuperUser - một phân khu của Stack Exchange, một nhóm các trang web Hỏi & Đáp dành cho cộng đồng.

Câu hỏi

Người đọc SuperUser NReilingh đã tò mò làm thế nào để tốc độ xử lý cho một hệ thống đa lõi thực sự được tính toán:

Is it correct to say, for example, that a processor with four cores each running at 3GHz is in fact a processor running at 12GHz?

I once got into a “Mac vs. PC” argument (which by the way is NOT the focus of this topic… that was back in middle school) with an acquaintance who insisted that Macs were only being advertised as 1Ghz machines because they were dual-processor G4s each running at 500MHz.

At the time I knew this to be hogwash for reasons I think are apparent to most people, but I just saw a comment on this website to the effect of “6 cores x 0.2GHz = 1.2Ghz” and that got me thinking again about whether there’s a real answer to this.

So, this is a more-or-less philosophical/deep technical question about the semantics of clock speed calculation. I see two possibilities:

  1. Each core is in fact doing x calculations per second, thus the total number of calculations is x(cores).
  2. Clock speed is rather a count of the number of cycles the processor goes through in the space of a second, so as long as all cores are running at the same speed, the speed of each clock cycle stays the same no matter how many cores exist. In other words, Hz = (core1Hz+core2Hz+…)/cores.

Vì vậy, cách thích hợp để biểu thị tổng tốc độ đồng hồ và quan trọng hơn, là nó thậm chí có thể sử dụng tốc độ danh pháp đơn lõi trên một hệ thống đa lõi là gì?

Câu trả lời

Người đóng góp của SuperUser Mokubai giúp mọi thứ rõ ràng. Anh ấy viết:

The main reason why a quad-core 3GHz processor is never as fast as a 12GHz single core is to do with how the task running on that processor works, i.e. single-threaded or multi-threaded. Amdahl’s Law is important when considering the types of tasks you are running.

If you have a task that is inherently linear and has to be done precisely step-by-step such as (a grossly simple program)

10: a = a + 1

20: goto 10

Sau đó, nhiệm vụ phụ thuộc rất nhiều vào kết quả của lần truyền trước đó và không thể chạy nhiều bản sao của chính nó mà không làm hỏng giá trị của

'a'

vì mỗi bản sao sẽ nhận được giá trị của

'a'

vào những thời điểm khác nhau và viết ngược lại. Điều này hạn chế nhiệm vụ cho một chủ đề duy nhất và do đó nhiệm vụ duy nhất có thể được chạy trên một lõi duy nhất tại bất kỳ thời điểm nào, nếu nó là để chạy trên nhiều lõi thì tham nhũng đồng bộ hóa sẽ xảy ra. Điều này giới hạn nó đến 1/2 của sức mạnh CPU của một hệ thống lõi kép, hoặc 1/4 trong một hệ thống lõi tứ.

Bây giờ hãy thực hiện một nhiệm vụ như:

10: a = a + 1

20: b = b + 1

30: c = c + 1

40: d = d + 1

50: goto 10

Tất cả những dòng này là độc lập và có thể được chia thành 4 chương trình riêng biệt như là người đầu tiên và chạy cùng một lúc, mỗi người có thể tận dụng hiệu quả của toàn bộ sức mạnh của một trong những lõi mà không cần bất kỳ vấn đề đồng bộ hóa, đây là nơi mà Luật Amdahl đi vào nó.

Vì vậy, nếu bạn có một ứng dụng đơn luồng làm tính toán brute force bộ vi xử lý 12GHz duy nhất sẽ giành chiến thắng tay xuống, nếu bạn nào đó có thể làm cho sự phân chia nhiệm vụ thành các phần riêng biệt và đa luồng thì 4 lõi có thể đến gần, nhưng không hoàn toàn đạt được, cùng một hoạt động, theo Luật của Amdahl.

Điều chính mà một hệ thống đa CPU mang đến cho bạn là sự đáp ứng. Trên một máy tính đơn lẻ hoạt động mạnh, hệ thống có vẻ chậm chạp vì hầu hết thời gian có thể được sử dụng bởi một nhiệm vụ và các nhiệm vụ khác chỉ chạy trong các vụ nổ ngắn giữa nhiệm vụ lớn hơn, dẫn đến một hệ thống có vẻ chậm chạp hoặc lộn xộn. Trên một hệ thống đa lõi nhiệm vụ nặng nề nhận được một lõi và tất cả các nhiệm vụ khác chơi trên các lõi khác, làm công việc của họ một cách nhanh chóng và hiệu quả.

Đối số của “6 lõi x 0.2GHz = 1.2Ghz” là rác trong mọi tình huống ngoại trừ các nhiệm vụ hoàn toàn song song và độc lập. Có một số lượng các nhiệm vụ rất cao song song, nhưng chúng vẫn yêu cầu một số dạng đồng bộ hóa. Handbrake là một trancoder video mà là rất tốt việc sử dụng tất cả các CPU có sẵn nhưng nó đòi hỏi một quá trình cốt lõi để giữ đề khác chứa đầy dữ liệu và thu thập các dữ liệu mà họ đang thực hiện với.

Mỗi lõi trong thực tế là tính toán x mỗi giây, do đó tổng số phép tính là x (lõi).

Mỗi lõi có khả năng thực hiện các phép tính x mỗi giây, giả sử khối lượng công việc là phù hợp song song, trên một chương trình tuyến tính tất cả các bạn có là 1 lõi.

Tốc độ đồng hồ là số lượng chu kỳ mà bộ vi xử lý trải qua trong khoảng không giây, miễn là tất cả các lõi đều chạy ở cùng tốc độ, tốc độ của mỗi chu kỳ đồng hồ vẫn giữ nguyên cho dù có bao nhiêu lõi. Nói cách khác, Hz = (core1Hz + core2Hz +…) / lõi.

Tôi nghĩ rằng đó là sai lầm khi nghĩ rằng 4 x 3GHz = 12GHz, cấp phép toán hoạt động, nhưng bạn đang so sánh táo với cam và tổng số tiền không đúng, chỉ có thể không được thêm cùng nhau cho mọi tình huống. Tôi sẽ thay đổi nó thành 4 x 3GHz = 4 x 3GHz.

Có cái gì để thêm vào lời giải thích? Âm thanh trong các ý kiến. Bạn muốn đọc thêm câu trả lời từ những người dùng Stack Exchange có hiểu biết công nghệ khác? Xem toàn bộ chuỗi thảo luận tại đây.

Đề xuất: