Vô hiệu hóa siêu phân luồng trong sổ đăng ký Windows 7


18

Một số bios không có tùy chọn để vô hiệu hóa siêu phân luồng của CPU, có cách nào để vô hiệu hóa nó trong Windows 7 Registry không? Hoặc một công cụ hoặc phần mềm?

Tôi biết về tab khởi động msconfig (tùy chọn nâng cao) và vô hiệu hóa bộ xử lý ở đó, không chắc nó có vô hiệu hóa lõi hoàn chỉnh hoặc siêu phân luồng hay không, hoặc làm thế nào để biết.

Windows 7 32 bit hoặc 64 bit

BIÊN TẬP:

Giả sử nó là lõi kép trở lên với siêu phân luồng.

Trong Trình quản lý thiết bị, nó hiển thị 4 bộ xử lý trên Bộ xử lý Intel i5 của tôi và bạn cũng không thể tắt chúng.


5
Tôi nghĩ rằng đây là câu hỏi không thể trong tháng.
Moab

Bạn thực sự không thể vô hiệu hóa nó trong BIOS? Đây có phải là phiên bản mới nhất?
KCotreau

2
Đó là một PC HP, nổi tiếng với bios bị tê liệt bất kể phiên bản nào.
Moab

1
Không phải tất cả các chip i5 đều được tạo ra như nhau, một số có 4 lõi vật lý và siêu phân luồng bị vô hiệu hóa, trong khi một số có 2 lõi và siêu phân luồng được kích hoạt - thường thì các notebbook sử dụng chip Hyper-threading và Desktop có nhiều khả năng là biến thể lõi tứ. Bạn đang sử dụng Máy tính để bàn hay Notebook và bạn có biết mô hình i5 không?
Dustin G.

Tôi sẽ không lo lắng quá nhiều về Hyperthreading. Nó đã thấy những cải tiến lớn kể từ P4. Nó không hút hiệu suất ngày nay.
Surfasb

Câu trả lời:


3

Từ Bảng dữ liệu bộ xử lý Intel Core, Tập 1 , trang 38:

Công nghệ siêu phân luồng của Intel

[...] Tính năng này phải được bật bằng BIOS và yêu cầu hỗ trợ hệ điều hành.

Điều này là do hyperthreading là phần cứng vật lý thực tế trên CPU chết, và do đó có thể được bật / tắt về mặt kĩ phần cứng duy nhất .

Nếu bạn biết ứng dụng nào không hoạt động tốt với siêu phân luồng, bạn có thể sử dụng một công cụ như StartAffinity nếu bạn có XP.

Nếu bạn sử dụng Windows 7, có một startlệnh tích hợp có thể thực hiện việc này. Sử dụng lệnh sau để khởi chạy một quy trình có ái lực bộ xử lý cụ thể (một lần nữa, /AFFINITYđối số chỉ được thêm vào trong Windows 7):

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

Trong trường hợp <mask>cần được thay thế bằng mặt nạ thập lục phân cho bộ xử lý mà bạn muốn chạy (mask xử lý chỉ là một mặt nạ nhị phân bật / tắt mối quan hệ đó, vì vậy 00.000.101 phép CPU0 và CPU2, và 00.000.010 cho phép chỉ CPU1).

Để tính giá trị hex, bạn có thể chuyển đổi mặt nạ nhị phân hoặc lấy tổng 2 thành sức mạnh của lõi mà bạn muốn chạy chương trình trên (bắt đầu từ 0) và chuyển đổi giá trị đó thành thập lục phân.

Ví dụ: nếu tôi có hệ thống bốn lõi và chỉ muốn quá trình thực thi trên CPU0 và CPU2, tôi sẽ thêm 2 0 + 2 2 = 1 + 4 = 5. Chuyển đổi 5 thành hex, chỉ là 5 và đặt nó là của bạn <mask>. Bạn cũng có thể chuyển đổi 00000101 sang hex. Nếu bạn không biết cách chuyển đổi các cơ sở này, bạn chỉ có thể sử dụng bảng chuyển đổi này .


