GCC Git, AMD Zen 6를 위한 추가 튜닝 지원
AMD
Zen 6를 위해 새롭게 활성화된 이 튜닝들은 이제 ALU (Arithmetic Logic Unit)에 메모리 피연산자 (memory operand)가 포함된 경우 ALU를 후속 조건부 점프 (conditional jump) 명령어와 융합(fuse)하며, ALU에 즉시값 (immediate)과 변위 (displacement)가 모두 포함된 경우에도 ALU를 후속 조건부 점프 명령어와 융합합니다. 마지막으로, LSHR (Logical Shift Right)의 비용이 더 높을 때 V16QI, V8HI, V8HI, V4SI, V4FI, V2DI 모드를 줄이기 위해 PSHUF를 선호하도록 합니다.
이러한 튜닝들은 이미 AMD Zen 4 및 Zen 5 프로세서를 위한 GNU Compiler Collection (GCC)에서 활성화되어 있었습니다. 따라서 Znver6가 처음 도입될 때 이러한 튜닝들이 넘어오지 않았다는 점은 다소 놀라운 일입니다. 또한, 초기 Znver6 지원이 도입된 GCC 16.1 안정 버전(stable release) 이후에 이 기능이 나온 것도 불행한 일입니다. 이와 유사하게, 우리는 단순히 이전의 Zen 4/5 데이터를 재사용하는 것이 아니라, Znver6에 최적화된 비용 테이블 (cost tables) 및 스케줄러 모델 (scheduler model)이 오픈 소스 컴파일러에 도입되기를 여전히 기다리고 있습니다.
어찌 되었든, 이번 커밋을 통해 최신 Znver6 튜닝이 GCC 17 Git에 반영되었습니다. 아마도 이 패치는 향후 몇 달 안에 GCC 15.2 포인트 릴리스 (point release)에도 백포트 (back-ported)될 것으로 예상됩니다.