gunicorn 2

nginx와 gunicorn을 활용한 multi gpu 환경에서의 딥러닝 서비스

https://seokhyun2.tistory.com/44 딥러닝 모델 서빙과 병렬처리 저도 회사에서 딥러닝 모델 서빙을 하고 있는데, 서빙을 하다보니까 제일 처음에 부딪히는 문제가 병렬처리였습니다. 그래서 이번 포스팅에서는 딥러닝 모델을 서빙할 때 어떻게 병렬처리를 해줘야 할 지 이야기를.. seokhyun2.tistory.com 위의 글에서, 파이썬에서의 병렬처리와 딥러닝 모델 서빙을 하는 방법에 대해서 다뤘습니다. flask와 gunicorn을 활용하면 쉽게 멀티프로세싱을 활용할 수 있다고 소개해드렸는데, 이번에는 nginx까지 같이 활용하여 multi gpu 환경에서 딥러닝 모델을 서비스하는 방법을 소개해드리겠습니다. nginx는 비동기 이벤트 기반의 웹서버로 reverse proxy 기능을 제공..

딥러닝 모델 서빙과 병렬처리

저도 회사에서 딥러닝 모델 서빙을 하고 있는데, 서빙을 하다보니까 제일 처음에 부딪히는 문제가 병렬처리였습니다. 그래서 이번 포스팅에서는 딥러닝 모델을 서빙할 때 어떻게 병렬처리를 해줘야 할 지 이야기를 해보려고 합니다. 먼저 저희는 쓰레드와 프로세스라는 개념을 살짝 정리하고 가야해요. 먼저 프로세스는 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램이라고 정의되고 쓰레드는 프로세스 내에서 실행되는 흐름의 단위로 정의가 됩니다. 그래서 쓰레드는 프로세스에 포함이 되게 되죠. 리눅스에서 top 명령어를 실행하면, 현재 실행 중인 프로세스의 리스트를 볼 수 있어요. 만약 해당 프로세스가 여러개의 쓰레드를 사용하고 있으면, cpu가 100%을 초과하는 걸 보실 수 있을 거에요. 그래서 병렬처리는 여러 쓰레드..