반응형

AI Development 68

[GPU] NVIDIA GPU 적정 온도 확인하기

NVIDIA 계열의 GPU의 온도를 확인하는 명령어는 다음과 같다. $ nvidia-smi -q -d temperature 아래는 현재 GPU의 Temperature 상태들을 나타낸다. ==============NVSMI LOG============== Timestamp : Thu Nov 18 15:52:50 2021 Driver Version : 460.73.01 CUDA Version : 11.2 Attached GPUs : 4 GPU 00000000:1A:00.0 Temperature GPU Current Temp : 64 C GPU Shutdown Temp : 90 C GPU Slowdown Temp : 87 C GPU Max Operating Temp : 83 C GPU Target Temper..

[TensorRT] InstanceNormalization_TRT Plugin

아래와 같이 Engine Serialization 과정에서 InstanceNormalization_TRT 플러그인을 못찾겠다는 에러가 발생했다. Instance Normalization Paper : https://arxiv.org/pdf/1607.08022.pdf [TensorRT] ERROR: INVALID_ARGUMENT: getPluginCreator could not find plugin InstanceNormalization_TRT version 1 [TensorRT] ERROR: safeDeserializationUtils.cpp (322) - Serialization Error in load: 0 (Cannot deserialize plugin since corresponding IPlug..

[TensorRT] QuickStartGuide

TensorRT 를 처음 접하는 사람들이 보기 딱 좋은 레퍼런스 발견. 계속 업데이트 되고 있는 것 같아서 좋다. 참고자료 1은 ipynb 로 되어있어서 쉽게 따라 해 볼 수 있으며, 참고자료 2는 TensorRT Runtime API 를 사용하는 방법에 대해 나와있다. 둘다 내용은 비슷하다. (profiling 하는 방법도 자세히 알려줬으면 좋겠다...) 참고자료 1. https://github.com/NVIDIA/TensorRT/tree/master/quickstart GitHub - NVIDIA/TensorRT: TensorRT is a C++ library for high performance inference on NVIDIA GPUs and deep learning accelerators Te..

AI Development/TensorRT 2021.08.31 (6)

[ONNX] ONNX Simplifier 사용하여 모델 간소화 하기

ONNX Simplifier 는 복잡한 ONNX node 들 즉 ONNX 모델을 단순하게 만들어주는 툴이다. 전체 계산 그래프(the whole computation graph)를 추론한 다음 중복 연산자(the redundant operators)를 상수 출력(their constant outputs)으로 대체한다. 아래 그림의 왼쪽 그림은 어떤 모델의 ONNX 원본 모델이고, 오른쪽 그림은 onnx simplifier를 거친 ONNX 모델이다. (잘 보이진 않지만... 자세히 들여다보면 간소화 된 모습을 볼 수 있었다... 모델 크기도 줄어든다.) 아래 그림을 보면 더 명확히 와닿는다. 이런 느낌이다. 불필요한 Gather 및 Unsqueeze 연산자 등의 조합을 Reshape 으로 대체한다. 원래 ..

AI Development/ONNX 2021.07.26 (6)

[ONNX] Pytorch 모델을 ONNX 모델로 변환 할 때 dynamic_axes 지정하는 방법

LSTM 같은 모델을 ONNX 모델로 변환할 경우, 이 모델은 입력 값을 동적으로 설정할 수 도 있기 때문에 ONNX 모델로 export 시 dynamic_axes 를 설정하여 동적인 입력 값을 갖는 ONNX 모델로 변환할 수 있다. torch 공식 문서에 나와있는 내용은 다음과 같다. dynamic_axes (dict or dict, default empty dict) – a dictionary to specify dynamic axes of input/output, such that: - KEY: input and/or output names - VALUE: index of dynamic axes for given key and potentially the name to be used for expo..

AI Development/ONNX 2021.06.29

[Pytorch] 이미지 데이터세트에 대한 평균(mean)과 표준편차(std) 구하기

이미지 데이터는 촬영된 환경에 따라 명도나 채도 등이 서로 모두 다르기 때문에 영상 기반 딥러닝 모델을 학습시키기 전에 모든 이미지들을 동일한 환경으로 맞춰주는 작업이 필요하다. 즉, 전체 이미지에 대한 화소 값의 평균(mean)과, 표준편차(standard deviation)를 구하여 이 값들을 영상에 일괄적으로 적용하는 과정이 필요하다. 보통 Imagenet 데이터 세트에서 계산된 평균과 표준을 사용하게 된다. 이는 수백만 개의 이미지를 기반으로 계산된다. 자신의 데이터 세트에서 처음부터 학습하려는 경우 평균과 표준을 계산할 수 있지만, 그렇지 않은 경우(대부분) 자체 평균 및 표준이있는 Imagenet 으로 학습된 pre-trained model 을 사용하는 것이 좋다. 파이토치 데이터 세트에서 평..

