Là số lõi cao hơn hoặc tốc độ xung nhịp cao hơn có lợi hơn cho hiệu suất của máy tính? [đóng cửa]


16

Với việc giảm chi phí silicon và nhu cầu của người tiêu dùng ngày càng tăng, các nhà sản xuất dường như đang thúc đẩy một trong hai điều: tốc độ đồng hồ và / hoặc số lượng cốt lõi. Với cách mọi thứ đang diễn ra, dường như tốc độ xung nhịp của bộ xử lý không còn tăng nữa, mà là số lượng lõi xử lý.

Tôi nhớ chỉ vài năm trước, tôi đã có bộ xử lý Pentium 4 lõi đơn nhanh đẹp. Chuyển nhanh đến ngày hôm nay và tôi không nghĩ rằng bạn thậm chí có thể mua bộ xử lý lõi đơn (chưa kể đến sự gia tăng của bộ xử lý đa lõi ngay cả trong điện thoại di động ). Cách mọi thứ đang diễn ra, chúng ta có thể tìm thấy các máy tính có hàng trăm lõi trong một vài năm (và tôi biết nhiều hệ điều hành đã hỗ trợ cho nó).

Có lợi hơn cho hiệu năng tổng thể của hệ thống để tăng tốc độ xung nhịp hay tăng số lõi? Giả sử chúng ta đang có hàng trăm lõi chạy cùng nhau, hoặc tốc độ đồng hồ cao gấp mười lần những gì chúng ta có ngày nay (bất kể điều đó có khả thi về mặt vật lý hay không).

Một số ví dụ về các quy trình phổ biến (ví dụ mã hóa, nén tệp, chỉnh sửa hình ảnh / video) sẽ có lợi nhất từ ​​cái này hay cái khác? Có một số quy trình thể, nhưng hiện tại không (vì lý do kỹ thuật) tăng tốc bằng cách tăng tính song song của chúng?


Giả sử bộ xử lý giả thuyết có cùng thiết kế lõi (kích thước từ, độ rộng bit địa chỉ, kích thước bus bộ nhớ, bộ đệm, v.v.), vì vậy các biến duy nhất ở đây là tốc độ xung nhịp và số lõi. Và một lần nữa, tôi không nói về một, hai hoặc thậm chí bốn lõi - hãy tưởng tượng hàng chục đến hàng trăm.


9
Tất cả sẽ phụ thuộc vào những gì bạn muốn làm trên máy tính đó. Nhiều lõi tốt cho một số thứ, tốc độ xung nhịp cao hơn cho những thứ khác.
ChrisF

@ChrisF Cá nhân tôi biết câu trả lời, nhưng tôi hỏi điều này vì hai lý do. Đầu tiên là có thông tin này trên trang web (tôi chỉ thấy nó được hỏi liên quan đến bộ xử lý lõi kép hoặc lõi tứ), và thứ hai là cố gắng cung cấp cho mọi người ý tưởng về những gì sẽ đến "trong tương lai" và cho thấy các ứng dụng của cả hai mặt của phương trình.
Đột phá


3
Tôi sẽ nói rằng trong khi đây là một câu hỏi hay để nói trong khi có một pint, thì nó không phải là một câu hỏi trao đổi ngăn xếp tốt.
EBGreen

1
Có quá nhiều biến số, nếu if và các tham số khác + công nghệ liên tục thay đổi để phát triển một câu trả lời ngắn gọn sẽ có liên quan trong hơn một khoảng thời gian cụ thể. Đây là một chủ đề thú vị cho một diễn đàn hoặc blog, nhưng không phải là một cái gì đó được ghim xuống như một "câu trả lời". Tôi đã bỏ phiếu để đóng cửa vì lý do này vì vậy hãy để ngọn lửa bắt đầu !!!
Linker3000

Câu trả lời:


12

Có hai tình huống cơ bản cần được xem xét:

  1. Bộ xử lý được sử dụng với một máy tính chỉ thực hiện các phép tính cho một chương trình

  2. Bộ xử lý được sử dụng cho nhiều chương trình chạy cùng lúc

Tình huống đầu tiên là nơi 'tốc độ' của bộ xử lý quan trọng hơn, vì người dùng muốn khả năng tính toán nhanh chóng và hiệu quả. Những tình huống này thường để xử lý chuyên sâu tính toán, tức là tính các số nguyên tố để mã hóa / giải mã

