비트 연산을 벡터화하는 기발한 트릭

Vectorized CLZ and CTZ

이 글은 CLZ(선행 0 개수)와 CTZ(후행 0 개수)를 벡터화하는 영리한 방법을 소개한다. 부동소수점 트릭을 사용해 스칼라 버전보다 빠르게 동작하며, Haswell과 Alder Lake에서 측정한 결과를 제시한다. 또한 de Bruijn 수열을 이용한 대안과 64비트 최적화 알고리즘도 다룬다.

이 함수는 Haswell에서 반복당 0.49나노초, 지연 시간에 구속될 때 2.3나노초에 실행된다. Alder Lake에서는 반복당 0.35나노초, 지연 시간에 구속될 때 1.3나노초이다.

이 날의 다른 글

2026-10-12