하이퍼쓰레딩을 꺼야할 (off) 상황이 어떤때인지 궁금합니다.

   조회 19714   추천 0    

 기본적으로 활성 으로 하는게 퍼포먼스가 유리할텐데

끄는 옵션이 있는걸로 봐서 상황에 따라 꺼야할 이유가 있나 싶어서요.

짧은글 일수록 신중하게.
chis 2019-12
게임은 끄는게 프레임이 더 나온다고 하더라고요.
     
겨울나무 2019-12
게임같이 코어당 성능이 높아야 하니 멀티코어보다는 고클럭을 선호하는게 맞다고 보긴 하는데 터보코어(?) 하이퍼쓰레딩을 끄면 클럭이 더 높아지는게 맞나요? 아니면 하이퍼쓰레딩 상으로도 클럭이 높아질 수 있나요?
김동수P 2019-12
옛날에는 스레드 경합이 심한 경우 끄면 성능 향상이 있었는데요 (모든 쓰레드가 물리코어에 할당되니..)
지금은 OS가 똑똑해져서 실제로 스케쥴러가 배분을 물리코어 기준으로 해주기때문에 약 3% 정도의 비효율성만 보인다고 하네요.
코어수가 엄청 많은 경우 끄면 미세하게 빨라지긴 합니다.
     
겨울나무 2019-12
자세한 설명 감사드립니다.
변선주 2019-12
저의 경우는 R 통계프로그램을 이용하는 컴퓨터에서는 끄고있습니다. R은 다중쓰레드 지원이 되기는 한데, 굉장히 어렵습니다.
그래서 1쓰레드의 성능을 조금 더 높이기 위하여 끄고 사용합니다.
     
겨울나무 2019-12
하이퍼쓰레딩 off가 코어당 클럭 상승에 기여하는줄 몰랐네요. 제조사에서 제시한 정규클럭 이상으로 높아가는건가요?
          
구차니 2019-12
그거 보다는 코어 부스트 클럭이 몇개 코어에 걸리냐에 따라 최대 부스트 클럭이 낮아집니다
1개 코어만 부스트 되면 2.5G가 3.5G가 걸린다면
2개 코어가 부스트 되면 3.3G
4개 코어가 부스트 되면 3.1G 이런식으로 코어 부스트 클럭이 낮아지게 문서에 명시되어있습니다.
          
변선주 2019-12
이것과 관련이 있는지는 모르겠는데요..
제가 가끔씩 하는 분석의 경우 큰 틀은 큰 자료 테이블에서 해당 테이블 추출, 그리고 일정 조건에 맞는 것을 확인, 그리고 다음 연구대상자의 자료 추출 이런식으로 순차적으로 분석이 들어갑니다. 이런 분석에서는 HT를 끄는게 2배는 아니어도 조금은 빠르기 때문에 그냥 끄고 사용하고 있습니다. 어짜피 6C12T CPU에서 HT를 끄더라도 6C6T인데 이게 일반적으로 사용하기에 문제가 있지는 않거든요.
흥선대원군 2019-12
인텔의 하이퍼쓰레딩의 경우 하이퍼쓰레딩을 끄면 전압도 덜먹고 발열이 덜하니 코어당 상위 클럭을 유지하는데 도움이 될듯합니다.
게임같은 단일 코어 성능이 더필요한 경우에 쓰일거같네요 (다수 코어를 지원하지 않는경우)
     