Thứ hai là nơi có nhiều lõi có ích, vì mỗi chương trình có thể được gán cho một lõi riêng, do đó giải phóng từng chương trình khỏi 'thắt cổ chai' lẫn nhau. Trong thế giới ngày nay, người dùng trung bình sẽ sử dụng máy tính của họ cho nhiều chương trình cùng một lúc, do đó làm cho việc xử lý đa lõi trở thành một điều đáng mong đợi.

Tuy nhiên, đa lõi ! = Tốc độ nhanh hơn hoặc hiệu suất cao hơn trong mọi trường hợp. Vì hầu hết các chương trình được viết để xử lý lõi đơn * , tốc độ xung nhịp vẫn rất quan trọng để xem xét. Một sự kết hợp của cả hai phải được xem xét (cùng với nhiều yếu tố khác) .


* Có một số chương trình và hy vọng sẽ sớm tạo ra nhiều hơn nữa, trong đó nhiều lõi có thể được sử dụng cùng một lúc. Tương lai của phần mềm được tìm thấy với " Lập trình song song " này:

Các nhà phát triển phần mềm không còn có thể chỉ dựa vào việc tăng tốc độ xung nhịp một mình để tăng tốc các ứng dụng đơn luồng; thay vào đó, để đạt được lợi thế cạnh tranh, các nhà phát triển phải học cách thiết kế đúng các ứng dụng của họ để chạy trong môi trường luồng. Các kiến ​​trúc đa lõi có một gói bộ xử lý duy nhất chứa hai hoặc nhiều "lõi thực thi" hoặc các công cụ tính toán và phân phối với phần mềm thích hợp, thực hiện song song hoàn toàn nhiều luồng phần mềm.

- Intel


Câu trả lời hay nhất tôi từng thấy cho đến nay, +1. Bạn có biết nếu có thể tăng tốc mã hóa / giải mã với một số loại thuật toán song song (hoặc một thứ như vậy thậm chí còn tồn tại)?
Đột phá

2

Cá nhân tôi nghĩ rằng số lượng cốt lõi là con đường để đi. Phát triển phần mềm đã chuyển sang các hệ thống nối mạng để tài nguyên địa phương không còn là tài nguyên duy nhất có sẵn cho bạn. Yếu tố quan trọng nhất trong cách bạn làm việc bây giờ là mạng mà bạn là một phần của.

Lưu ý việc chuyển sang băng thông rộng di động, kết nối liên tục, truy cập từ xa, v.v ... Cùng với đó, kết nối liên tục đòi hỏi thời lượng pin. Mặc dù có thể tranh cãi về yếu tố CPU nào tối ưu hơn cho thời lượng pin (Bạn đã có một phương trình tối ưu hóa cổ điển của giá trị công việc so với thời gian), cá nhân tôi nghĩ, nếu bạn phải chọn một, tôi sẽ chọn nhiều lõi hơn.

Intel hiện cho phép bạn cung cấp năng lượng cho các lõi theo yêu cầu. Mặc dù không tối ưu như không có lõi để ngủ, nhưng có tùy chọn sử dụng nhiều lõi hơn cho phép bạn linh hoạt để chạy nhiều ứng dụng hơn trên cùng một nền tảng phần cứng.


2

Như ChrisF đề cập trong một bình luận, nó phụ thuộc. Nhưng vì những câu trả lời như thế không thực sự là câu trả lời, tôi sẽ cố gắng đưa ra một số tình huống trong đó một kịch bản sẽ có lợi hơn so với các kịch bản khác:

Trong hầu hết các quy trình phổ biến mà bạn đề cập, số lượng lõi sẽ không quan trọng lắm, vì hầu hết các công việc được thực hiện trong một luồng duy nhất chỉ có thể thực hiện trên một lõi (tại một thời điểm). Đối với các quá trình như vậy, một lõi đơn nhưng rất mạnh sẽ hoạt động tốt hơn so với một vài lõi chậm hơn. Cả mã hóa và nén tệp đều có thể là ngoại lệ đối với điều này, nhưng nó phụ thuộc rất nhiều vào thuật toán nào được sử dụng và liệu chúng có thể được thực thi song song hay không.

