Hacker News 의견
  • 기사는 브랜치 없는 이진 검색의 개념과 잠재적 이점에 대해 논의합니다.
  • 한 댓글에서는 브랜치 제거의 필요성을 의문시하며, 브랜치 예측 실패로 인한 파이프라인 정체가 아키텍처의 본질적인 부분이 아니라고 제안합니다.
  • 댓글에서는 모든 작업이 본질적으로 브랜치라고 더 설명하며, 이러한 브랜치가 성능에 해를 끼치지 않는 이유는 주 파이프라인에서의 브랜치가 아니기 때문이라고 합니다.
  • 또 다른 댓글에서는 lowerBound를 구현하기 위해 "bare-metal" 언어로 컴파일되는 Nim 언어의 사용을 제안합니다.
  • 코드가 가장 먼저 일치하는 것을 반환하는지 아니면 어떤 일치하는 것을 반환하는지에 대한 논의가 있으며, 코드의 기능을 이해하는 것의 중요성을 강조합니다.
  • 한 댓글에서는 블로그 게시물의 직관적인 소개를 칭찬하며, 이는 가장 빠른 일반 이진 검색 C++ 구현을 빠르게 제시합니다.
  • 댓글에서는 Zig stdlib이 이진 검색을 위해 C++를 호출하지 않는다고 지적하며, Zig stdlib의 이진 검색에 대한 링크를 제공합니다.
  • 이진 검색과 브랜치의 문제에 대한 논의가 있으며, 문제는 브랜치 자체가 아니라 비교가 완료될 때까지 다음에 가져올 메모리 위치를 모르는 데이터 의존성에서 발생한다고 제안합니다.
  • 댓글에서는 Cascade Lake 프로세서에서의 이진 검색 성능 결과를 공유하며, clang이 이 특정 코드를 최적화하는 데 gcc보다 더 나쁘다고 제안합니다.
  • 한 댓글에서는 "BUT RUST" 링크의 목적지에 대해 의문을 제기하며, 이 링크가 오래된 것으로 보인다고 합니다.
  • 댓글에서는 결과가 더 복잡한 비교 함수로는 유지되지 않는다고 지적하며, 최상의 성능은 기본 유형에 대해 sb_lower_bound를 사용하고 그 외의 경우에는 std::lower_bound를 사용함으로써 달성될 수 있다고 제안합니다.
  • 마지막 댓글에서는 예측할 수 없는 속성이 이제 cmov 변환 패스에 영향을 미친다고 언급하며, 추가 정보를 위한 링크를 제공합니다.