리눅스 커널 패치, "좋은" AVX-512를 지원하는 CPU의 CRC32 성능 향상

전문: https://www.phoronix.com/news/Linux-CRC32C-VPCLMULQDQ

원저자: Michael Larabel | 작성일: 2025-07-20 11:05
사이트 내 게시일: 2025-07-20 22:22
최신 리눅스 커널 패치는 고급 AVX-512 구현을 지원하는 현대 Intel 및 AMD CPU에서 CRC32 성능을 향상시키는 것을 목표로 하고 있습니다. 이 패치는 특히 512바이트 이상의 데이터 길이에 대해 crc32c() 함수를 개선하며, 이전의 crc32c_x86_3way() 방법 대신 crc32_lsb_vpclmul_avx512() 함수를 활용합니다. 이 변경은 AMD Zen 4 및 이후 모델, 그리고 Intel Sapphire Rapids 및 이후 CPU에 특히 유리하며, 이들 CPU는 VPCLMULQDQ 성능이 향상되었습니다.

이러한 최적화의 이유는 최신 CPU에서 crc32_lsb_vpclmul_avx512() 함수가 전용 CRC-32C 명령어를 위해 설계된 이전 함수보다 더 빠르기 때문입니다. 벤치마크 결과에 따르면, Intel CPU는 여전히 약 2000 ns의 ZMM 워밍업 시간이 필요하지만, AMD CPU는 사실상 워밍업 시간이 거의 없이 약 60 ns의 성능을 보여줍니다. 이는 성능 향상이 일반적으로 AMD에 유리하지만, Intel에서는 작은 메시지 크기와 차가운 ZMM 레지스터의 경우 이점이 덜 두드러질 수 있음을 의미합니다.

향후 작업은 AMD Zen 3에서 Zen 5 아키텍처의 crc32c() 성능을 더욱 향상시키기 위해 crc32q와 VPCLMULQDQ 명령어를 교차 배치하는 것을 목표로 하고 있으며, 최적의 구현은 이러한 마이크로아키텍처에 따라 다를 수 있습니다. 현재 커밋은 새로운 구현을 도입하기보다는 기존 구현의 선택을 개선하는 데 중점을 두고 있습니다.

* 이 글은 phoronix.com의 기사를 요약한 것입니다. 전체 기사의 내용은 이곳에서 확인하실 수 있습니다.
카테고리: CPU
태그: AMD (2712) 인텔 (2241) benchmarking (385) Performance Optimization (309) Linux Kernel (118) AVX-512 (53) Microarchitecture (19) CRC32 (1)

댓글

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