본문 바로가기
반응형

멀티프로세싱3

Pytorch-TensorRT Dataparallel Inference 직접 만들기 준비물 : Anaconda, Pytorch, torch2trt, GPU(본 포스팅에서는 3080*4ea) TL;DR → 필자 깃허브의 torchtrt_dataparallel 준비단계 먼저, 아나콘다를 통해서 아래와 같이 환경 설정을 수행한 후 본 포스팅을 시작하면 되겠다. 최종적인 환경도 깃허브(링크)에 yml 파일로 올려두었으니 그걸로 바로 설치해도 무방하다. conda create -n torch2trt_dataparallel python=3.8 conda activate torch2trt_dataparallel 그 다음 파이토치를 아래와 같이 설치하고(지금은 2.0 이 stable 버전이지만, torch2trt 호환도 그렇고 필자는 쫄보라서 1.11.0 설치한다. 2.0을 시도해 보는것도 권장한다).. 2023. 4. 28.
Python Multiprocessing으로 병렬처리, 비디오 처리로 맛보기 Why Multiprocessing? 이전 포스트(링크)에서도 언급했듯이, Python은 Global Interpreter Lock(GIL) 로 인해서 원칙적으로는 c에서와 같이 fork 등 프로세스 분기가 막혀있다. Multiprocessing을 통해서 이런 한계점을 극복할 수 있는데, 이번 포스트에서는 그 중 Process를 이용한다. SIMD vs Pipeline 내가 사용하는 병렬화 방식은 크게 두가지인데, 이 중 Process를 이용한 파이프라인 기반의 병렬처리는 아래 2번의 설명과 같이 한번에 처리해야하는 데이터의 양보다도 하나의 데이터에 대해 수행해야하는 작업 자체가 복잡하고 여러 단계로 이루어져 있을 때 유용하다. 단순한 작업이 매우 많이 반복되어야한다 --> Pool을 사용하는 SIMD스.. 2023. 2. 20.
Python Multiprocessing으로 병렬처리, 크롤링으로 맛보기 Why Multiprocessing? Python은 Global Interpreter Lock(GIL) 로 인해서 원칙적으로는 c에서와 같이 fork 등 프로세스 분기가 막혀있다. 그럼에도 불구하고 유사한 효과를 제공할 수 있는 여러가지 방법들을 제공하는데, 이 중 multiprocessing, 그 중에서도 Pool을 다뤄본다. 크롤러나 I/O를 포함하는 파이썬 스크립트나 c backend가 없는 프로그램의 경우 단일 스레드만 사용하면 시스템 리소스 사용 효율이 너무 떨어지는 경우가 생기는데, 이 때 이걸 어느정도 해결하는 방법이 multiprocessing이다. SIMD vs Pipeline 공식문서에서 수 많은 용례를 확인할 수 있고, threadpoolexecutor, processpool exec.. 2023. 2. 18.