Mặc dù AMD đã tiến bộ đáng kể kể từ năm 2002, ít nhất là trong một lĩnh vực có thể gây ra độ trễ, nhân Linux vẫn đối xử với các Threadripper hiện đại như các hệ thống thời Athlon
Gần đây, kỹ sư Prateek Nayak của AMD đã gửi một bản vá cho các trình điều khiển nhàn rỗi của bộ xử lý Linux sẽ "bỏ qua sự chờ đợi giả tạo đối với các bộ xử lý dựa trên vi kiến trúc Zen". " Vào năm 2002, Andy Grover và Linus Torvalds đã thêm hỗ trợ ACPI, trong đó bao gồm một "op. "Trong những ngày đầu triển khai ACPI, khi một số chipset không chuyển sang trạng thái nghỉ như người ta mong đợi, hệ thống về cơ bản đọc dữ liệu không có mục đích nào khác ngoài việc trì hoãn lệnh tiếp theo cho đến khi CPU có thể dừng hoàn toàn với STPCLK#
Thử nghiệm với khối lượng công việc lấy mẫu dựa trên hướng dẫn [IBS] cho thấy "một lượng thời gian đáng kể được dành cho hoạt động giả, được tính không chính xác là nơi cư trú của C-State", điều mà Nayak tuyên bố ít nhất đang làm tổn hại đến các chip AMD dựa trên Zen. . CPU có thể đi vào Trạng thái C sâu hơn, chậm hơn do tất cả công việc giả với nỗ lực thấp này, kéo dài thời gian để CPU "thức dậy", đặc biệt là đối với các tác vụ thường xuyên chuyển đổi giữa trạng thái bận và không hoạt động
Quảng cáoTrên hệ thống Zen3 ổ cắm kép, Nayak đã chạy thử nghiệm trong tbench đối với nhân Linux gốc, một nhân có trạng thái C2 bị vô hiệu hóa hoàn toàn và một nhân với thao tác chờ giả đã được vá lỗi. Phiên bản vá lỗi của anh ấy đã tăng 1.390 phần trăm thông lượng MB/giây tối thiểu và tăng 51 phần trăm MB/giây trung bình so với nhân gốc, thường chỉ kém một chút so với việc C2 bị vô hiệu hóa hoàn toàn
Theo blog Phoix, các hệ thống của Intel ít bị lời nguyền kế thừa của AMD hơn vì họ đã sử dụng hệ thống dựa trên MWAIT trong ít nhất mười năm. Điều này đã khiến Dave Hansen từ Intel gửi một bản vá khẩn cấp. Giải pháp của ông là chỉ áp dụng "chờ đợi giả" cho các hệ thống Intel, nơi nó sẽ không ảnh hưởng đến "các hệ thống Intel hiện đại từ xa" và thêm phần giải thích cho các trình điều khiển nhàn rỗi trong nhân. Anh ấy cũng kêu gọi độc giả "xem xét chuyển hệ thống của bạn sang" sau khi đọc các bình luận
Có khả năng là Linux 6. 0, mà Torvalds dự đoán sẽ giao hàng vào tuần tới, sẽ bao gồm bất kỳ bản vá khẩn cấp nào loại bỏ hoặc hạn chế "chờ đợi giả" được gửi trong tuần này
AMD đã đi một chặng đường dài kể từ năm 2002, nhưng nhân Linux vẫn đối xử với các Threadrippers hiện đại như các hệ thống thời Athlon—ít nhất là ở một khía cạnh có khả năng gây ra độ trễ
Kỹ sư Prateek Nayak của AMD gần đây đã gửi một bản vá cho các trình điều khiển không hoạt động của bộ xử lý Linux, bản vá này sẽ "bỏ qua thời gian chờ đợi giả tạo đối với các bộ xử lý dựa trên vi kiến trúc Zen. " Khi hỗ trợ ACPI được thêm vào nhân Linux vào năm 2002—do Andy Grover viết, Linus Torvalds cam kết—nó bao gồm một "op. " Về cơ bản, hệ thống đọc dữ liệu không có mục đích nào khác ngoài việc trì hoãn lệnh tiếp theo cho đến khi CPU có thể dừng hoàn toàn bằng lệnh STPCLK#. Điều này cho phép tiết kiệm năng lượng và tương thích trong những ngày đầu triển khai ACPI khi một số chipset không chuyển sang trạng thái không hoạt động như mong đợi.
Nhưng các chip AMD dựa trên Zen ngày nay không cần giải pháp thay thế này và, như Nayak viết, nó đang làm hại chúng, ít nhất là trong các khối lượng công việc cụ thể trên Linux. Thử nghiệm với khối lượng công việc lấy mẫu dựa trên hướng dẫn [IBS] cho thấy rằng "một lượng thời gian đáng kể được dành cho hoạt động giả, được tính không chính xác là nơi cư trú ở Bang C. " CPU, nhận thấy tất cả công việc giả tốn ít nỗ lực này, có thể đẩy vào Trạng thái C sâu hơn, chậm hơn, sau đó khiến CPU mất nhiều thời gian hơn để "đánh thức", đặc biệt là đối với các công việc yêu cầu chuyển đổi nhiều giữa trạng thái bận và không hoạt động
Quảng cáoNayak đã chạy thử nghiệm trong tbench trên hệ thống Zen3 ổ cắm kép dựa trên nhân Linux cơ bản, một nhân có trạng thái C2 bị vô hiệu hóa hoàn toàn và một nhân có thao tác chờ giả đã được vá. Phiên bản vá lỗi của anh ấy đã tăng 1.390 phần trăm thông lượng MB/giây tối thiểu và tăng 51 phần trăm MB/giây trung bình so với nhân cơ sở, thường chỉ chậm hơn một chút so với việc tắt hoàn toàn C2
Các hệ thống của Intel đã tránh được lời nguyền di sản của AMD, vì họ sử dụng hệ thống dựa trên MWAIT trong ít nhất một thập kỷ, theo blog Phoronix. Điều đó dẫn đến một bản vá khẩn cấp do Dave Hansen của Intel gửi. Giải pháp của anh ấy là hạn chế "chờ đợi giả" đối với các hệ thống Intel, nơi nó sẽ không ảnh hưởng đến "các hệ thống Intel hiện đại từ xa" và thêm nhận xét vào các trình điều khiển nhàn rỗi của nhân để giải thích điều gì đang xảy ra—và khuyến khích những người đọc "cân nhắc chuyển hệ thống của bạn sang . "
Nếu một bản vá khẩn cấp loại bỏ hoặc hạn chế "sự chờ đợi giả" được gửi vào tuần này, nó có thể khiến Linux 6. 0, mà Torvalds dự kiến sẽ xuất xưởng vào tuần tới
Tại sao nó quan trọng. Nhân Linux bao gồm một thủ thuật cổ xưa để giải quyết các vấn đề không tương thích có thể xảy ra trong quá trình triển khai ACPI ban đầu. Ngày nay, thủ thuật này không cần thiết và chỉ khiến mọi thứ trở nên tồi tệ hơn đối với CPU AMD bằng cách phạt hiệu suất. Một bản vá sẽ đến sớm
Kiến trúc Zen cực kỳ thành công đã làm đảo lộn thị trường CPU hiện đại, đưa AMD lên vị trí dẫn đầu trong cuộc đua hiệu suất và mang đến cho người dùng một đối thủ rất cần thiết để cạnh tranh lâu dài với Intel. Tuy nhiên, có một lĩnh vực điện toán mà CPU AMD vẫn đang bị phạt về hiệu suất – mặc dù không có lý do thực tế nào để biện minh cho tình trạng này
Trong khi sử dụng hệ điều hành dựa trên Linux, CPU AMD đang chạy chậm lại khi chúng không nên. Lý do cho hành vi kỳ lạ này bắt nguồn từ năm 2002, khi hỗ trợ cho tiêu chuẩn Giao diện Nguồn và Cấu hình Nâng cao [ACPI] lần đầu tiên được thêm vào nhân nguồn mở. Việc triển khai ACPI trước đó phải giải quyết một số vấn đề về tính tương thích, do đó các nhà phát triển phải lường trước một số hành vi kỳ lạ như chipset chuyển sang trạng thái không hoạt động muộn hơn một chút so với dự kiến
Sự cố này đã buộc các nhà phát triển nói trên phải giới thiệu một "op giả chờ đợi" trong kernel, buộc hoạt động đọc dữ liệu dư thừa trước khi CPU có thể dừng hoàn toàn bằng lệnh STPCLK#. Tính năng đợi giả đã được thêm vào Linux vào năm 2002 và nó vẫn còn đó mặc dù các bộ xử lý dựa trên kiến trúc Zen không cần giải pháp thay thế nữa
Điều tồi tệ nhất là chức năng đợi giả đang làm chậm CPU, như kỹ sư Prateek Nayak của AMD đã giải thích trong một bản vá gần đây cho nhân. trong khối lượng công việc cụ thể trên các hệ thống Linux, Nayak cho biết "một lượng thời gian đáng kể được dành cho hoạt động giả được tính không chính xác là cư trú của C-State. " Trạng thái C được thiết kế để tiết kiệm năng lượng khi CPU không cần ở chế độ thức và hoạt động chờ giả có thể khiến CPU AMD tiến sâu hơn nữa trong hệ thống phân cấp trạng thái C, do đó làm chậm quá trình quay trở lại hoạt động ở trạng thái thức hoàn toàn của nó
Trong khi thử nghiệm các phiên bản khác nhau của nhân [trên hệ thống Zen3 ổ cắm kép], Nayak đã phát hiện ra rằng bản vá của anh ấy để loại bỏ thao tác chờ giả đã mang lại sự cải thiện đáng kể về hiệu suất băng ghế dự bị – từ mức tăng 1.390 phần trăm trong thông lượng MB/giây tối thiểu lên mức trung bình
Mã hàng chục năm tuổi cho khả năng tương thích ACPI không cần phải ở trong Linux nữa, vì vậy bản vá của Nayak có thể sẽ được thêm vào phiên bản sắp tới của nhân - thậm chí có thể là phiên bản 6. 0 dự kiến sẽ xuất xưởng vào tuần tới, ngay trước khi giới thiệu ngôn ngữ lập trình Rust trong Linux 6. 1 theo quyết định của Penguin Maximo Linus Torvalds
Đối với bộ vi xử lý Intel, tùy chọn chờ giả dường như không gây ra vấn đề về hiệu suất mặc dù bản vá khẩn cấp đã được gửi