Kinerja single-thread yang cepat dan throughput multi-thread yang sangat tinggi adalah persis apa yang Anda dapatkan dengan CPU seperti Intel Xeon E5-2699v4 .
Ini adalah Broadwell 22-inti. Kecepatan clock berkelanjutan adalah 2.2GHz dengan semua core aktif (mis. Pengkodean video), tetapi single-core max turbo adalah 3.6GHz.
Jadi saat menjalankan tugas paralel, ia menggunakan anggaran daya 145W sebagai 22 6.6W core. Tetapi saat menjalankan tugas dengan hanya beberapa utas, anggaran daya yang sama memungkinkan beberapa core turbo hingga 3.6GHz. ( Memori inti-tunggal dan bandwidth L3-cache lebih rendah dalam Xeon besar berarti mungkin tidak berjalan secepat quad-core desktop pada 3.6GHz. Namun, satu inti dalam desktop Intel CPU dapat menggunakan lebih banyak dari bandwidth memori total.)
Kecepatan clock terukur 2.2GHz adalah rendah karena batas termal. Semakin banyak core yang dimiliki CPU, semakin lambat mereka harus berjalan ketika semuanya aktif. Efek ini tidak terlalu besar pada CPU inti 4 dan 8 yang Anda sebutkan dalam pertanyaan, karena 8 tidak banyak core, dan mereka memiliki anggaran daya yang sangat tinggi. Bahkan CPU desktop yang antusias secara nyata menunjukkan efek ini: Intel Skylake-X i9-7900X adalah bagian 10c20t dengan basis 3.3GHz, max turbo 4.5GHz . Itu jauh lebih single-core turbo headroom daripada i7-6700k (4.0GHz berkelanjutan / 4.2GHz turbo tanpa overclocking).
Penskalaan frekuensi / tegangan (DVFS) memungkinkan inti yang sama beroperasi pada berbagai kurva kinerja / efisiensi. Lihat juga presentasi IDF2015 ini tentang manajemen daya Skylake , dengan banyak detail menarik tentang apa yang dapat dilakukan CPU secara efisien, dan menukar kinerja vs efisiensi baik secara statis pada waktu desain, dan saat bepergian dengan DVFS.
Di ujung lain dari spektrum, CPU Intel Core-M memiliki frekuensi berkelanjutan yang sangat rendah, seperti 1.2GHz di 4.5W , tetapi dapat turbo hingga 2.9GHz. Dengan beberapa core aktif, mereka akan menjalankan core mereka pada kecepatan clock yang lebih efisien, seperti halnya Xeon raksasa.
Anda tidak perlu arsitektur gaya yang besar dan heterogen untuk mendapatkan sebagian besar manfaatnya. Core kecil di ARM big.LITTLE adalah core berurutan jelek yang tidak baik untuk pekerjaan komputasi. Intinya hanya menjalankan UI dengan daya sangat rendah. Banyak dari mereka tidak akan bagus untuk encoding video atau angka serius lainnya. ( @ Lưu Vĩnh Phúc menemukan beberapa diskusi tentang mengapa x86 tidak memiliki besar . SEDIKIT . Pada dasarnya, menghabiskan silikon tambahan pada inti yang sangat lambat dengan daya ekstra-lambat tidak akan sebanding dengan penggunaan desktop / laptop biasa.)
sedangkan aplikasi seperti video editing ditentukan oleh jumlah core. [Bukankah 2x 4.0 GHz + 4x 2.0 GHz lebih baik di beban kerja multi-threaded daripada 4x 4GHz?]
Ini adalah kesalahpahaman kunci Anda. Anda tampaknya berpikir bahwa jumlah kutu total jam yang sama per detik lebih berguna jika tersebar di lebih banyak core. Itu tidak pernah terjadi. Itu lebih seperti
cores * perf_per_core * (scaling efficiency)^cores
( perf_per_core
bukan hal yang sama dengan kecepatan clock, karena Pentium4 3GHz akan mendapatkan jauh lebih sedikit pekerjaan per siklus clock daripada Skylake 3GHz.)
Lebih penting lagi, sangat jarang bahwa efisiensinya 1.0. Beberapa tugas paralel yang memalukan melakukan skala hampir linier (misalnya mengkompilasi beberapa file sumber). Tetapi encoding video tidak seperti itu. Untuk x264, penskalaan sangat bagus hingga beberapa core, tetapi menjadi lebih buruk dengan lebih banyak core. misalnya pergi dari 1 ke 2 core akan hampir dua kali lipat kecepatan, tetapi pergi dari 32 ke 64 core akan membantu jauh lebih sedikit untuk encode 1080p khas. Titik di mana kecepatan tinggi tergantung pada pengaturan. ( -preset veryslow
melakukan lebih banyak analisis pada setiap frame, dan dapat membuat core lebih sibuk daripada -preset fast
).
Dengan banyak inti yang sangat lambat, bagian-bagian tunggal dari x264 akan menjadi hambatan. (mis. penyandian bitstream CABAC akhir. Ini setara dengan h.264 untuk gzip, dan tidak paralel). Memiliki beberapa inti cepat akan menyelesaikannya, jika OS tahu cara menjadwalkannya (atau jika x264 menyematkan utas yang sesuai untuk core cepat).
x265 dapat memanfaatkan lebih banyak core daripada x264, karena memiliki lebih banyak analisis untuk dilakukan, dan desain WPP h.265 memungkinkan lebih banyak encode dan decode paralelisme. Tetapi bahkan untuk 1080p, Anda kehabisan paralelisme untuk mengeksploitasi di beberapa titik.
Jika Anda memiliki beberapa video untuk disandikan, lakukan beberapa video dalam skala paralel dengan baik, kecuali untuk persaingan untuk sumber daya bersama seperti kapasitas cache dan bandwidth L3, dan bandwidth memori. Semakin sedikit core yang lebih cepat bisa mendapatkan manfaat lebih dari jumlah cache L3 yang sama, karena mereka tidak perlu bekerja pada begitu banyak bagian masalah yang berbeda sekaligus.