Hiệu suất đơn luồng nhanh và thông lượng đa luồng rất cao chính xác là những gì bạn có được với CPU như Xeon E5-2699v4 của Intel .
Đó là Broadwell 22 lõi. Tốc độ xung nhịp duy trì là 2.2GHz với tất cả các lõi hoạt động (ví dụ mã hóa video), nhưng turbo tối đa lõi đơn là 3,6 GHz .
Vì vậy, trong khi chạy một tác vụ song song, nó sử dụng ngân sách năng lượng 145W của mình là 22 lõi 6,6W. Nhưng trong khi chạy một tác vụ chỉ với một vài luồng, cùng một ngân sách năng lượng cho phép một vài lõi tăng tốc lên tới 3,6 GHz. (Tuy nhiên , bộ nhớ lõi đơn thấp hơn và băng thông bộ đệm L3 trong Xeon lớn có nghĩa là nó có thể không chạy nhanh như lõi tứ máy tính để bàn ở tốc độ 3,6 GHz. Tuy nhiên, một lõi trong CPU Intel để bàn có thể sử dụng nhiều hơn tổng băng thông bộ nhớ.)
Tốc độ xung nhịp 2.2GHz được đánh giá là thấp vì giới hạn nhiệt. CPU càng có nhiều lõi thì chúng càng chạy chậm hơn khi tất cả đều hoạt động. Hiệu ứng này không lớn lắm trong các CPU 4 và 8 lõi mà bạn đề cập trong câu hỏi, bởi vì 8 không phải là nhiều lõi và chúng có ngân sách năng lượng rất cao. Ngay cả các CPU máy tính để bàn đam mê cũng thể hiện rõ hiệu ứng này: Skylake-X i9-7900X của Intel là một phần 10c20t với cơ sở 3,3 GHz, turbo tối đa 4,5 GHz . Đó là khoảng không gian turbo lõi đơn nhiều hơn i7-6700k (4.0GHz duy trì / 4.2GHz turbo mà không cần ép xung).
Thang đo tần số / điện áp (DVFS) cho phép cùng một lõi hoạt động trên một phạm vi rộng của đường cong hiệu suất / hiệu suất. Xem thêm bài thuyết trình IDF2015 này về quản lý năng lượng Skylake , với nhiều chi tiết thú vị về những gì CPU có thể làm hiệu quả và giảm hiệu suất so với hiệu quả cả về mặt tĩnh tại thời điểm thiết kế và trên đường bay với DVFS.
Ở đầu kia của phổ, CPU Intel Core-M có tần số duy trì rất thấp, như 1,2 GHz ở 4,5W , nhưng có thể tăng tốc lên tới 2,9 GHz . Với nhiều lõi hoạt động, chúng sẽ chạy lõi với tốc độ xung nhịp hiệu quả hơn, giống như Xeons khổng lồ.
Bạn không cần một kiến trúc kiểu lớn. LỚN để có được hầu hết lợi ích. Các lõi nhỏ trong ARM big.LITTLE là các lõi theo thứ tự khá nhảm nhí, không tốt cho công việc tính toán. Vấn đề là chỉ cần chạy một UI với công suất rất thấp. Rất nhiều trong số chúng sẽ không tuyệt vời cho mã hóa video hoặc khủng hoảng số nghiêm trọng khác. ( @ Lưu Vĩnh Phúc đã tìm thấy một số cuộc thảo luận về lý do tại sao x86 không có lớn . LỚN
trong khi các ứng dụng như chỉnh sửa video được xác định bởi số lượng lõi. [Không phải 2x 4.0 GHz + 4x 2.0 GHz sẽ tốt hơn ở khối lượng công việc đa luồng so với 4x 4GHz?]
Đây là sự hiểu lầm chính của bạn. Bạn dường như đang nghĩ rằng cùng một tổng số tích tắc đồng hồ mỗi giây sẽ hữu ích hơn nếu trải đều trên nhiều lõi hơn. Điều đó không bao giờ đúng. Nó giống như
cores * perf_per_core * (scaling efficiency)^cores
( perf_per_core
không giống với tốc độ xung nhịp, vì Pentium4 3GHz sẽ hoạt động ít hơn trên mỗi chu kỳ xung nhịp so với Skylake 3GHz.)
Quan trọng hơn, rất hiếm khi hiệu quả là 1.0. Một số tác vụ song song rõ ràng có quy mô gần như tuyến tính (ví dụ: biên dịch nhiều tệp nguồn). Nhưng mã hóa video không phải như thế. Đối với x264, tỷ lệ rất tốt lên đến một vài lõi, nhưng trở nên tồi tệ hơn với nhiều lõi hơn. ví dụ: đi từ 1 đến 2 lõi sẽ tăng gần gấp đôi tốc độ, nhưng đi từ 32 đến 64 lõi sẽ giúp ít hơn nhiều cho mã hóa 1080p thông thường. Điểm tại đó các cao nguyên tốc độ phụ thuộc vào cài đặt. ( -preset veryslow
không phân tích nhiều hơn trên mỗi khung hình và có thể khiến nhiều lõi bận rộn hơn -preset fast
).
Với rất nhiều lõi rất chậm, các phần đơn luồng của x264 sẽ trở thành nút cổ chai. (ví dụ: mã hóa dòng bit CABAC cuối cùng. Nó tương đương với gzip của h.264 và không song song.) Có một vài lõi nhanh sẽ giải quyết điều đó, nếu HĐH biết cách lên lịch cho nó (hoặc nếu x264 ghim các luồng thích hợp vào lõi nhanh).
x265 có thể tận dụng nhiều lõi hơn x264, vì nó có nhiều phân tích hơn để làm và thiết kế WPP của h.265 cho phép mã hóa và giải mã song song nhiều hơn. Nhưng ngay cả đối với 1080p, bạn sẽ hết song song để khai thác tại một số điểm.
Nếu bạn có nhiều video để mã hóa, thực hiện nhiều video theo tỷ lệ song song, ngoại trừ việc cạnh tranh các tài nguyên được chia sẻ như dung lượng và băng thông bộ đệm L3 và băng thông bộ nhớ. Càng ít lõi nhanh hơn có thể nhận được nhiều lợi ích hơn từ cùng một lượng bộ đệm L3, vì chúng không cần phải xử lý nhiều phần khác nhau của vấn đề cùng một lúc.