Nonaktifkan Hyperthreading di registri Windows 7

18

Beberapa bios Tidak memiliki opsi untuk menonaktifkan Hyperthreading dari CPU, apakah ada cara untuk menonaktifkannya di Windows 7 Registry? Atau alat atau perangkat lunak?

Saya tahu tentang tab boot msconfig (opsi lanjutan) dan menonaktifkan prosesor di sana, tidak yakin apakah itu menonaktifkan core lengkap atau hyperthreads, atau bagaimana cara mengatakannya.

Windows 7 32bit atau 64bit

EDIT:

Mari kita asumsikan itu adalah dual core atau lebih dengan hyperthreading.

Di Device manager itu menunjukkan 4 prosesor pada Prosesor Intel i5 saya, dan Anda tidak dapat menonaktifkannya juga, ya.

Moab
sumber
5
Saya pikir ini adalah pertanyaan mustahil bulan ini.
Moab
Anda benar-benar tidak dapat menonaktifkannya di BIOS? Apakah ini versi terbaru?
KCotreau
2
Ini adalah PC HP, terkenal karena bios yang pincang, apa pun versinya.
Moab
1
Tidak semua i5 Chips dibuat sama, beberapa memiliki 4 core fisik dan Hyper-threading dinonaktifkan, sementara beberapa memiliki 2 core dan Hyper-threading diaktifkan - biasanya notebbook menggunakan Hyper-threading dan Desktop chips lebih cenderung menjadi varian quad-core. Apakah Anda menggunakan Desktop atau Notebook dan Anda tahu model i5?
Dustin G.
Saya tidak akan terlalu khawatir tentang Hyperthreading. Ini telah melihat peningkatan besar sejak P4. Itu tidak menyedot kinerja saat ini.
surfasb

Jawaban:

3

Dari Lembar Data Prosesor Intel Core, Volume 1 , halaman 38:

Teknologi Intel Hyper-Threading

[...] Fitur ini harus diaktifkan menggunakan BIOS dan memerlukan dukungan sistem operasi.

Ini karena hyperthreading adalah perangkat keras fisik aktual pada CPU die, dan karenanya dapat diaktifkan / dinonaktifkan pada tingkat perangkat keras saja .

Jika Anda tahu aplikasi mana yang tidak bekerja dengan baik dengan hyperthreading, Anda dapat menggunakan alat seperti StartAffinity jika Anda memiliki XP.

Jika Anda menggunakan Windows 7, ada startperintah bawaan yang dapat melakukan ini. Gunakan perintah berikut untuk meluncurkan proses dengan afinitas prosesor tertentu (sekali lagi, /AFFINITYargumen itu hanya ditambahkan di Windows 7):

start /AFFINITY <mask> "C:\yourprogram.exe" 

Di mana <mask>harus diganti dengan topeng heksadesimal untuk prosesor yang ingin Anda jalankan (topeng prosesor hanyalah topeng biner yang mengaktifkan / menonaktifkan afinitas itu, jadi 00000101 mengaktifkan CPU0 dan CPU2, dan 00000010 hanya mengaktifkan CPU1).

Untuk menghitung nilai hex, Anda bisa mengonversi biner mask, atau mengambil jumlah 2 menjadi kekuatan core yang Anda inginkan untuk menjalankan program (mulai dari 0), dan mengonversi nilai itu ke hexadecimal.

Sebagai contoh, jika saya memiliki sistem empat-inti, dan hanya ingin proses untuk dieksekusi pada CPU0 dan CPU2, saya akan menambahkan 2 0 + 2 2 = 1 + 4 = 5. Konversi 5 menjadi hex, yang hanya 5, dan atur itu sebagai milikmu <mask>. Anda juga bisa mengonversi 00000101 menjadi hex juga. Jika Anda tidak tahu cara mengonversi basis ini, Anda bisa menggunakan tabel konversi ini .

