Satu set tampung baharu telah disiarkan hari ini untuk mendayakan penjadualan kluster untuk CPU hibrid x86. Sebaliknya percubaan terbaharu pada penjadualan kluster untuk CPU Teras moden Tasik Alder dan yang lebih baharu menghasilkan beberapa faedah prestasi kecil berbanding kod semasa.
Penjadualan kluster sebelum ini dicuba oleh jurutera Intel untuk Linux, tetapi ia akhirnya menyebabkan regresi… Saya telah menyerlahkan masalah itu pada tahun 2021 dengan Penjadualan Kluster Baharu Linux 5.16 Menyebabkan Regresi, Menyakitkan Lagi Tasik Alder. Sekarang walaupun penjadualan kluster x86 terbaru ini untuk CPU hibrid sepatutnya berada dalam keadaan yang lebih baik.
Jurutera Intel Tim Chen menyiarkan siri tampung hari ini dan mengulas di sana:
“Domain penjadualan kluster tidak didayakan pada CPU hibrid x86 kerana logiknya hilang untuk melakukan pengimbangan beban yang betul antara gugusan dengan CPU SMT dalam teras tunggal dan gugusan dengan berbilang CPU Atom.
Ricardo baru-baru ini memperkenalkan siri tampalan yang meningkatkan logik pengimbangan beban antara teras P dan E-teras pada CPU hibrid x86.
https://lore.kernel.org/lkml/[email protected]/T/#m16ebc8de64dbf4c54adebab701b42b47805105f4Walau bagaimanapun, siri tampalan itu tidak mencukupi untuk membolehkan penjadualan kluster didayakan pada CPU hibrid x86. siri tampung ini menyediakan beberapa pembaikan tambahan yang diperlukan untuk pemuatan kumpulan jadual yang terdiri daripada CPU SMT teras Besar dan kumpulan jadual gugusan yang terdiri daripada CPU Atom. Dengan tampalan ini digunakan di atas siri tampung Ricardo, beban diseimbangkan dengan betul antara gugusan teras P dan teras E. CPU terbiar digunakan dalam susunan yang betul:
1) CPU SMT pada teras P terbiar,
2) teras E terbiar,
3) CPU SMT yang tidak digunakan dengan adik beradik yang sibuk.”
Dengan tampung baharu ini, jurutera Intel mendapati sehingga beberapa peratus peningkatan dengan ujian CPU hibrid P/Enya:
“Saya menguji beberapa penanda aras berulir tunggal dalam Suite Phoronix yang sebelum ini telah menunjukkan regresi apabila penjadualan kelompok pertama kali didayakan. Penjadualan kluster menggunakan siri tampalan ini berprestasi serta isirong vanila.
Berbenang Tunggal 6.3-rc5 dengan Penambahbaikan kluster
Penjadualan penanda aras dalam Prestasi
(sisihan larian)
——————————————————————————————
tjbench (+/-0.08%) (+/-0.23%)-0.23%
PhPbench (+/-0.31%) (+/-0.89%)-0.39%
flac (+/-0.58%) (+/-0.22%) +0.17%
pybench (+/-3.16%) (+/-0.27 %) +2.55%Untuk penanda aras berbilang benang, saya mencuba binaan kernel dan aliran tensor lite. Penjadualan kluster melakukan yang terbaik untuk kes 10 utas di mana 6 utas berjalan pada teras P, 2 utas pada satu gugusan Atom dan 2 utas pada gugusan Atom yang lain. Manakala isirong vanila akan mempunyai 6 utas pada teras P, 4 utas pada satu gugusan Atom. Walaupun perbezaannya kecil dan termasuk dalam variasi larian.
Berbilang Benang 6.3-rc5 dengan Penambahbaikan kluster
Penjadualan penanda aras dalam Prestasi
(-#threads) (sisihan run-run)
——————————————————————————————
Kbuild-8 (+/-2.90%) (+/-1.16%)-0.76%
Kbuild-10 (+/-3.08%) (+/-3.09%) +0.64%
Kbuild-12 (+/-3.28%) (+/-3.55%) +0.91%
Tensor Lite-8 (+/-4.84%) (+/-4.61%)-0.23%
Tensor Lite-10 (+/-0.87%) (+/-1.45%) +0.47%
Tensor Lite-12 (+/-1.37%) (+/-1.04%)-0.12%”
Memang menarik untuk melihat bagaimana percubaan penjadualan kelompok baharu ini berjaya, walaupun ia terlalu lewat untuk melihat dalam kitaran v6.4 jadi tidak akan disalurkan sekarang sehingga sekurang-kurangnya v6.5. Walau apa pun kerana saya mempunyai masa untuk menguji patch baharu, saya akan mencubanya di Tasik Alder dan Raptor Lake untuk melihat bagaimana ia memberi kesan kepada prestasi Linux dalam rentang beban kerja yang lebih luas.
Lihat benang senarai mel kernel ini jika berminat dengan kerja penjadualan kelompok terbaharu ini untuk CPU hibrid Intel.