Đầu tháng này, tôi đã ghi nhận một sự thay đổi của bộ lập lịch Linux được xếp vào hàng đợi/lõi trước chu kỳ Linux 5.18 đó là dự kiến sẽ giúp các bộ xử lý AMD EPYC và các bộ xử lý Zen chọn lọc khác trong các khối lượng công việc khác nhau. Thay đổi đã được thực hiện trong vài tháng và nhằm điều chỉnh sự mất cân bằng NUMA được phép khi kéo dài nhiều LLC. Bây giờ tôi đã thực hiện một số điểm chuẩn của riêng mình trên phần cứng EPYC và thực sự là đang tiếp tục nâng cao hiệu suất của nhân Linux.
Bản vá cho thấy hiệu suất đạt được… Hiện tôi đang thử nghiệm.
Thay đổi này được xếp vào hàng”Schedule/core”trước cửa sổ hợp nhất Linux 5.18 vào tháng tới không phải là thay đổi dành riêng cho AMD mà là thay đổi có lợi cho bộ xử lý Zen do cách bố trí bộ nhớ cache của chúng. Mel Gorman, tác giả của bản vá giải thích,”[Một sự thay đổi trong bộ lập lịch hạt nhân từ năm 2020] cho phép sự mất cân bằng giữa các nút NUMA sao cho các tác vụ giao tiếp sẽ không bị tách rời bởi bộ cân bằng tải. Điều này hoạt động tốt khi có mối quan hệ 1: 1 giữa LLC và nút nhưng có thể không tối ưu đối với nhiều LLC nếu các tác vụ độc lập sử dụng sớm CPU chia sẻ bộ nhớ đệm. Zen * có nhiều LLC trên mỗi nút với các kênh bộ nhớ cục bộ và do sự mất cân bằng cho phép, rất khó để điều chỉnh một số khối lượng công việc để chạy tối ưu hơn so với phần cứng có 1 LLC cho mỗi nút. Bản vá này cho phép sự mất cân bằng tồn tại cho đến thời điểm mà các LLC phải được cân bằng giữa các nút.”
Có thể xác nhận mức tăng hiệu suất tuyệt vời trên dòng EPYC 7003 trên nhiều loại khối lượng công việc với các thay đổi cốt lõi/lịch TIP mới nhất.
Các điểm chuẩn của chính Mel khi làm việc trên bản vá này cho thấy mức cải thiện lên đến 272% đối với điểm chuẩn bộ nhớ Luồng và cũng có những chiến thắng lớn khác như hiệu suất tốt hơn 10% trong Coremark và tối đa imum lên tới 17%, hiệu suất của SPECjbb Java tăng tới 18%, điểm chuẩn song song đáng xấu hổ của NPB nhanh hơn khoảng 17% và những chiến thắng đáng chú ý khác. Với những kết quả rất hứa hẹn được báo cáo, tôi đã thực hiện một số thử nghiệm cục bộ của riêng mình và những con số tôi thấy cũng thú vị không kém-đặc biệt là đối với sự thay đổi của bộ lập lịch hạt nhân Linux này chỉ là khoảng 50 dòng mã mới!
Đầu tiên là một số điểm chuẩn được chạy với máy chủ AMD EPYC 75F3 2P được xây dựng xung quanh bo mạch chủ ASRockRack ROME2D16-2T và chạy Ubuntu 21.10. Hiệu suất được so sánh giữa Linux 5.17 Git và sau đó lên lịch/Git lõi có”lịch biểu/công bằng: Điều chỉnh sự mất cân bằng NUMA được phép khi SD_NUMA kéo dài nhiều LLC”bản vá được đề cập. Cùng một nhân Kconfig giữa cả hai nhân đã được sử dụng.