GN⁺: AMD, Zen 4의 루프 버퍼 비활성화 결정
(chipsandcheese.com)AMD가 Zen 4의 루프 버퍼를 비활성화함
-
루프 버퍼의 역할: CPU의 프론트엔드에 위치하여 이전에 가져온 명령어를 저장함. 작은 루프는 루프 버퍼에 포함될 수 있으며, 이를 통해 일부 프론트엔드 단계를 비활성화하여 전력을 절약하고 성능을 향상시킬 수 있음. Intel, Arm, AMD 코어에서 사용되는 오래된 기술임.
-
Zen 4의 루프 버퍼: Zen 4는 AMD의 고성능 코어 중 유일하게 루프 버퍼를 포함하고 있음. 성능 카운터 실험에 따르면, 코어가 하나의 스레드로 실행될 때 144개의 항목을 가짐. 두 개의 SMT 스레드가 활성화되면 각 스레드에 72개의 항목을 할당함. 루프 내에서 호출 및 반환이 발생하면 루프 버퍼에 캡처되지 않음.
-
BIOS 업데이트 후 변화: ASRock B650 PG Lightning을 BIOS 버전 3.10으로 업데이트한 후, 하드웨어 성능 모니터링에서 프론트엔드가 더 이상 루프 버퍼에서 마이크로-옵을 디스패치하지 않음을 확인함. BIOS 버전 1.21로 되돌리면 루프 버퍼가 다시 활성화됨. AMD는 BIOS 1.21(AGESA 버전 1.0.0.6)과 BIOS 3.10(AGESA 버전 1.2.0.2a) 사이에서 루프 버퍼를 비활성화한 것으로 보임.
SPEC CPU2017: 차이점 찾기
-
성능 영향: SPEC CPU2017 점수는 루프 버퍼의 활성화 여부에 따라 눈에 띄는 차이가 없음을 보여줌. 정수 및 부동 소수점 스위트의 총 점수는 1% 미만의 차이를 보임. SMT 성능 향상도 영향을 받지 않음.
-
루프 버퍼의 역할: 루프 버퍼는 성능 향상을 위한 것이 아니라, 코어가 프론트엔드의 많은 부분을 비활성화할 수 있도록 하는 것이 주된 목표임. Zen 4의 프로세서 프로그래밍 참조에 따르면, 성능 카운터는 이벤트 수가 임계값을 초과할 때마다 1씩 증가하도록 프로그래밍할 수 있음.
Cyberpunk 2077
- 게임 성능 테스트: Cyberpunk 2077의 내장 벤치마크를 사용하여 루프 버퍼 비활성화가 게임 성능에 미치는 영향을 확인함. 루프 버퍼 비활성화가 게임 성능에 거의 영향을 미치지 않음을 확인함.
전력 소모 확인 시도
- 전력 효율성: Zen 4의 코어 전력 카운터를 사용하여 루프 버퍼가 전력 효율성을 개선하는지 확인하려 했으나, 결과가 일관되지 않음. 새로운 BIOS에서는 루프 버퍼를 테스트할 수 없음.
결론
- 루프 버퍼 비활성화 이유: AMD가 Zen 4의 루프 버퍼를 비활성화한 이유는 불분명함. CPU 기능은 하드웨어 버그로 인해 비활성화될 수 있음. Zen 4는 AMD의 고성능 CPU에 루프 버퍼를 처음 도입한 사례임. 성능에 미치는 영향은 거의 없으며, 전력 소비에 미치는 영향도 미미할 것으로 추정됨.
Hacker News 의견
-
하드웨어 취약점을 방지하기 위해 기능이 비활성화된 것일 가능성이 있음. 루프 버퍼가 성능이나 전력 이점이 없음을 시사함
- 엔지니어 팀이 몇 달 동안 새로운 기능을 개발했지만 실제로는 이점이 없었고, 체면을 위해 출시된 경우일 수 있음
- 소프트웨어 팀에서도 코드베이스를 다시 작성하여 성능을 높이려 하지만, 프로젝트 완료 후 코드가 더 많아지고 성능이 악화되는 경우가 있음
- 두 경우 모두 프로젝트는 출시되지 말았어야 했음
-
Zen 4의 루프 버퍼는 회사가 엔지니어링 역량을 가지고 실험할 수 있음을 나타냄
- 이번에는 성과가 없었지만, 엔지니어들이 저위험, 저영향 기능으로 실험하는 것은 자신감을 키우는 좋은 방법임
- 앞으로 더 많은 자신감을 기대함
-
7950x3d를 사용 중이며, Skylake의 6700k에서 업그레이드했음
- 하드웨어 루프 버퍼가 소프트웨어에 의해 비활성화된 칩에 무의식적으로 끌리는 것 같음
-
게임에서 루프 버퍼가 비활성화되면 비캐시 다이에 고정될 때 성능이 5% 감소함
- 더 자세한 전력 측정으로 열/전력 예산 관련 여부를 확인할 수 있을 것임
- 이 기능이 전력을 절약하기 위한 것처럼 들림
-
루프 버퍼가 특정 시나리오에서만 차이를 만들 정도로 작았고, 더 큰 버퍼는 비용 대비 이점이 적었을 것임
- 일부 작업 부하에서는 소폭의 성능 저하가 있을 수 있지만, AMD는 출시 이후 약간의 성능 개선을 이루었음
- Zen 4의 BIOS 옵션으로 만들었어야 했음. 그렇지 않은 것은 버그나 보안 문제 가능성을 나타냄
-
Cortex-A15에서는 "주요 설계 기능"임
- 다른 칩에 미치는 영향에 대한 수치가 있는지 궁금함
- 장기적으로 사용되는 디자인(예: 콘솔)에서 최적화 대상으로 사용할 수 있을 것임
-
루프 버퍼가 다이에서 차지하는 공간이 얼마나 되는지 이해가 안 됨
- 제거된 경우, 미래 칩에서 더 유용한 L2 캐시 같은 것을 위해 공간을 사용할 수 있을지 궁금함
-
"전력" 섹션에서 초당 실행된 명령어 수로 나누지 않음
- 루프 버퍼의 이점을 보기 위해 고려해야 할 메트릭은 초당 에너지가 아니라 명령어당 에너지 사용량임
-
1979년 68000과 1982년 68010의 차이 중 하나는 6바이트 루프 버퍼인 "루프 모드"의 추가였음