[TensorRT] trtexec 사용하기

1. TensorRT 를 설치 2020.04.21 - [AI Development/TensorRT] - [TensorRT] NVIDIA TensorRT 개념, 설치방법, 사용하기 2. /usr/src/tensorrt/samples 에서 make 하여 빌드하기 3. /usr/src/tensorrt/bin 에 실행파일 생성됨 4. /usr/src/tensorrt/bin/trtexec 실행 $ /usr/src/tensorrt/bin/trtexec --help 아래와 같이 사용할 수 있는 명령어 확인 $ ./trtexec --help 모델 변환 시 saveEngine 을 지정하여 모델을 저장 가능 모델 실행 시 loadEngine 을 지정하여 모델 테스트 가능 (속도 테스트) INT8 Calibration 캐시..

AI Development/TensorRT 2021.03.30 (2)

[ONNX] ONNX 배치 사이즈 변경하는 방법 + 삽질

onnx batch size change 라는 키워드를 통해 나온 검색 결과에 의하면, 다음 코드를 사용하면 기존에 만들어 두었던 onnx 파일의 배치 사이즈를 변경할 수 있다고 하는데, 아래 코드는 입력 사이즈만 변경하는 코드이다. 절대 아래와 같이 사용하면 안된다. import onnx def change_input_dim(model): # Use some symbolic name not used for any other dimension sym_batch_dim = "N" # or an actal value actual_batch_dim = 4 # The following code changes the first dimension of every input to be batch-dim # Modif..

AI Development/ONNX 2021.02.02 (3)

[DeepStream] ubuntu에서 nvidia docker + ngc 설치하기

본 포스팅은 아래 링크를 실행하기 위한 준비과정이다. 참고로 아래 링크는 NVIDIA DeepStream을 이용하여 RetinaNet 모델을 학습시키는 과정에 관한 것이다. developer.nvidia.com/blog/real-time-redaction-app-nvidia-deepstream-part-1-training/ Building a Real-time Redaction App Using NVIDIA DeepStream, Part 1: Training | NVIDIA Developer Blog Some of the biggest challenges in deploying an AI-based application are the accuracy of the model and being able to..

[DeepStream] 딥스트림 개요 및 참고자료들

DeepStream 이란 ? 딥 러닝을 활용한 비디오 분석 응용 프로그램의 고 성능 개발을 손쉽게 할 수 있도록 만든 NVIDIA의 라이브러리이다. 높은 수준의 C++ API와 고성능 런타임 (High Performance Runtime)을 통해 GPU 가속 Transcoding 과 딥러링 추론 기능을 빠르게 통합하여 보다 반응이 빠른 AI 기반 서비스를 제공할 수 있도록 한다. 이는 Intelligent Video Analytics의 보다 손 쉬운 개발을 지원하며 개발자들은 딥스트림을 사용해 실시간으로 동영상 프레임을 처리하고, 이해하며 분류 작업을 진행 할 수 있다. 또한 매우 높은 수준으로 요구되는 처리량(Throughput) 및 반응 시간(Latency)에 대한 요건을 충족 시킬 수 있다. 이러한..

AI Development/DeepStream 2021.01.24 (2)

[CUDA] Supported CUDA level of GPU and card

보다 더 자세한 사항은 맨 아래 링크를 참고하길 바란다. CUDA SDK 1.0 support for compute capability 1.0 – 1.1 (Tesla)[25] CUDA SDK 1.1 support for compute capability 1.0 – 1.1+x (Tesla) CUDA SDK 2.0 support for compute capability 1.0 – 1.1+x (Tesla) CUDA SDK 2.1 – 2.3.1 support for compute capability 1.0 – 1.3 (Tesla)[26][27][28][29] CUDA SDK 3.0 – 3.1 support for compute capability 1.0 – 2.0 (Tesla, Fermi)[30][31] CUD..

[TensorRT] Implicit vs Explicit

Pytorch 및 TensorFlow 등으로 생성된 deploy 모델의 배치 사이즈를 명시적으로 설정하여 TensorRT 모델을 변환 할 때 TensorRT 7 버전 부터 도입된 빌드 설정 값들 즉, Optimization Profiles 기능을 이용하여 모델을 변환하면 더욱 더 최적화 되어 변환 된다. * Optimization Profiles : docs.nvidia.com/deeplearning/tensorrt/developer-guide/index.html#opt_profiles Developer Guide :: NVIDIA Deep Learning TensorRT Documentation To optimize your model for inference, TensorRT takes your ne..

AI Development/TensorRT 2020.10.21 (3)
728x90
반응형