nVidia(2)
-
[Nvidia] OpenCL 기초 문법 및 병렬처리 관련 정리
딥러닝 등 다양한 Computationally Expensive한 어플리케이션의 등장으로 병렬처리에 대한 요구가 많이 늘어났습니다. 우리는 자동화된 병렬화를 지원하는 다양한 프레임워크 및 라이브러리(deepspeed, pytorch DP & DDP, AWS SMDDP horovod, tensorRT 등)을 통해 병렬처리를 하고 있지만, 근본적으로 병렬화에 필요한 특징이나 어떤 것을 유의 깊게 보아야 할지에 대한 이해를 바탕으로 사용한다면 더욱 최적화된 환경에서 작업이 가능할 것 같기도 합니다. 또한 때로는 Customized된 병렬처리를 위해 직접 내가 만든 로직을 병렬처리를 통해 가속화하고 싶은 경우도 있습니다. 보통 이럴 때 Nvidia에서 제공하는 Toolkit인 CUDA를 활용하는 경우가 대부분이..
2022.12.31 -
[Nvidia] TensorRT 구현하기 (C++)
TensorRT(TRT)는 Nvidia에서 제공되는 Deep Learning Inference를 위한 SDK입니다.PyTorch, Caffe, Tensorflow 등의 Deep Learning Framework를 활용해 학습된 모델을, 여러 플랫폼에 가장 적합한 Kernel을 선택하며, 각 제품 각 아키텍쳐에 맞는 가속을 자동으로 도와 최적의 GPU 자원을 활용해 Performance를 낼 수 있도록 도와주는 엔진이라고 볼 수 있습니다.** Kernel : GPU에서 병렬 실행되는 명령의 모음 TensorRT를 이용하지 않고, 직접 CUDA 를 활용해 Custom한 로직으로 최적화할 수도 있으나, Nvidia에서 제공하는 API를 활용하는 것이 작업에 유용하기도 합니다. 이번엔 onnx파일을 활용해 T..
2022.12.21