1 điểm bởi GN⁺ 2024-12-02 | 1 bình luận | Chia sẻ qua WhatsApp

AMD vô hiệu hóa loop buffer của Zen 4

  • Vai trò của loop buffer: Nằm ở frontend của CPU và lưu các lệnh đã được nạp trước đó. Các vòng lặp nhỏ có thể nằm trong loop buffer, nhờ đó có thể vô hiệu hóa một số giai đoạn của frontend để tiết kiệm điện năng và cải thiện hiệu năng. Đây là một kỹ thuật lâu đời được dùng trong các lõi của Intel, Arm và AMD.

  • Loop buffer của Zen 4: Zen 4 là lõi hiệu năng cao duy nhất của AMD có tích hợp loop buffer. Theo các thí nghiệm với bộ đếm hiệu năng, khi lõi chạy một luồng thì nó có 144 mục. Khi hai luồng SMT cùng hoạt động, mỗi luồng được cấp 72 mục. Nếu có lệnh gọi hàm và trả về bên trong vòng lặp thì loop buffer sẽ không bắt được vòng lặp đó.

  • Thay đổi sau khi cập nhật BIOS: Sau khi cập nhật ASRock B650 PG Lightning lên BIOS phiên bản 3.10, giám sát hiệu năng phần cứng cho thấy frontend აღარ dispatch micro-op từ loop buffer. Khi quay lại BIOS phiên bản 1.21, loop buffer lại được kích hoạt. Có vẻ AMD đã vô hiệu hóa loop buffer ở đâu đó giữa BIOS 1.21 (AGESA phiên bản 1.0.0.6) và BIOS 3.10 (AGESA phiên bản 1.2.0.2a).

SPEC CPU2017: Tìm ra khác biệt

  • Ảnh hưởng đến hiệu năng: Điểm SPEC CPU2017 cho thấy không có khác biệt đáng kể tùy theo việc loop buffer có được bật hay không. Tổng điểm của bộ bài kiểm tra số nguyên và dấu chấm động chênh lệch dưới 1%. Mức cải thiện hiệu năng từ SMT cũng không bị ảnh hưởng.

  • Vai trò của loop buffer: Mục tiêu chính của loop buffer không phải là tăng hiệu năng mà là cho phép lõi tắt phần lớn frontend. Theo tài liệu tham chiếu lập trình bộ xử lý của Zen 4, các bộ đếm hiệu năng có thể được lập trình để tăng thêm 1 mỗi khi số sự kiện vượt qua một ngưỡng.

Cyberpunk 2077

  • Kiểm tra hiệu năng game: Bài viết dùng benchmark tích hợp của Cyberpunk 2077 để kiểm tra ảnh hưởng của việc vô hiệu hóa loop buffer lên hiệu năng chơi game. Kết quả cho thấy việc tắt loop buffer gần như không ảnh hưởng đến hiệu năng game.

Thử kiểm tra mức tiêu thụ điện

  • Hiệu quả điện năng: Bài viết cố dùng bộ đếm điện năng của lõi Zen 4 để kiểm tra xem loop buffer có cải thiện hiệu quả điện năng hay không, nhưng kết quả không nhất quán. Trên BIOS mới thì không còn có thể kiểm tra loop buffer.

Kết luận

  • Lý do vô hiệu hóa loop buffer: Chưa rõ vì sao AMD vô hiệu hóa loop buffer của Zen 4. Một tính năng CPU có thể bị tắt do lỗi phần cứng. Zen 4 là trường hợp đầu tiên AMD đưa loop buffer vào CPU hiệu năng cao của mình. Tác động đến hiệu năng là gần như không có, và ảnh hưởng đến mức tiêu thụ điện cũng được cho là rất nhỏ.

1 bình luận

 
GN⁺ 2024-12-02
Ý kiến trên Hacker News
  • Có khả năng tính năng này bị vô hiệu hóa để ngăn chặn lỗ hổng phần cứng. Điều đó cho thấy loop buffer không mang lại lợi ích về hiệu năng hay điện năng

    • Có thể đội ngũ kỹ sư đã phát triển tính năng mới trong vài tháng nhưng thực tế không có lợi ích gì, và nó vẫn được phát hành để giữ thể diện
    • Các nhóm phần mềm cũng thường viết lại codebase để tăng hiệu năng, nhưng sau khi dự án hoàn tất thì mã nguồn lại nhiều hơn và hiệu năng còn tệ hơn
    • Trong cả hai trường hợp, dự án lẽ ra không nên được phát hành
  • Loop buffer của Zen 4 cho thấy công ty có năng lực kỹ thuật để thử nghiệm

    • Lần này không mang lại kết quả, nhưng để các kỹ sư thử nghiệm với những tính năng rủi ro thấp, tác động thấp là cách tốt để xây dựng sự tự tin
    • Có thể kỳ vọng họ sẽ tự tin hơn nữa trong tương lai
  • Đang dùng 7950x3d và đã nâng cấp từ 6700k của Skylake

    • Có vẻ tôi vô thức bị thu hút bởi những con chip mà loop buffer phần cứng bị phần mềm vô hiệu hóa
  • Trong game, khi loop buffer bị vô hiệu hóa, hiệu năng giảm 5% khi bị ghim vào die không có cache

    • Các phép đo điện năng chi tiết hơn có thể giúp xác nhận liệu điều này có liên quan đến ngân sách nhiệt/điện năng hay không
    • Nghe có vẻ tính năng này nhằm tiết kiệm điện
  • Loop buffer có lẽ nhỏ đến mức chỉ tạo khác biệt trong những kịch bản cụ thể, còn buffer lớn hơn thì có thể không đáng chi phí

    • Trong một số workload có thể có suy giảm hiệu năng nhẹ, nhưng AMD đã đạt được một số cải thiện hiệu năng nhỏ kể từ khi phát hành
    • Lẽ ra nó nên là một tùy chọn BIOS của Zen 4. Việc không làm vậy cho thấy có thể liên quan đến lỗi hoặc vấn đề bảo mật
  • Trên Cortex-A15, đây là một "tính năng thiết kế chủ chốt"

    • Không biết có số liệu nào về tác động của nó trên các chip khác không
    • Trong các thiết kế được sử dụng lâu dài, chẳng hạn console, nó có thể trở thành mục tiêu để tối ưu hóa
  • Tôi không hiểu loop buffer chiếm bao nhiêu diện tích trên die

    • Nếu bị loại bỏ, không biết liệu không gian đó trên các chip tương lai có thể được dùng cho thứ hữu ích hơn như cache L2 hay không
  • Trong mục "điện năng", họ không chia cho số lệnh thực thi mỗi giây

    • Chỉ số cần xem để thấy lợi ích của loop buffer không phải là năng lượng mỗi giây mà là mức sử dụng năng lượng trên mỗi lệnh
  • Một trong những khác biệt giữa 68000 năm 1979 và 68010 năm 1982 là việc bổ sung "loop mode", một loop buffer 6 byte