2012-06-19 33 views
7

Tôi đang mở rộng hạt nhân Linux để kiểm soát tần suất của một số luồng: khi chúng được lên lịch lõi (bất kỳ lõi nào!), Tần số của lõi được thay đổi bằng cách viết đúng p -nhập vào sổ đăng ký IA32_PERF_CTL, như được đề xuất trong sách hướng dẫn của Intel. Nhưng khi các luồng khác nhau với các tần số "tùy chỉnh" khác nhau được lên lịch, có vẻ như thông lượng của tất cả các chuỗi tăng lên, như thể tất cả các lõi chạy ở tần số thiết lập tối đa.Mở rộng tần số MSR của Intel trên mỗi luồng

Tôi đã thực hiện nhiều thử nghiệm và phép đo trong các điều kiện tải và cấu hình khác nhau, nhưng kết quả là như nhau. Sau một số thử nghiệm với CPUFreq (không có ứng dụng đang chạy, tôi đặt tần số khác nhau trên mỗi lõi và cuối cùng là tần số đo, với cpufreq-info -w, bằng nhau), tôi tự hỏi liệu lõi CPU có thể thực sự chạy ở , tần số độc lập hoặc nếu có chính sách hoặc hạn chế về phần cứng.

Cuối cùng, có mô hình CPU nào làm cho khả năng mở rộng tần suất chi tiết này khả thi không?

CPU Tôi đang sử dụng là Intel Core i5 750

+2

Các lõi CPU không thể chạy ở các điện áp khác nhau, do đó, điều này sẽ hạn chế khả năng đặt các cặp tần số/điện áp khác nhau. –

+0

Nói chung, mỗi thế hệ Intel mang lại sự tách biệt hơn giữa các lõi và cho phép kiểm soát chi tiết hơn những thứ này. – ugoren

Trả lời

4

Bạn không thể kiểm soát tần số lõi riêng lẻ cho lõi hoạt động. Tuy nhiên, bạn có thể kiểm soát tần số của tất cả các lõi hoạt động giống nhau. Lý do là trong các câu trả lời trước - tất cả các lõi đều trên cùng một mặt phẳng điện áp hoạt động. Hy vọng rằng, bộ vi xử lý Haswell thế hệ tiếp theo sẽ giúp kiểm soát từng lõi một cách riêng biệt.

2

cpufreq-info sẽ hiển thị thông tin về những lõi cần phải được đồng bộ trong P-tiểu bang của họ:

[[email protected] ~]# cpufreq-info 
cpufrequtils 008: cpufreq-info (C) Dominik Brodowski 2004-2009 
Report errors and bugs to [email protected], please. 
analyzing CPU 0: 
    driver: acpi-cpufreq 
    CPUs which run at the same hardware frequency: 0 1 <---- THIS 
    CPUs which need to have their frequency coordinated by software: 0 <--- and THIS 
    maximum transition latency: 10.0 us. 

Ít nhất vì rằng, tôi khuyên bạn nên đi qua các giao diện cpufreq thay vì trực tiếp thiết lập thanh ghi, cũng như làm cho nó có thể chạy trên các CPU không intel mà có thể có các yêu cầu không phổ biến.

Ngoài ra hãy kiểm tra cách tạo luồng hạt nhân dính vào lõi cụ thể, để tránh chuyển đổi không mong muốn, nếu bạn chưa làm như vậy.

+0

Cảm ơn mọi người vì câu trả lời! Bây giờ tôi đã có bức tranh tổng thể. – user1466329

+0

Có ai đó đã thử điều này với Haswell không? Bởi vì tôi không có một máy tính với kiến ​​trúc như vậy, và tôi đã tự hỏi liệu bây giờ có thể làm điều đó hay không; trong trường hợp nó sẽ, tôi sẽ thử lại. Thứ hai, tôi không nghĩ rằng tôi có thể đi qua cpufreq, kể từ khi tôi đang làm việc ở cấp độ lên lịch. Để đưa ra một bức tranh lớn về dự án mà tôi đang nghiên cứu, nó cuối cùng cũng nhằm mục đích thu được lịch trình nguồn lực nhận thức và nhận thức trạng thái: vì thế tôi không thể để lại cho người khác quyết định. – user1466329

+0

Ý tưởng thiết lập mối quan hệ cốt lõi, tuy nhiên, làm cho rất nhiều ý nghĩa. Dù sao, tôi cũng nên hiểu độ chi tiết thời gian của cài đặt tần số. – user1466329

3

Tôi nghĩ bạn đang bỏ lỡ một phần lớn của bức ảnh!

Đọc trên tên miền điện và đồng hồ. Tất cả các lõi bộ xử lý trong một miền chạy ở cùng trạng thái P (tức là cùng tần số và điện áp). Trạng thái P là tất cả các lõi sẽ chạy tại miền đó sẽ luôn là trạng thái P của lõi yêu cầu trạng thái P cao nhất trong miền đó. Các MSR không phản ánh điều này chút nào, cũng như không làm các giao diện mà hạt nhân lộ ra.

Anandtech có một bài viết tốt về điều này: http://www.anandtech.com/show/2658/2

"Đây là tất cả rất giống với Phenom của AMD, nhưng nơi hai khác nhau là ở cách họ xử lý quản lý điện năng Trong khi AMD sẽ cho phép lõi cá nhân để yêu cầu. tốc độ đồng hồ khác nhau, Nehalem cố gắng để chạy tất cả các lõi của nó ở cùng một tần số; nếu một lõi nhàn rỗi thì nó chỉ đơn giản là điện gated và lõi được tắt một cách hiệu quả. "

Tôi chưa ghép một đồng hồ đo điện lên đến SB/IB, nhưng tôi đoán là hành vi là như nhau.

0

Tôi muốn cảm ơn mọi người đã đóng góp! Điều tra thêm, tôi đã tìm thấy các chi tiết khác mà tôi chia sẻ với cộng đồng.

Như đã đề xuất, Nehalem đặt tất cả các lõi vào một miền đồng hồ đơn, sao cho tần số tối đa được đặt trong tất cả các lõi được áp dụng cho tất cả các lõi; một số công cụ có thể hiển thị các tần số khác nhau trên các lõi nhàn rỗi, nhưng nó đủ để chạy bất kỳ ứng dụng nào để làm tăng tần số lên mức tối đa. Điều này, từ các thử nghiệm của tôi, cũng áp dụng cho Sandy Bridge, trong đó tất cả lõi và LLC đều nằm trong cùng một miền tần số/điện áp. Tôi cho rằng hành vi này cũng xảy ra với Ivy Bridge, vì nó chỉ là một 'đánh dấu' lặp lại. Thay vào đó, tôi tin rằng Haswell đặt lõi và LLC lát trong các lĩnh vực khác nhau, số ít, do đó cho phép tần số mỗi lõi. Điều này cũng được quảng cáo trong một số trang như http://www.anandtech.com/show/8423/intel-xeon-e5-version-3-up-to-18-haswell-ep-cores-/4

Các vấn đề liên quan