딥러닝 RTX3060이 RTX3090보다 빠릅니다...

   조회 4354   추천 0    

 

 RTX 3090 computer specification (700만원)

(1) CPU : Intel Xeon Silver 4310 CPU @ 2.10GHz

(2) Memory : 128 GB



 RTX 3060 computer specification (500만원)

(1) Intel Xeon W-2245 CPU @ 3.90GHz

(2) Memory : 128 GB



3060 computer uses CPU 24~27% (4.49GHz) | Ram memory 9%

3090 computer uses CPU 11~15% (1.38~1.56GHz) | Ram memory 7%


워크스테이션 구매해서 2개 있는데,

Keras 딥러닝 동일한 코드 돌리니까 3090 컴퓨터가 2배 이상 느립니다....


CPU가 원인일까요?


아니면 라이브러리나 CUDA, cudnn 설치가 잘못 된 것일까요?


(tensorflow 홈페이지 기준으로 tensorflow-gpu : 2.7.0 | CUDA : 11.2 | cudnn : 8.1 | Python : 3.9 | Visual Studio 2019)

로 동일하게 세팅하였습니다.


작업 관리자에서 두 컴퓨터 모두 GPU는 Max로 쓰는 것 확인했습니다...


힘드네요ㅠㅠ



(번외로, tensorflow-gpu : 2.9.1로 업데이트 해도 딥러닝은 작동이 되어서


마지막으로 CUDA, cudnn, Python 모두 최신 버전으로 업데이트 한 다음에 테스트해볼 생각이긴 합니다.


아니면 이러한 것들이 큰 의미가 없을까요?)


3090 컴퓨터



3060 컴퓨터









짧은글 일수록 신중하게.
Dreaday 2022-08
클럭 차이 떄문에 그런거같은데요 .

CPU를 일단 싱글코어 사용하는듯하고 GPU는 100%지만 ... 

그러면 그래픽을 3060 => 3090으로 변경하고 해보세요~
     
그러면 컴퓨터 조합을

(1) RTX 3090 - Intel Xeon W-2245 CPU @ 3.90GHz

 (2) RTX 3060 - Intel Xeon Silver 4310 CPU @ 2.10GHz

이렇게 바꾸시라는 말씀이신가요?

(즉 서로의 컴퓨터에서 GPU만 바꾸는 것)

그러면 물론 (1) 조합이 속도가 더 빠르게 나오겠지만,

(2) 조합이 기존의 RTX 3060 - Intel Xeon W-2245 CPU @ 3.90GHz과 비교했을 때 너무 많이 떨어지지는 않는가 궁금하기도 합니다.
박문형 2022-08
GPU 서버에서 CPU는 단지 PCIe 로 GPU를 연결해주는 역활이라 클럭이 낮아도 GPU에 동작하는 프로그램에서는 퍼포먼스가

CPU가 높은 시스템과 비슷해야 맞는듯합니다만 실제 그렇지 않는 경우도 있나 보네요..

아니면 사용된 CPU가 부하에 비해 너무 낮았다던지

1 / 2 시스템의 GPU 만 서로 바꿔서 퍼포먼스 테스트 해보시고 각 4가지 시스템 컨피그레이션 경우에 대해 비교해보세요..

측정 가능하시면 부하를 주었을때 각 GPU의 메모리는 얼마나 사용하는지도 확인해보세요..
손님 2022-08
일단 싱글코어 문제면 4310 클럭이 너무 낮습니다.
CPU 온도도 조사해보시는게 좋겠습니다.
뽀또 2022-08
열 배출 안되서 스로틀링이나 클럭 다운 걸린거 아니에요??
3090열 많이 날텐데...
제가 돌리고 있는 딥러닝에서 GridSearchCV를 쓰는데, 거기서 n_jobs=1로 cpu코어는 1로 사용하고 있습니다.

네 "뽀또"님 말씀데로, 3090이 발열이 꽤 있습니다. 3060보다 더 발열이 있는거 같네요.

제가 스로틀링이나 클럭 다운 등 전문 용어는 몰라서

