추론에 GPU 또는 CPU를 사용해야합니까?


13

GPU로 훈련받은 딥 러닝 신경망을 실행하고 있습니다. 이제 추론을 위해 이것을 여러 호스트에 배포하고 싶습니다. 문제는 추론을 위해 GPU 또는 CPU를 사용해야하는지 여부를 결정하는 조건은 무엇입니까?


아래 주석에서 더 자세한 내용을 추가하십시오.

나는 이것에 익숙하지 않으므로 지침에 감사드립니다.

  • 메모리 : GPU는 K80

  • 프레임 워크 : Cuda와 cuDNN

  • 워크로드 당 데이터 크기 : 20G

  • 컴퓨팅 노드 사용 : 스케일 옵션을 고려하고 싶지만 작업 당 하나씩

  • 비용 : 이유가 맞다면 GPU 옵션을 사용할 수 있습니다

  • 배포 : 클라우드가 아닌 자체 호스팅 베어 메탈 서버에서 실행

지금은 응용 프로그램이 정상적으로 실행되기 때문에 CPU에서 실행 중입니다. 그러나 그 이유 외에는 왜 GPU를 고려할 지 확신 할 수 없습니다.


두 가지 방법을 비교할 때 조언을하기 위해 다른 사람들이 귀하의 작업에 대한 세부 사항을 아는 것이 도움이 될 것입니다. 예를 들어, 데이터의 크기, GPU의 메모리 용량, 사용하려는 컴퓨팅 노드 수 및 염두에 둔 맵 축소 프레임 워크 등이 무엇입니까?
동적 스타 더스트

@DynamicStardust ... 그리고 비용. 저렴한 EC2 CPU 노드 또는 비싼 ECW GPU 노드? 이것은 너무 모호한 질문입니다.
Spacedman

답변:


8

@ Dan @SmallChess, 나는 완전히 동의하지 않습니다. 훈련을 위해 많은 병렬화가 GPU에 의해 이용 될 수있어 훈련이 훨씬 빨라집니다. 추론의 경우,이 병렬화는 훨씬 적을 수 있지만 CNN은 여전히 ​​이로부터 이점을 얻음으로써 추론이 더 빨라집니다. 이제 당신은 스스로에게 물어봐야합니다 : 더 빠른 추론이 중요합니까? 이 추가 종속성 (좋은 GPU, 올바른 파일 설치 등)을 원합니까?

속도가 문제가되지 않으면 CPU로 이동하십시오. 그러나 GPU는 내 경험상 GPU를 훨씬 빠르게 만들 수 있습니다.


흥미로운 점, CNN이 추론 중에 병렬 처리로 혜택을 보는 이유는 무엇입니까?
Dan

1
훈련을 통해 병렬 계산이 명백 할 수 있습니다. 여러 개의 입력이 있으며, 각각 독립적으로 피드 포워드되어야합니다. 컨볼 루션의 경우 여러 입력 '패치'에 커널이 곱해집니다. 이것도 병렬로 수행 할 수 있습니다. 이것이 CNN을 강력하게 만드는 이유입니다. 훈련에 필요한 매개 변수가 적을뿐만 아니라 병렬화되어 GPU를 강력하게 만듭니다. 나는 당신이 무엇을하는지 모르지만 이미지의 세분화 (픽셀 단위 분류)를 연구하고 추론을 위해 GPU를 사용할 때 속도가 크게 향상됩니다 (> x10).
Laurens Meeus

@LaurensMeeus 저는이 스펙트럼을 처음 접했고 클라우드 VM의 비용 분석을 수행하고 있습니다. 이미지가 아닌 텍스트 분석 교육 만하는 경우에도 GPU를 교육에 사용합니까?
Squ1rr3lz

2
@ Squ1rr3lz 나는 95 %해야합니다. 모든 형태의 병렬 컴퓨팅은 GPU에 유리해야합니다. 저는이 분야의 전문가는 아니지만 텍스트 분석에 컨볼 루션 레이어 (2D 대신 1D)가 있다는 점을 감안할 때 이는 이미 더 빠를 수있는 한 가지 이유입니다. 가능하다면 GPU 활성화 / 비활성화에 어떤 영향을 미치는지 직접 시험해보십시오.
Laurens Meeus

6

CPU 대신 GPU에서 추론을 실행하면 훈련에서와 동일한 속도로 메모리 오버 헤드가 적습니다.

그러나 말했듯이 응용 프로그램은 CPU에서 정상적으로 실행됩니다. 애플리케이션에서 추론 속도가 병목 지점에 도달하면 GPU로 업그레이드하면 해당 병목 지점이 완화됩니다.


전적으로 동의합니다. 여전히 CPU 포스트가 차지하는 이유를 알지 못합니다.
Laurens Meeus

1
: NVIDIA의 자신의 블로그에서 - 많은 훈련 기간 동안 달성 속도 향상보다 낮은 것 - 지포스 GTX 타이탄 X는 16 코어 인텔 제온 E5 CPU에 비해 5.3 사이 6.7 배 높은 성능을 제공 devblogs.nvidia.com/...
seanhalle

4

딥 러닝에는 최적의 솔루션에 도달하기 위해 대규모 계산이 필요하기 때문에 GPU에만 교육을 사용 합니다. 그러나 배포를 위해 GPU 머신이 필요하지 않습니다 .

Apple의 새로운 iPhone X를 예로 들어 봅시다. 새로운 iPhone X에는 고급 감지를위한 고급 기계 학습 알고리즘이 있습니다. Apple 직원은 교육 및 검증을 위해 여러 머신을 보유해야합니다. 그러나 iPhone X에는 모델을 실행하기 위해 GPU가 필요하지 않습니다.


그 설명에 감사드립니다. 내가 이해하지 못하는 것은 Nvidia가 CPU가 잘 할 수 있다면 추론을위한 최상의 솔루션으로 GPU 사용을 홍보하는 이유입니다. 또한 Google이 CPU로 TPU를 모두 수행하는 경우 추론을 위해 TPU를 추진하는 이유는 무엇입니까? 병렬 컴퓨팅과 관련이 있습니까?
Dan

3
@SmallChess는 iPhone X에 순전히 추론을 위해 고급 TPU와 같은 프로세서가 없었습니까? extremetech.com/mobile/…
Laurens Meeus

3
@SmallChess하지만 왜 안될까요? 어쩌면 나는 완전히 이해하지 못할 수도 있습니다. 여전히 속도가 향상되지 않습니까?
Laurens Meeus

2
솔직히 NVidia에는 ​​환상적인 마케팅 부서가 있으며 추론을 위해 NVidia GPU를 사용하여 홍보하는 것이 가장 중요합니다. 그것은 당신의 것이 아니라 그들의 최선의 이익입니다.
seanhalle

1
NVidia의 블로그에서 : 추론을 수행 할 때 NVIDIA Tegra X1 대 i7 6700K CPU의 경우 "258 대 242 개 이미지 / 초": devblogs.nvidia.com/…
seanhalle
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.