본문 바로가기

전체 글

(11)
peoplenet 성능 기록 환경 - nivdia orin nx - jetpack 5.1.2 - cuda 11.4 - tensorrt 8.5.2.2 모델 정보 - encoder : resnet50 - decoder : ddetr - export 형식 : tensorrt 코드 작성 정보 - infer code : python - 처리해준 post process : nms, draw_bbox 성능 - fps : 2.2 ( 문서상 trtexec 로 측정 결과 9.6 fps 라는데.. 뭔가 이상 ) - software sink와 문서의 sink가 맞지 않음 - 모델 추론 속도 : 422ms - 추가 개선 가능 여부 10ms 이내 추후 진행 해야할 것 - gcvit 기반으로 재검토 - cuda c 코드로 infer code 작성 후 fps ..
[ CUDA 기반 GPU 병렬처리 프로그래밍 ] chapter 4-5 스레드 계층, 레이아웃과 인덱싱 2 이 글은 CUDA 기반 GPU 병럴처리 프로그래밍 책의 내용을 바탕으로 정리한 글이다. 저번 글에 이어서 오늘은 인덱싱에 대해 다루고자 한다. 여담이지만, 상용화 단계에 들어가기 위해 성능을 올리는 모델이 있다. 매번 느끼는 거지만, 데모 수준과 상용화 수준은 너무나도 큰 차이가 존재한다. 매우 지루한 과정이긴 하지만, 이번 역시 해내야겠지. 이번 상용화 솔루션이 나오고 나면 다음번에는 아키텍쳐를 조금 바꿔서 기존 상용화 상품의 모델을 바꾸는 일을 할 거다. 이제 슬슬 기초부터 탄탄히 잡고 가야할 시긴데, exponential하게 실력이 늘던 때와는 양상이 조금 달라 지루하기도 하지만 여튼 해야한다. 각설하고 인덱싱에 대해 한번 정리하겠다. 메모리 속 배열의 모습 우선 메모리에 대한 이해가 조금 필요하다..
[ CUDA 기반 GPU 병렬처리 프로그래밍 ] chapter 4-5 스레드 계층, 레이아웃과 인덱싱 1 이 글은 CUDA 기반 GPU 병럴처리 프로그래밍 책의 내용을 바탕으로 정리한 글이다. chapter 4 - 5 에서 핵심은 스레드에 대한 이해다. 기본적이지만 병렬처리를 하려면 반드시 암기하고 있어야 하는 내용이기도 하다. 어느 정도로? 1+1 =? 에 대한 대답정도로. CUDA 스레드 계층 사실 책에서는 쓰레드, 워프, 블록, 그리드로 나누어 설명한다. 그런데 그렇게 설명을 하면 한 가지 헷갈리는 부분이 생기게 된다. 사실 우리가 코딩에 필요한 부분은 고유 스레드 id를 부여하는 것이다. 그래서 내가 생각하는 계층은 아래와 같이 표현하는 것이 좋고, 실행 단위가 Warp 라는 것을 기억하면 된다. Tread -> Block -> Grid 참 간단하다. 이 구조를 설명하면, block은 Thread를 ..