작업관리자에 GPU온도는 31'C로 나타나는데 CPU 온도는 안 나타나네요.
(위에 발열은 컴퓨터비전 쪽으로 메모리 많이 쓰는 딥러닝 모델 돌리면 발열이 꽤 나더라구요)

오버클럭을 해야할까요?
박문형 2022-08
서버 장비는 오버클럭 기능이 보통 없고 오버클럭을 하지 않는게  디폴트 입니다..

스로틀링은 구글링 해보면 답이 나오겠지만 열이 너무 나서 장비가 제 속도로 동작하지 못해 성능이 재대로 안 나오는 것이라고 보시면 됩니다..
네 그럼 현재로서는 최선의 방법은 서로 간의 GPU를 바꾼 후 성능 비교를 해봐야 하는 것이겠군요.

아니면 구매 업체에 CPU를 Intel Xeon W-2245 CPU @ 3.90GHz로 바꿔달라고 하거나요. (추가 비용이 많이 발생할까요?)

위에 컴퓨터 성능 캡쳐했는데, 혹시 이상 상황이 보이시는지요?
박문형 2022-08
윈도우즈에서 무슨 프로그램으로 모니터링했는지 모르겠지만

CPU는 두시스템 다 거의 놀고 있다고 봐야 할 듯하고 GPU는 메모리는 다 쓰지만 GPU 풀 부하 같아 보이지 않고 그러네요..

시스템들 파워 용량이 어떻게 되는지 모르겠는데

3090 이면 풀부하시 스팩에서 전력을 400W 가까이 먹는 것으로 기억하거든요..

개인적으로 왜 3090이 느린지는 글쎄요 입니다..


구매 업체에 CPU를 Intel Xeon W-2245 CPU @ 3.90GHz로 바꿔달라고 하거나요.  ==> 업체에서 난감해 할겁니다..

조립인지 벤더인지 모르겠지만 CPU만 바꿔서 될 것이 아니고 최소 보드랑 CPU 같이 바꿔야 하거든요..

그리고 학교에서 구매했으면 견적서 발주서 처리하고 구매부 거쳐서 물품 구매했을텐데 기획 당시에 왜 이랬다 저랬다 했느냐로 따져 물으면

물품 기획자나 책임자만 곤란해집니다..
네 Keras 모델 돌리면 위에 메모리는 100% 쓰는데, 이게 정상이라고 합니다. (Full load는 아마 안 쓰는 듯?)

https://stackoverflow.com/questions/70782399/tensorflow-is-it-normal-that-my-gpu-is-using-all-its-memory-but-is-not-under-fu
박문형 2022-08
재일 밑의 사진 첨부한 것 보니 GPU도 거의 놀고 있네요..

프로그램은 잘 모르지만 프로그래밍이 잘못되거나 각종 컴파일러 라이브러리가 잘못 셋팅될 확률도 있습니다..

한 개의 프로그램 말고 다른 것들도 돌려보세요..

그리고 왜 3060이 빠른지에 대해 질문에 나와 있지 않는 듯한데 같은 연산을 했을때 시간 차이가 2배 이상 나는 것인가요??
네 완전히 동일한 연산을 했을 때 속도가 2배 이상 차이가 납니다.

GPU 사용은 저게 정상인 것으로 아래 링크에 나옵니다.
https://stackoverflow.com/questions/70782399/tensorflow-is-it-normal-that-my-gpu-is-using-all-its-memory-but-is-not-under-fu
트니아빠 2022-08
GPU 메모리를 99% 채우는 것도 힘들던데..
채우는 것에 비하여 소비 전력이 너무 낮은 것 같습니다.
GPU가 제대로 학습에 이용하고 있지 않은 것 같습니다.
GPU 53도는 쓰는듯 마는듯한 온도 같습니다.
김경철 2022-08
일단 GPU 사용내역이 정상이 아닙니다.
tensorflow 돌아가면 일단 GPU memory는 다 잡아놓기때문에 메모리 사용량은 무조건 100%나오는것은 맞는데요,
모델 돌리는것에 따라 실제 GPU 사용량이 올라가야 합니다. nvidia-smi 명령으로 확인 가능합니다.

