1. 개요
지난 가을인가부터 노트북 그래픽카드 성능이 크게 떨어졌습니다.
쓰고 있는 모델은 DELL XPS 15 9560 모델입니다.
노트북에 vmware를 깔아서 여러 클라이언트를 이용하여
GPU를 많이 쓰는 작업을 하려고 하는데,
노트북 내장 그래픽카드가 GTX1050 으로 성능이 취약한 것은 차치하고서라도,
적어도 i7-7700HQ (4-core) 성능은 나와줘야 하는 것 아닌가 하는 의구심이 들었습니다.
한편으로는, 굉장히 오래전에 구입해서 현역으로 아직도 잘 굴리고 있는
MSI 460DX 라고 하는 노트북 (i7-2670QM에 내장 그래픽카드)은
vmware를 이용하여 여러 클라이언트 작동에 큰 무리가 없을 정도였습니다.
정말 이상했습니다.
2. 처음으로 알게 된 사실 - NVIDIA 옵티머스 기술
우선 처음에는 증상의 원인이 무엇인가 궁금하였습니다.
윈도우의 작업관리자를 열어보면 현재 몇 번 GPU가 프로세스를 사용하는지 정보가 나오죠.
예를 들어 0-GPU 라고 나오면 노트북의 내장 그래픽카드(HD 630)을 쓰고 있는 것이고,
1-GPU 라고 나오면 노트북의 외장 그래픽카드(GTX1050)을 쓰고 있다는 뜻입니다.
어플리케이션에 따라서는 두 그래픽카드를 동시에 사용하는 경우도 있는 듯 하니,
사실 신뢰도가 적지만요.
알고 보니 vmware로 켜두고 있는 클라이언트 대부분이
외장 그래픽 카드가 아닌 내장 그래픽 카드로 할당 되거나,
혹은 내외장 그래픽 카드 간을 전환(스위칭)하면서 문제가 발생하는 것이더군요.
그리고 그러한 구조가 요즘의 노트북에 있는 구조라는 사실도
처음 알게 되었습니다.
3. NVIDIA 제어판/윈도우 자체의 설정을 건드려보다.
구글 등을 통하여 "노트북 그래픽카드 랙", "노트북 그래픽카드 끊김" 등의 키워드로 검색하면,
많은 웹사이트, 커뮤니티, 블로그에서 처음으로 제시하는 해결책이
바로 NVIDIA 제어판과 Geforce Experience의 설정을 바꾸는 것입니다.
저 또한 설정을 바꾸어 보았습니다.
대개 해결책을 다음과 같이 제시합니다:
1. NVIDIA 제어판 - 3D 설정 관리 - [전역 설정] 탭에서 기본 그래픽 프로세서를 "고성능 NVIDIA 프로세서"로 설정
2. NVIDIA 제어판 - 3D 설정 관리 - [프로그램 설정] 탭에서 앱별 프로세서를 "고성능 NVIDIA 프로세서"로 설정하고 여러 설정을 입맛에 맞게 변경 (가령 게임의 경우 강제로 수직 동기화 설정이 가능)
3. NVIDIA 제어판 - PhysX 구성 설정 - PhysX 프로세서 선택 - [Geforce GTX 1050] 선택 (이건 가지고 계신 그래픽카드에 따라 다들 다르실 것으로 생각)
4. NVIDIA Geforce Experience - 상단 [설정] 아이콘 클릭(톱니모양) - BATTERY BOOST 기능을 끔
모두 다 해보았지만 당연히 원하는 결과가 나오지 않았습니다.
물론 배터리 등은 신경쓰지 않는 데스크탑 대용 노트북의 경우,
위에 제시된 방법대로 설정해두는게 좋긴 하겠지만요.
한편, 윈도우 자체의 문제로 파악하는 분들도 계셔서 설정을 시도하는 분들도 계시더군요.
다음과 같은 과정을 거칩니다.
[시작] 버튼 클릭
- [시스템] 입력하여 진입
- 왼쪽 메뉴에서 [고급 시스템 설정] 선택
- 상단 [고급] 탭에서 성능의 [설정] 버튼을 눌러 진입
- [시각 효과] 탭에서 설정을 "최적 성능으로 조정"으로 선택
(참고로 사진의 경우 초기 설정을 그대로 둔 것이며, 지금 이야기하는 것처럼 설정은 권장하지 않습니다.)
결론은, 이와 같이 설정하여도 아무런 효과를 보지 못하였습니다.
마지막으로, NVIDIA 옵티머스와 인텔 내장 그래픽카드 간의 책임 떠넘기기 문제(?)
그리고 Microsoft 운영체제의 업데이트 간에 불협화음 등의 문제로 인하여
앱들 중에는 GPU 사용이 지속되지 않는 경우가 발생하므로,
GPU 사용이 지속되도록 강제하면 문제가 해결된다고 하는 앱도 있었습니다.
바로 TrayPwrD3 라는 앱인데요.
이것 또한 설치해보았으나 저의 경우 전혀 효과가 없었습니다.
참고로 다운로드는 아래 주소에서 가능합니다.
https://github.com/jobeid/TrayPwrD3
4. 결국 찾은 해결책
여러 질의 응답들을 찾다가 흥미로운 질의응답을 하나 발견하게 됩니다.
외국의 notebookreview.com 이라는 사이트에서,
오버워치 게임을 할 때 스로틀링이 걸린다고 하는 리뷰를 발견하게 됩니다.
이 리뷰에서 이야기하는 것은 다음과 같습니다.
3. The final piece of the puzzle! -- disable Intel Dynamic and Thermal Framework:
Note: @Eason makes a good point, proceed at your own risk.
3. 퍼즐을 푸는 마지막 조각! -- Intel Dynamic and Thermal Framework을 비활성화하기.
참고: @Eason 씨가 좋은 점을 지적해주었습니다. 다소 위험할 수 있음을 주지하시기 바랍니다.
이정도만 보면 이해가 안 되실 것 같으나,
한국어로 몇가지만 정리해본다면,
1. Intel Dynamic and Thermal Framework 이라는 앱과 관련 드라이버로 인하여, 노트북의 온도 상한선이 제어되고 있으며, 그것이 바로 스로틀링의 원인이다. 즉, NVIDIA에서 아무리 외장GPU 사용을 강제하더라도, 인텔 앱으로 인하여 온도가 어느 상한선(threshold)을 넘어서게 되면 내장GPU로 스위칭 되어버리는 것임.
2. 따라서, Intel Dynamic and Thermal Framework가 없다면 문제가 해결 됨.
3. 다만, 이 앱이 없을 경우, 다이내믹한 온도 관리가 되지 되지 않기 때문에 디바이스의 온도가 치솟게 되며, 이로 인하여 시스템이 멈추거나 혹은 타버리는(?) 일은 없지만, 그래도 부품의 수명이 감소하는 등의 리스크는 있을 수 있음.
4. 그래픽카드의 온도 조절에 대해서는 관여하지 않는 것으로 보임.
5. 디바이스의 온도가 지나치게 올라가는 문제는 BIOS에서 Intel Turbo Boost를 끔으로써 해결 가능함. Turbo Boost를 끌 경우 GPU에 걸리는 스로틀링의 빈도가 줄어듬. 다만, 클럭수가 기본 클럭으로 유지되기 때문에 성능은 올라가지 않는 것처럼 보임.
결론: Intel Dynamic and Thermal Framework 앱을 삭제하고 관련 드라이버를 모두 비활성화하면 되겠습니다.
이에, 직접 실행해보기로 하였습니다.
먼저 앱을 삭제하였고,
아래 그림과 같이 장치 관리자에서 설치된 드라이버를 모두 삭제 후 잡히는 장치를 비활성화 해주었습니다.
참고로, 드라이버 설치는 일반 부팅 상태에서는 잘 안 될 수 있으므로, 위에 말한 앱을 삭제 후 안전 모드로 부팅하여서 삭제하면 됩니다.
한편, 권장사항에 나와있는 Turbo Boost는 일부러 끄지 않았는데, 그 이유는 추후 설명드리겠습니다.
5. 결과
당연하지만, 해결되었습니다!
온도가 80도 가까이 늘 올라가 있는 것은 마음에 걸리지만,
원래 기대하였던 노트북의 성능을 그대로 회복하였으며,
다양한 일과를 수행하는 데에 전혀 문제가 없도록 변화하였습니다.
(참고로 방안의 주변온도는 28도로 항상 맞춰두고 있습니다. 창문형 에어컨 사용중)
Turbo Boost의 경우 끄게 되면 CPU 온도가 70도 언저리에서 멈춰있는 장점이 있습니다.
즉, 위와 같은 상황보다는 좀더 안정적이 될 수 있겠습니다.
개인적으로는 여러분들께서는 Turbo Boost를 끈 상태에서 사용해보시다가,
성능이 뭔가 부족한 것 같다 싶으면 다시 켜보시는 것도 좋다고 생각합니다.
아울러, 위의 스크린샷에 나온 Core Temp 앱을 설치하셔서
온도를 모니터링해보시는 것도 권장합니다.
여러분께서도 최근 구입한 노트북의 GPU 성능이 잘 나오지 않는 경우,
의외로 온도에 의한 스로틀링 문제일 수 있습니다.
이 락을 해제해주면 다소 위험해지긴 하지만 원래 성능을 회복할 수 있는 것 같습니다.
많은 분들께 도움 되었으면 좋겠습니다.
읽어주셔서 감사합니다.
이 기능을 잘 살리지 못하는 두 회사가 참 황당하네요..
저 배고파요 밥 사주세요 (웅?)
또다른 방법으로 NVidia 를 끄고, 내장 그래픽스카드로 VM을 돌려보시면 그게 더 나을겁니다.
VirtualBox의 경우는, OpenGL 2.5이상이 제대로 동작하지 않고요, VM계열이 GPU를 제대로 쓰고 있지도 않습니다.
Native 기능이 아니라서, X 계열처럼 VM내의 모든 화면이 결국 단일 비트맵한장 출력하는 꼴이라..
옵티머스 기능때문에 NVidia랑 내장하고 계속 충돌나고, 좀 되다가도 갑자기 GPU 전환되는 현상이 말씀하신 온도 기능으로 빈번하게 발생해서 굳이 VM에서 별필요없는 NVidia는 꺼두시는게 나을거라 봅니다.
무엇보다도 게임도 하고 실험도 하기 때문에 NVIDIA가 지금은 저에게 절실하지요. ^^;
GL 계열이라면, VM계열에서 사실상 소프트렌더링인 경우가 많습니다. VirtualBox에서는 쉐이더도 안먹습니다.
하지만.. 게임이 필요하시면... 어쩔수가..^,.^..
그 사이에 마비노기 같은 고인물 게임을 하고 있죠 ㅋㅋㅋ
그러고 보니 매트랩이나 텐서플로에서 저 설정 바꿔서
성능향상이 어느 정도 있었는지는 조사를 안 했군요...마는
기계학습 하는 사람이 얼마나 있겠습니까.... (지만 막 불쑥 튀어나올거 같다;)
주말에 생각의 여유가 생기면 저도 시도해봐야 하겠네요.
계속 강제 활성화 되는 항목이 있네요.
Intel(R) Dynamic Platform and Thermal Framework Manager
Intel(R) Dynamic Platform and Thermal Framework Memory Participant
요 두개는 "디바이스 사용안함" 으로 설정 했네요.
몇번 부팅해 가면서 ㅎㅎ
드라이버도 언인스톨하면 더 강력하게 될 것이고, 인텔 관련 앱도 언인스톨해주면 좋죠.
저는 안전한 방법으로 CPU언더볼팅 + CPU 터보부스트 OFF, GPU 성능대파워 커브튜닝으로 해결했어요..
셋팅후 세시간 더 가혹하게 와우를 돌려보았는데, 게임내 평상시엔 온도 60~65도 유지, 오브젝트가 정말 많을때는 72도. 매우 쾌적하게 사용할수 있었습니다.
9560 CPU가 2.8GHz인데, 굳이 터보부스트 3.5GHz까지 쓰지않더라도 그래픽작업이나 게임에 문제가 전혀 없더라구요. 오히려 성능 좋게 쓰다가 쓰로틀 걸리면 800MHz로 떨어지기 때문에 안정적인 작업 측면에서도..
CPU튠툴은 throttlestop 8.60GPU튠툴은 MSI Afterburner를 사용중입니다.비싼돈 주고 놋북 샀는데 사용자가 이런 고생을 해야한다니 참 답답하긴 해요;
델 입장에서도 9560은 BIOS 업데이트를 매우 자주 하는 편이더라구요.
엔비디아 쪽에서도 상당히 고전하는 것 같고...
여튼 기능이 좋아지면 그걸 관리하는 회사가 여러곳으로 나눠져 있을 경우 이런 문제도 벌어질 수 있다는 사실이 안타깝습니다.