PostgreSQL, CRC32 계산을 위해 AVX-512로 전환: 최대 3배 빨라짐

전문: https://www.phoronix.com/news/PostgreSQL-CRC32C-AVX512

원저자: Michael Larabel | 작성일: 2025-04-06 11:00
사이트 내 게시일: 2025-04-06 16:23
PostgreSQL은 CRC32C 계산을 위해 AVX-512 명령어를 구현하여 성능을 크게 향상시켰습니다. 이전 방법은 SSE 4.2 확장에서 제공하는 기본 CRC32 명령어를 사용하여 한 번에 최대 8바이트를 처리했습니다. 새로운 AVX-512 접근 방식은 루프 반복당 64바이트를 처리할 수 있어 속도 개선을 가져옵니다. Intel Tiger Lake 하드웨어에서 CRC 계산은 이제 64바이트에서 112바이트 입력에 대해 50% 더 빠르며, 256바이트 입력에 대해서는 최대 3배 더 빨라졌습니다.

VPCLMULQDQ 명령어는 512비트 레지스터에서 작동하며, 2019년부터 Intel에서, 2022년부터 AMD에서 사용할 수 있었습니다. 128비트 레지스터를 위한 구형 변형도 있지만, Zen 2 아키텍처에서 짧은 입력에 대해 표준 CRC 명령어보다 성능이 떨어집니다. 이 구현은 SSE 4.2를 대상으로 하는 빌드를 위한 런타임 검사를 포함하고 있지만, 이는 성능에 큰 영향을 미치지 않으며, 특히 Write-Ahead Logging(WAL)에서는 최종 계산이 인라인 및 언롤링 기법을 통해 최적화됩니다.

PostgreSQL의 CRC32C 계산에서의 이러한 발전은 성능을 향상시킬 뿐만 아니라 현대 CPU 명령어 집합을 활용하여 데이터베이스 작업을 개선할 수 있는 잠재력을 보여주며, 고성능 데이터 처리를 의존하는 사용자에게 주목할 만한 업데이트가 됩니다.

* 이 글은 phoronix.com의 기사를 요약한 것입니다. 전체 기사의 내용은 이곳에서 확인하실 수 있습니다.
카테고리: Software
태그: AMD (2162) 인텔 (1825) AVX-512 (35) PostgreSQL (12) Zen 2 (3) CRC32C (3) Tiger Lake (2) Database Performance (1) SSE 4.2 (1)

댓글

댓글을 쓰기 위해서는 로그인을 해 주세요.