C에서 BLAS 매트릭스 연산을 사용하여 하이퍼 스레딩을 사용하여 CPU를 벤치마킹하는 동안 하이퍼 스레딩을 사용할 때 함수의 런타임을 거의 정확히 두 배로 관찰했습니다. 내가 예상 한 것은 순서가 잘못된 실행이나 다른 최적화로 인해 일종의 속도 향상이었습니다.gettimeofday 및 기타 시간 측정에 대한 하이퍼 스레딩 효과
gettimeofday를 사용하여 런타임을 추정합니다. 관찰을 평가하기 위해 하이퍼 스레딩 환경 (데비안 리눅스 32 비트)에서의 gettimeofday의 안정성에 대한 생각을 가지고 있거나 제 기대치 (아마도 잘못된 것일 수도 있습니다)에 대해 알고 싶습니다.
업데이트 : 벤치 마크 응용 프로그램을 두 번 실행하여 하나의 하이퍼 스레딩 코어에 각각 선호도를 설정한다는 사실을 잊어 버렸습니다. 예를 들어 gemm은 두 번 병렬로 실행됩니다.
코드와 데이터가 BLAS와 같은 것들이 설계/최적화 된 캐시 (L1 특히 L2에서도 가능)에 적합하다면 해당 코드를 실행하면 대부분의 파이프 라인 설치 및 거품이 부족합니다 하이퍼 스레딩이 다른 스레드의 명령을 스케쥴링하는데, 이것은 하이퍼 스레딩을 거의 무효로 만듭니다. – twalberg