Tuy nhiên, bạn đã quên một trong những nhiệm vụ phổ biến nhất được thực hiện trên máy tính hiện nay: duyệt web. Một số trình duyệt phổ biến mở từng tab trong một quy trình riêng biệt (Chrome là trình duyệt duy nhất tôi chắc chắn làm điều này, vì đó là trình duyệt tôi sử dụng), nghĩa là nếu bạn có bốn tab mở trên hệ thống lõi tứ, mỗi cửa sổ duyệt có thể (về lý thuyết) có một lõi "với chính nó" (bỏ qua các luồng và nội dung của hệ điều hành) và nhanh như thể không có tab / cửa sổ trình duyệt nào khác mở. Đối với những người duyệt với nhiều tab mở cùng một lúc, đây có thể là một cải tiến hiệu suất nghiêm trọng mà không phải xây dựng các lõi CPU cực nhanh.

Chìa khóa để biết liệu một hệ thống đa lõi có lõi chậm hơn sẽ nhanh hơn hệ thống lõi đơn có lõi nhanh là biết bạn sẽ làm nhiều việc khác nhau đồng thời hay một vài việc, nhưng nặng nề . Vì điều này sẽ khác nhau rất nhiều từ người dùng đến người dùng, do đó, câu trả lời cho câu hỏi của bạn.


Các câu trả lời khác cũng tạo ra một vài điểm quan trọng:

  • hiệu suất của bộ xử lý không phải là tất cả về tốc độ xung nhịp hoặc số lõi nữa - các phần khác của bộ xử lý đang trở thành cổ chai khi tốc độ xung nhịp và số lõi cải thiện.
  • Đối với hầu hết người dùng, hiệu năng của bộ xử lý thậm chí không phải là cổ chai. Nếu bạn dành thời gian cho các ứng dụng được lưu trữ như Google Docs, tốc độ của card mạng sẽ quan trọng hơn tốc độ của lõi bộ xử lý của bạn. Nếu bạn đang xem hoặc chỉnh sửa tài liệu phim độ phân giải cao, hiệu suất đĩa cứng sẽ quan trọng hơn. Vân vân...

+1 để đưa ra một số suy nghĩ và thực sự đưa ra lời giải thích, nhưng tôi muốn chỉ ra một điều: có, một số trình duyệt đặt mỗi tab vào một quy trình riêng biệt , nhưng điều đó đã hoàn tất khi xảy ra sự cố. Hầu hết các trình duyệt ít nhất chạy từng tab trong một luồng riêng biệt và các hệ điều hành có khả năng chạy nhiều luồng (từ cùng một quy trình) trên các lõi khác nhau.
Đột phá

IE 9 thực hiện phương pháp đa quy trình. Tuy nhiên, tôi tin rằng họ sử dụng một số quy trình đã đặt và chỉ chia sẻ tất cả các tab giữa các quy trình đó. Nó dẫn đến ít quy trình hơn Chrome có thể kết thúc, trong khi vẫn có nghĩa là bạn sẽ chỉ mất một vài tab nếu tất cả xảy ra trong một đống nhuốm màu Redmond.
music2myear

Oh, và nó cũng phụ thuộc vào phần mềm. Mặc dù HĐH nói chung có thể xử lý việc quản lý lưu lượng và gửi các luồng chờ đến các lõi có sẵn (hình ảnh tinh thần của match.com đang diễn ra bên trong silicon của tôi), các chương trình đa luồng (hầu hết các sản phẩm Adobe Creative Suite và được hỗ trợ tốt khác , các công cụ phát triển đa phương tiện hiện đại) sẽ tận dụng tốt hơn nhiều khả năng của một hệ thống đa lõi.
music2myear

2

Trước hết, tốc độ lõi đơn chưa thực sự giảm nhiều như vậy. Lý do duy nhất khiến dòng sản phẩm Sandy Bridge hiện tại của Intel không đứng đầu Pentium 4s đơn lõi về mặt siêu âm là vì Intel thiếu sự cạnh tranh, vì vậy họ không cần phải cố gắng nhiều.

Thứ hai, tốc độ xung nhịp không phải là tất cả, ngay cả trên lõi đơn. Khi nhìn vào hiệu suất ứng dụng, một lần nữa so với Pentium 4, dòng sản phẩm hiện tại của Intel nhanh hơn khoảng 50% cho mỗi chu kỳ xung nhịp . Lý do tại sao Sandy Bridge nhanh hơn trên mỗi chu kỳ xung nhịp so với Pentium 4 (Prescott là hóa thân cuối cùng của nó) rất đa dạng, nhưng có bộ điều khiển bộ nhớ thông minh tìm nạp trước, có bộ điều khiển bộ nhớ trên cùng chết với CPU và Parallelism Parallel (ILP) đóng góp vào đó