Tôi hiểu mối quan hệ, nhưng điều này sẽ không vô hiệu hóa một siêu phân luồng, chỉ là một lõi hoàn chỉnh. Tôi không nghĩ bên trong HĐH có thể không thể đọc được Chỉ siêu phân luồng, chỉ trong bios, nhưng một số bios không có tùy chọn đó, chủ yếu là trên máy tính của HP, tôi đã hy vọng ai đó có thể chứng minh tôi sai.
Moab

1
Mỗi lõi vật lý hiển thị trong HĐH là hai lõi logic. Nếu bạn vô hiệu hóa một trong những lõi logic đó , bạn sẽ vô hiệu hóa siêu phân luồng một cách hiệu quả, vì các lệnh chỉ được gửi đến một trong hai lõi logic, do đó không có siêu phân luồng nào thực sự được thực hiện - hàng đợi lệnh được gửi trực tiếp đến lõi vật lý.
Đột phá

Tôi hiểu nó, nhưng nó chỉ vô hiệu hóa siêu phân luồng cho một lõi đó. Tôi cần cả hai khuyết tật.
Moab

1
@Moab Sau đó, bạn chỉ cần kích hoạt tất cả các lõi được đánh số chẵn hoặc lẻ để vô hiệu hóa mọi lõi khác, sử dụng các mặt nạ tôi liệt kê ở trên. Vì vậy, nếu bạn có bốn lõi logic, hãy sử dụng 00000101 hoặc 5 trong hex, như hexmask của bạn để chỉ đặt CPU0 và CPU2 khi được bật. Nếu bạn có 8 lõi logic, bitmask của bạn sẽ là 01010101 hoặc 55 ở dạng hex (để chỉ bật CPU0, 2, 4 và 6).
Đột phá

2
@Moab không thành vấn đề về mặt kỹ thuật, miễn là bạn vô hiệu hóa mọi lõi khác. Mỗi bộ gồm hai lõi logic tạo nên các trình xử lý luồng cho một lõi vật lý duy nhất.
Đột phá

2

Vô hiệu hóa siêu phân luồng là một vấn đề chỉ dành cho BIOS.

Tôi giả sử rằng bạn muốn tắt Hyper-Threading vì bạn có một ứng dụng không được tối ưu hóa cho tính năng này và có thể làm giảm hiệu suất?

Khi nhìn vào đánh số CPU, các lõi vật lý được đánh số lẻ - vì vậy trong hệ thống lõi kép, HT, lõi 1 và 3 sẽ là CPU "thực". Nếu bạn chọn 2 lõi trong msconfig, CPU 1 và 2 sẽ được bật để bạn có CPU hoạt động vật lý và logic (HT) - điều này sẽ không có lợi cho bạn nếu bạn gặp sự cố với phần mềm có vấn đề với HT.


Có nhưng ... bạn có thể sử dụng Trình quản lý tác vụ để đặt mối quan hệ với CPU 1 và 3.
Ben Voigt

Dustin G, đó là những gì tôi nghĩ, nhưng việc tìm kiếm bất kỳ bài viết nào về điều này là gần như không thể. Cảm ơn.
Moab

0

Trong Windows, một cách dễ dàng nhất là thay đổi mối quan hệ của explorer.exe vì mọi quy trình được khởi chạy từ đó sẽ kế thừa mặt nạ ái lực. Nó vẫn còn xa hoàn hảo nhưng ít nhất bạn chỉ làm điều này một lần mỗi phiên.


Tôi không chắc điều này trả lời câu hỏi, vì mối quan hệ quá trình không giống với Hyperthreading.
Doktoro Reichard

May mắn thay, mọi thứ không dựa trên những gì bạn chắc chắn hay không mà là chúng được chỉ định như thế nào trong MSDN (ví dụ) msdn.microsoft.com/en-us/l Library / windows /desktop /. Get GetLogicalProcessorInifying cung cấp cho các mối quan hệ quy trình xử lý vật lý / logic bộ xử lý (đây là một cách chính xác). Trên các hệ thống siêu phân luồng có lõi 2 logic SMT (chẳng hạn như siêu phân luồng) Core # 0 là bit 0 và 1, Core # 1 bit 2 và 3 của mặt nạ ái lực, v.v ... (đây là một cách theo kinh nghiệm). Tôi sẽ rất biết ơn nếu bạn có thể tránh được việc hạ thấp những thứ mà bạn chỉ có trực giác trên ...
E. Attia
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.