Làm thế nào tôi có thể kiểm tra nếu siêu liên kết kích hoạt Ubuntu?


13

Tôi có cảm giác rằng siêu phân luồng không được kích hoạt trên máy tính của tôi. Tôi đã xem xét /proc/cpuinfovà có mô tả rằng anh chị em có cùng số lượng với lõi cpu. Điều này có nghĩa là siêu phân luồng không được kích hoạt. Làm thế nào tôi có thể kích hoạt nó?

Mục nhập của /proc/cpuinfo:

processor   : 0
vendor_id   : GenuineIntel
cpu family  : 6
model       : 23
model name  : Intel(R) Core(TM)2 Duo CPU     E8400  @ 3.00GHz
stepping    : 6
cpu MHz     : 2997.000
cache size  : 6144 KB
physical id : 0
siblings    : 2
core id     : 0
cpu cores   : 2
apicid      : 0
initial apicid  : 0
fpu     : yes
fpu_exception   : yes
cpuid level : 10
wp      : yes

Câu trả lời:


15

/ sys / bus / cpu / thiết bị / cpu * / topology / thread_siblings_list hiển thị bố cục của lõi và siêu phân luồng. Để dễ hình dung hơn, tôi khuyên bạn nên sử dụng lệnh lstopo, cài đặt với:

sudo apt-get install hwloc

và chạy với:

lstopo

Máy tính để bàn ivybridge của tôi có 4 CPU; mỗi cái có một siêu phân luồng, vì vậy chúng ta có một sơ đồ với Cores P # 0..3 và mỗi cái có hai PU (một trong số chúng là siêu phân phối):

nhập mô tả hình ảnh ở đây

Nếu bạn chỉ muốn một phiên bản văn bản của đầu ra này, hãy sử dụng:

lstopo -

Không chắc chắn tại sao chưa có ai nâng cấp điều này ... Đây là một tiện ích thực sự tốt đẹp.
Huck Bennett

Điều này là siêu mát mẻ. bạn thấy tổng số bộ đệm, lõi, siêu phân luồng tất cả trong 1 hình ảnh
Silver Moon

9

Chạy toptrong một thiết bị đầu cuối, nhấn số 1trong bàn phím của bạn để hiển thị tải cho mỗi cpu trong tiêu đề, có bao nhiêu cpus được mô tả ở đó?

Nếu chúng là gấp đôi số lõi thực tế trong siêu phân luồng CPU của bạn thì hoạt động như bình thường.


7

Để phát hiện xem bạn có đang sử dụng siêu phân luồng (hay còn gọi là Công nghệ siêu phân luồng Intel), bạn có thể sử dụng dmidecode .

Trong một thiết bị đầu cuối:

sudo dmidecode > /tmp/dmidecode.txt
gksudo gedit /tmp/dmidecode.txt

Tìm giá trị Trạng thái của Dân cư, Đã bật (hiển thị bên dưới giữa * ... *) tức là "Đã bật" có nghĩa là siêu phân luồng đang hoạt động

Physical CPU
Handle 0x000C, DMI type 4, 32 bytes
Processor Information
Socket Designation: Socket 1 CPU 1
Type: Central Processor
Family: Xeon
Manufacturer: GenuineIntel
ID: 43 0F 00 00 01 03 00 00
Signature: Type 0, Family 15, Model 4, Stepping 3
Flags:
FPU (Floating-point unit on-chip)
CX8 (CMPXCHG8 instruction supported)
APIC (On-chip APIC hardware supported)
Version: Intel Xeon
Voltage: 1.5 V
External Clock: 200 MHz
Max Speed: 4000 MHz
Current Speed: 3800 MHz
Status: *Populated, Enabled*
Upgrade: ZIF Socket
L1 Cache Handle: 0x0004
L2 Cache Handle: 0x0005
L3 Cache Handle: Not Provided

Trong CPU logic siêu phân luồng, bạn sẽ thấy giá trị Trạng thái không được điền (hiển thị bên dưới giữa * ... *):

Handle 0x000D, DMI type 4, 32 bytes
Processor Information
Socket Designation: Socket 2 CPU 2
Type: Unknown
Family: Unknown
Manufacturer: Not Specified
ID: 00 00 00 00 00 00 00 00
Version: Not Specified
Voltage: 1.5 V
External Clock: 200 MHz
Max Speed: 4000 MHz
Current Speed: 3800 MHz
Status: *Unpopulated*
Upgrade: ZIF Socket
L1 Cache Handle: 0x0006
L2 Cache Handle: 0x0007
L3 Cache Handle: Not Provided

nguồn


Nhân Linux xác định số lượng CPU và anh chị em từ CPU (sử dụng bảng liệt kê cấu trúc liên kết CPUID) thay vì sử dụng dữ liệu DMI được cấu hình BIOS. Tôi nghi ngờ rằng dữ liệu DMI được cấu hình tại thời điểm khởi động từ cùng dữ liệu CPUID mà hạt nhân sử dụng, tuy nhiên, có lẽ tốt nhất là tin tưởng vào những gì nhân Linux đã xác định thay vì từ dữ liệu DMI. Khi điều đó xảy ra, trong phần lớn các trường hợp, BIOS có thể đã làm đúng.
Colin Ian King

Đầu ra dmicode không thay đổi nếu siêu phân luồng bị tắt - nó chỉ cho biết CPU có hỗ trợ siêu phân luồng hay không. Ví dụ, trên hệ thống CPU i7-6600U có chức năng siêu phân luồng bị vô hiệu hóa dmidecode | grep -i populacũng được in Status: Populated, Enabled. Xem thêm câu trả lời của tôi .
maxschlepzig

2

trong kết quả của dmidecode, bạn có thể nhận được một cái gì đó như

    Core Count: 6
    Core Enabled: 6
    Thread Count: 12

trên các máy chủ có siêu luồng được đặt thành BẬT

hoặc là

    Core Count: 6
    Core Enabled: 6
    Thread Count: 6

trên những thiết lập thành TẮT


Điều này không hoạt động. Các Thread Countkhông thay đổi nếu hyperthreading bị vô hiệu hóa, ví dụ như trên một hệ thống với HyperThreading tàn tật i7-6600U dmidecode | grep '\(Core\|Thread\).*:'in Core Count: 2 Core Enabled: 2 Thread Count: 4.
maxschlepzig

0

Spoiler: CPU của bạn không hỗ trợ siêu phân luồng .

Một thay thế cho tư vấn cơ sở dữ liệu các nhà cung cấp CPU là để kiểm tra /proc/cpuinfocho htcờ:

$ grep -o '\<ht\>' /proc/cpuinfo

Ngay cả khi siêu phân luồng bị vô hiệu hóa trong BIOS, cờ phải được bao gồm trong đầu ra đó.

Để kiểm tra xem siêu phân luồng có thực sự được bật hay không, bạn có thể tham khảo tệp giả khác :

$ cat /sys/devices/system/cpu/smt/control

Các giá trị có thể là: on|off|forceoff|notsupported|notimplemented

Bạn có thể bật / tắt siêu phân luồng bằng cách ghi on/ offvào tệp giả đó, vd:

# echo off > /sys/devices/system/cpu/smt/control

Tất nhiên, điều này không hoạt động nếu một trong những cattrước đây được in forceoff|notsupported|notimplemented.

Thông thường, siêu phân luồng được bật, theo mặc định. Và nếu nó bị vô hiệu hóa, nó thường được thực hiện trong BIOS. Nếu nó bị vô hiệu hóa trong BIOS mà tệp giả có khả năng chứa forceoffvà bạn phải thay đổi cài đặt trong BIOS.

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.