아마 뭔가 이상한 이유로 실제 코드 돌아가는게 CPU에서만 돌아가는것 같습니다.
nvidia-smi 첨부했습니다.

그런데 이상한 점이 CUDA를 11.6를 다운 받은 적도 없고 설치한 적도 없는데, CUDA가 왜 11.6인지 의문입니다.
저는 NVIDIA 홈페이지에서 11.2.2 (UPDATE 2)를 다운받아 설치했었습니다.
(Program Files에 들어가도 v11.2라는 폴더가 나오긴 합니다)

혹시 위 사진에서 이상한 점이 보이나요?
     
트니아빠 2022-08
23W 라는 것은 GPU를 사용하고 있지 않다는 것입니다. 3070도 Idel 에서 18W 정도 나옵니다.
박문형 2022-08
혹시나 이지만 GPU 카드 불량을 의심해 봅니다..

테스트 할려면 만만하지 않을 겁니다..
extra 2022-08
당연한 결과입니다.
Scikit learn 라이브러리는 멀티스레드는 지원하지만 GPU 연산은 아직은 하고 있지 않습니다.
https://vision-ai.tistory.com/entry/%ED%85%90%EC%84%9C%ED%94%8C%EB%A1%9C%EC%9A%B0-%EB%94%A5%EB%9F%AC%EB%8B%9D-GridSearchCV-%EC%9D%B4%EC%9A%A9-%EB%B0%A9%EB%B2%95
GridSearchCV 는 CPU 연산만으로 하고 n_jobs=1 로 하나의 코어만 해당 작업을 하니 느리죠.
n_jobs=-1 로 설정하여 모든 코어 다 쓰도록 수정하세요.
하나의 코어만 사용하면 당연히 클럭 높은 높은 것이 더 성능 높게 나오죠;;
그리고 제가 알기론 아직은 scikit learn 에서 제공하는 라이브러리들은 CPU 연산만 하는 것으로 알고 있습니다.
정확히 wrapper 클래스가 어느 형식으로 동작하는지 모르겠지만 단순히 가중치를 가져와서 학습하는 방식이라면 당연히 GPU 사용률이 떨어지는 것이 맞습니다.
https://machinelearningmastery.com/use-keras-deep-learning-models-scikit-learn-python/
This might take about 5 minutes to complete on your workstation executed on the CPU (rather than GPU). Running the example shows the results below.
저도 정확히 테스트를 한 것이나 소스코드를 완벽히 이해한 것이 아니여서 확답을 드리긴 어렵지만, CPU 연산만으로 수행되는 것 같습니다.

학습을 사이킷런 통해서 하는게 아니라 텐서플로우나 파이토치 등 GPU 연산하는 라이브러리에서 하도록 하고 수행시간 비교를 하세요.
제가 n_jobs도 변경해보았었습니다.

그런데, 재미있는 현상이 n_jobs가 1이 아닌 그 이상의 수치일 경우 학습 완료되는데 까지 걸린 시간이 더 깁니다.

(상식적으로 이해가 되지는 않습니다만, 제가 오늘 경험한 것입니다. -> 아마 딥러닝 모델이 아닌 머신러닝 모델에서만 효과가 있는 것이 아닐런지)

n_jobs =1 일 때, 17m 11s | 17m 21s

n_jobs =2 일 때, 27m 38s | 22m 25s

(혹시나 하여 한번 더 돌렸으나, 결과는 동일했습니다. | n_jobs = -1일때는 메모리가 오버되어 에러 뜨면서 작동 불가합니다)
(n_jobs가 1이 아닐 때 nvidia-smi로 GPU-UTIL을 확인하니 4% 쓰고 있네요. 평소는 20~30% 정도 씁니다.)

네 Keras wrapper를 쓴 점이 좀 맘에 걸리기는 해서 한번 다른 코드로 돌려볼 생각입니다.

그렇다면 결과적으로 문제가 CPU란 말이 될 수도 있겠네요.