Về cơ bản song song mức hướng dẫn có nghĩa là bộ xử lý xem các hướng dẫn và các phụ thuộc của chúng và nếu hai lệnh không phụ thuộc vào nhau, CPU có thể bắt đầu tải dữ liệu cho cả hai cùng một lúc và có thể sắp xếp lại các hướng dẫn của dữ liệu cho một trong các họ đến trước người kia.

Thứ ba, một số ứng dụng thực sự được hưởng lợi rất nhiều từ nhiều lõi. Ví dụ, Photoshop hầu như luôn thích nhiều lõi hơn tần số hoạt động. I E. ngay cả một lõi tứ chậm hầu như luôn đánh bại bất kỳ chip lõi kép nào và bất kỳ lõi kép nào cũng đánh bại bất kỳ chip lõi đơn nào. Tri-lõi là một túi hỗn hợp, họ thường giành chiến thắng trên lõi kép, nhưng không phải lúc nào cũng vậy.

Nói chung, các ứng dụng thực hiện cùng một loại hoạt động cho nhiều bộ dữ liệu khác nhau được hưởng lợi từ sự song song nhất. Ví dụ, nén video hoặc chỉnh sửa ảnh thường có thể được song song khá dễ dàng. Mặt khác, các trò chơi trên máy tính đã tỏ ra khó có thể song song hóa. Đồ họa trên chúng dĩ nhiên song song rất tốt, nhưng phần đó được thực thi trên GPU chứ không phải CPU. Các vật lý còn lại, sổ sách thế giới trò chơi và AI song song ít dễ dàng hơn.


1

Trên thực tế ngày nay, yếu tố quan trọng nhất không phải là tốc độ xung nhịp của bộ xử lý, có rất nhiều tính năng mới được đưa ra kể từ khi "yếu tố so sánh" này rơi vào tình trạng khó xử.

Hôm nay bạn phải xem xét nhiều yếu tố để suy luận về hiệu suất của bộ xử lý. Những thứ như:

  • số lõi
  • số lượng các chủ đề hoạt động song song
  • họ bộ xử lý (Dual core, Pentium, Core i / Calpella, Sandy Bridge, v.v.)
  • thế hệ bộ xử lý (thứ 2, thứ 6, v.v.) và sau đó
  • tốc độ xung nhịp của bộ xử lý.

Trên thực tế, khi tôi muốn so sánh tốc độ của bộ xử lý, tôi tham khảo mật khẩu của các bảng điểm chuẩn của notebookcheck . Điểm chuẩn, theo tôi, là yếu tố tốt nhất để đo lường và so sánh tốc độ và hiệu suất của bộ xử lý.


Có, nhưng để đơn giản hóa mọi thứ, hãy giả sử tất cả những thứ khác đều bằng nhau (cùng một lượng bộ đệm cho mỗi lõi, cùng độ rộng bus địa chỉ, cùng kích thước từ, v.v ...). Các lõi của chúng là giống hệt nhau, nó chỉ là một) bao nhiêu, hoặc b) nhanh như thế nào.
Đột phá

Ừm, họ và thế hệ bộ xử lý không liên quan gì đến tốc độ xử lý. Xét cho cùng, các procs nguyên tử mới hơn nhiều so với P4 hoặc Core và Core2, nhưng không ai có thể tranh cãi rằng chúng nhanh hơn. Những thứ khác có ảnh hưởng trực tiếp hơn đến tốc độ CPU là bộ đệm chết, số lượng thanh ghi, kiến ​​trúc của chip, kích thước của các đường dẫn dẫn (quy trình xử lý bước sóng), khả năng vận hành điểm nổi, v.v.
music2myear

@ music2myear - Khi tham gia vào thế hệ tôi đang nói về gia đình ( superuser.com/questions/314757/iêu ). Trên thực tế, Atom D525 tốt hơn rất nhiều Core 2 ( cpubenchmark.net/cpu_lookup.php?cpu=Intel+Atom+D525+%40+1.80GHz )
Diogo
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.