Penerobosan
sumber
Saya mengerti afinitas, tetapi ini tidak akan menonaktifkan hyperthread, hanya inti lengkap. Saya tidak berpikir itu mungkin di dalam OS untuk Disaable. Hanya hyperthreading, hanya di bios, tetapi beberapa bios tidak memiliki pilihan itu, kebanyakan pada HP pc, saya berharap seseorang dapat membuktikan saya salah.
Moab
1
Setiap inti fisik muncul di OS sebagai dua yang logis. Jika Anda menonaktifkan salah satu dari core logis tersebut , Anda secara efektif menonaktifkan hyperthreading, karena instruksi hanya dikirim ke salah satu dari dua core logis, sehingga tidak ada hyperthreading yang benar-benar dilakukan - antrian instruksi langsung dikirim ke inti fisik.
Terobosan
Saya mengerti, tetapi itu hanya menonaktifkan hyperthreading untuk satu inti itu. Saya perlu keduanya dinonaktifkan.
Moab
1
@ Moab Kemudian Anda cukup mengaktifkan semua core bernomor genap atau ganjil untuk menonaktifkan yang lainnya, menggunakan topeng yang saya sebutkan di atas. Jadi jika Anda memiliki empat core logis, gunakan 00000101, atau 5 dalam hex, sebagai hexmask Anda untuk mengatur hanya CPU0 dan CPU2 yang diaktifkan. Jika Anda memiliki 8 core logis, bitmask Anda adalah 01010101, atau hex hex (untuk mengaktifkan hanya CPU0, 2, 4, dan 6).
Terobosan
2
@ Moab itu tidak masalah secara teknis, asalkan Anda menonaktifkan setiap inti lainnya. Setiap set dari dua inti logis membuat penangan utas untuk satu inti fisik.
Terobosan
2

Menonaktifkan Hyper-threading adalah urusan khusus BIOS.

Saya berasumsi bahwa Anda ingin menonaktifkan Hyper-Threading karena Anda memiliki aplikasi yang tidak dioptimalkan untuk fitur ini dan mungkin mengurangi kinerja?

Saat melihat penomoran CPU, core fisik diberi nomor ganjil - jadi dalam sistem dual-core, HT, core 1 dan 3 akan menjadi CPU "nyata". Jika Anda memilih 2 inti dalam msconfig, CPU 1 dan 2 akan diaktifkan sehingga Anda akan memiliki CPU aktif Fisik dan Logika (HT) - ini tidak akan menguntungkan Anda jika Anda mengalami masalah dengan perangkat lunak yang memiliki masalah dengan HT.

Dustin G.
sumber
Ya tapi ... Anda bisa menggunakan Task Manager untuk mengatur afinitas ke CPU 1 dan 3.
Ben Voigt
Dustin G, itulah yang saya pikirkan, tetapi menemukan artikel tentang ini hampir mustahil. Terima kasih.
Moab
0

Di Windows, cara paling mudah adalah mengubah afinitas explorer.exe karena setiap proses yang diluncurkan dari itu akan mewarisi topeng afinitas. Ini masih jauh dari sempurna tetapi setidaknya Anda melakukan ini hanya sekali per sesi.

E. Attia
sumber
Saya tidak yakin ini menjawab pertanyaan, karena proses afinitas tidak sama dengan Hyperthreading.
Doktoro Reichard
Untungnya, hal-hal tidak didasarkan pada apa yang Anda yakini atau tidak, tetapi bagaimana mereka ditentukan dalam MSDN (misalnya) msdn.microsoft.com/en-us/library/windows/desktop/… GetLogicalProcessorInformation memberikan proses afinitas maching fisik / logis prosesor (ini adalah cara yang tepat). Pada sistem hyperthreading dengan core 2-logis SMT (seperti hyperthreading) Core # 0 adalah bit 0 dan 1, Core # 1 bit 2 dan 3 dari afinitas mask dll ... (ini adalah cara empiris). Saya akan sangat berterima kasih jika Anda dapat menghindari hal-hal downvoting Anda hanya memiliki intuisi pada ...
E. Attia