컴퓨터 산 업체에 문의하니 "Intel Xeon Silver 4310 CPU @ 2.10GHz"가 "Intel Xeon W-2245 CPU @ 3.90GHz"보다 더 좋은 것이라고 얘기하는데...

여튼 딥러닝 컴퓨터를 샀는데, 사서 이것 저것 해보는데 시간이 다 소요되고 넘 힘드네요...

컴퓨터 부팅도 아예 되지 않아, 문의하니 워크스테이션 컴퓨터라서 안 끄는 것을 가정한 메인보드라고 하여 뒤에 전원버튼 끄고 키는 것으로 작동을 하고 절전모드도 없고... (연구하느라 바쁜데, 이런데 시간 보내니 내가 뭐하는건가 싶기도 하고...)
     
silver 4310 vs w2245  라면
12코어대 8코어에  4310이 동클럭당 성능도 15%는 좋습니다만 대신 올코어 터보 클럭이 W2245가 50%이상 높습니다. 
1코어당 성능이 W2245가 30%이상 높다는 거지요. 멀티작업에서 100%풀로드로 사용해도 silver4310 이 10%정도만 우위입니다.
대부분의 연산작업에서 cpu가 100%풀로드로만 사용되지는 않는걸 감안하면 코어당 성능이 압도적인 W2245가 대부분의 작업에서 더 우위일 겁니다.

silver 4310같은 cpu는 2개를 듀얼로 쓰라고 나온 애인데 그걸 1개로 쓰는건 의미가 없습니다.
Dreaday 2022-08
Silver 4310이 무조건 좋닿 ㅏㄹ 수 없는게요 .

단일 작업이 큰  로직인 경우  클럭이 높아야 빠릅니다 . (Application 기본 구조)
박문형 2022-08
워크스테이션이나 서버는 오랜시간 작업하기 위한 컴퓨터 이지 맨날 껐다켰다한다고 문제가 생기지는 않습니다..

워크스테이션이나 서버는 작업 시간이 하루 이상 몇 달 가는 경우도 있고 년단위가 넘어갈 수도 있습니다..

그래서 잘 끄지 않는 것입니다..

Intel Xeon Silver 4310 CPU @ 2.10GHz  ==> 인텔 스케일러블 제온 3세대 제품입니다..

여러가지 모델이 있고 견적 받아봐야 정확하지만 재일 비싼 것은 CPU만 2천 만원이 넘을 겁니다.. (다나와에는 600만원 언저리 제품만 올려 놓았습니다..)

문제는 사용하시는 모델이 어찌 보면 재일 저렴한 급에 들어가는 모델이라는 것입니다..

다나와에 모델 검색하면 가격을 추측이 가능합니다..

 "Intel Xeon W-2245 CPU @ 3.90GHz  ==> W 가 들어가는 것이라 제온-X인가 몬가 라고 불리는 워크스테이션 전용 CPU 페밀리입니다..

그래서 기본적으로 클럭이 높습니다.. 많이 판매되지는 않고 PC급의 속도와 코어 갯수인데 메모리와 PCIe 슬롯이 많은 그런 워크스테이션이 필요할 때

사용되는 그런 CPU 입니다..

이것도 다나와 검색하면 가격 추측이 가능할 것입니다..


QnA
제목Page 1973/5706
2015-12   1666200   백메가
2014-05   5131420   정은준1
2020-09   4288   원주멋진덩치
2017-07   4288   유정호샤콘느
2017-11   4288   김건우
2018-08   4288   김건우
2014-05   4288   방o효o문
2022-05   4288   제온프로
2016-02   4288   깜박깜박가
2020-11   4288   I적우
2016-09   4288   차평석
2017-02   4288   J2Wn
2020-02   4288   교교교
2015-10   4288   전설속의미…
2020-06   4288   닉네임12345
2016-05   4288   나너우리
2015-03   4289   두리안
2021-01   4289   쌍cpu
2016-02   4289   제행무상
2014-09   4289   미우
2015-02   4289   아름다운노을
2019-09   4289   쌍cpu