Developers 공간 [Basic]/Embedded(4)
-
[Nvidia] TensorRT 구현하기 (Python)
TensorRT(TRT)는 Nvidia에서 제공되는 Deep Learning Inference를 위한 SDK입니다. PyTorch, Caffe, Tensorflow 등의 Deep Learning Framework를 활용해 학습된 모델을, 여러 플랫폼에 가장 적합한 Kernel을 선택하며, 각 제품 각 아키텍쳐에 맞는 가속을 자동으로 도와 최적의 GPU 자원을 활용해 Performance를 낼 수 있도록 도와주는 엔진이라고 볼 수 있습니다. ** Kernel : GPU에서 병렬 실행되는 명령의 모음 TensorRT를 이용하지 않고, 직접 CUDA 를 활용해 Custom한 로직으로 최적화할 수도 있으나, Nvidia에서 제공하는 API를 활용하는 것이 작업에 유용하기도 합니다. 이번엔 onnx파일을 활용해 ..
2023.12.08 -
[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 -
[Nvidia] Nsight System 셋팅
이번엔 학습한 네트워크가 CPU 및 Nvidia GPU에서 실행될 때 Profiling하기 위한 Tool 중 Nsight System을 소개하려고합니다. Nvidia에서 제공하는 Profiling Tool은 Nsight System, Nsight Compute, Nsight Graphics 그리고 TREx가 있습니다. Nsight System : 시스템 적으로 CPU, GPU간 이동 및 수행시간등을 Profiling하기 위한 툴. 보통 Memory bound ~ Computation Bound간의 최적화를 위해 사용합니다. Nsight Compute : CUDA kernel 내부를 자세하게 Profiling하기 위한 툴. 보통 네트워크 Layer별로 성능을 분석하고, 과하게 사용되고 있는 Memory R..
2022.12.21