겨울나무 2019-12
오버클럭 수율쪽 문제인가요?
김현린 2019-12
하이퍼 쓰레딩을 켠다고 해서 코어당 클럭이 올라가는건 아닙니다.
하이퍼 쓰레딩을 켜게되면 물리 코어 1개가 2개 코어가 하는 일을 동시에 하게 되는것이니 순수하게 코어1개가 하던갓보다는 약간 느려지는 것 같다.
그래서 끄고 쓴다.
라는 의견이 전부터 꽤 많이 있었고 어느정도 확인도 되었습니다.
하지만 멀티 쓰레드를 충분히 잘 활용하는 소프트웨어들은 하이퍼 쓰레드를 켜는것이 효율이 더 좋은건 사실입니다.
성능 모니터에서 보이는 코어 사용율이 100%라 하더라도 실제로 100% 사용하는것이 아닌경우가 많타 합니다.
이때 100%가 아닌 남는부분에도 일을 시키는게 하이퍼 쓰레딩인지라 실제 100%갈구는 경우에는 효과가 크지 않타.. 합니다.
cpu가 일하는 방법에 대해 들은 바로는.. 1이라는 시간(1초 아님)에 100이라는 일을 할수 있다 가정을 하고
코어는 100이란느 일이 들어오던 10이라는 일이 들어오던 1이라는 시간에는 한번에 하나밖에 못합니다.
즉 100 50 1 2 10 이런식으로 5번의 일이 들어오면 5라는 시간이 필요하게되는거죠.
이때 50 1 2 10같은 경우에는 코어는 100% 일을 하지 않게되죠.
이걸 논리적으로 2개로 쪼게게되면 시간을 단축할수 있게되는겁니다.
하지만 100 100 100 100 100 이렇게 일이 들어오면 오히려 하이퍼 쓰레딩 끈것보다 약간 더 오래 걸린다..
제가 주워들은 이야기는 이정도입니다.
     
겨울나무 2019-12
자세한 설명에 이해가 쏙 됩니다. 코어 당 쓰레드 효율이 높아지고 코어의 유휴자원을 가상으로 쓰레드 수를 늘려서 약간의 병렬처리 효과를 내는군요.
          
김현린 2019-12
정답입니다.
cpu 사용률이 100% 라 하더라도 진짜 100%가 아닐수 있다는 것만 이해한다면 하이퍼 쓰레딩의 필요성은 알게 됩니다
근데 그게 진짜 100%인지 비어있는 100%인지가 구분하기 어려운거죠..
논리코어 개념이.. 쉽게 생각하면 실제 연산을 해주는 ALU를 공유하는데 레지스터만 따로 가지는 것 같은 거라고 들었습니다. 그래서.. 만약 한 논리코어에서 더하기 연산을 하고 다른 논리코어에서는 곱하기 연산을 한다고 하면 사용하는 ALU의 로직이 서로 다르기 때문에 동시에 연산이 가능합니다. 그런데 만약 둘 다 더하기를 한다든지 하면 논리코어 하나는 더하기 로직이 idle 상태가 될 때까지 기다려야 합니다. 이렇게 논리코어를 사용하면 ALU 사용률이 100%를 넘어가게 되니까 시스템 전체적인 throughput은 높아지는데, 개별 논리코어 입장에서는 어쩔 수 없이 대기 시간이 추가돼서 느려지게 됩니다. 그래서 동시처리할 작업이 많지 않고 레이턴시가 아주 중요한 작업의 경우에는 논리코어를 사용하는 것이 오히려 성능 면에서 손해가 될 수 있습니다.
술이 2019-12
하이퍼쓰레딩 남는 대역폭을 더 확장시켜서 더 쓰게끔 유도하는거고 이게 DB같은 서버에서는 오히려 역효과 난다고 예전에는 끄라는게 권고 옵션이였습니다.
요즘은 알아서 활용해주는데 옛날에는 하이퍼쓰레딩이 없는 AMD쪽이 통계나 계산쪽이 더 빨랐던 이유가 이런데서 오지 않았나 싶네요.
R쓰는분이 여기 있는줄 몰랐네요. MSSQL 2016부터 R 지원해서 그거 셋팅하느라 엄청 헤맸습니다. 라이브러리도 일부만 지원하고 참 뭐같다 싶었는데 2017부터 쓸만하게 만들었다고...


QnA
제목Page 1196/5729
2015-12   1786867   백메가
2014-05   5262127   정은준1
2022-04   3048   soniit
2015-02   4677   아름다운노을
2016-04   4310   병맛폰
2020-11   2912   개념막막
2013-10   6364   김황중
2017-03   3854   두cpu
2018-06   6814   기묘한생활
2013-10   5884   배고프고가…
2020-11   7295   그모도
2013-10   4409   회로쟁이
2022-05   3988   미스티
2017-04   4520   보노보노
2022-05   1536   앤드유저
2013-10   12961   이니셜225
2022-06   2984   회로쟁이
2024-01   2479   캔위드
2022-06   2436   스토리
2013-11   7586   정진환
2016-05   4214   바람이되어서
2017-04   3425   이건희