본문 바로가기

분류 전체보기

(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를 ..
[ CUDA 기반 GPU 병렬처리 프로그래밍 ] chapter 2-3 CUDA 프로그램 구조와 흐름 이 글은 CUDA 기반 GPU 병럴처리 프로그래밍 책의 내용을 바탕으로 정리한 글이다. chapter 2 - 3에서 핵심은 프로그램 구조와 흐름이다. 시간을 쪼개서 쓰는 글이다보니, 뜨문 뜨문 올리긴하지만, 끝까지 다 정리는 할 예정이다. 물론 기본적인 문법이나, 예제는 다루지 않을 생각이다. CUDA 프로그램 구조 및 흐름 CUDA 프로그램 구조 ( Host vs Device ) 매우 기초적이지만 중요한 부분이다. cuda 프로그램은 host 코드와 device 코드로 나누어 진다. host는 cpu를 사용하고, system memory를 사용하고, device는 CUDA core를 사용하고 Device memory( video memory 등 여러 명칭이 있음 )를 사용한다. 이 그림을 반드시 기억하..
[ CUDA 기반 GPU 병렬처리 프로그래밍 ] chapter 1 GPGPU 및 병렬처리 개요 이 글은 CUDA 기반 GPU 병럴처리 프로그래밍 책의 내용을 바탕으로 정리한 글이다. 글을 정리하기에 앞서, CUDA_C 와 관련하여 기초적인 문법이나, 활용 등은 할 수 있다. 그럼에도 하나의 책을 잡고 다시 정리하는 데는, 현재 내 수준이 기초부터 탄탄하게 잡아야할 필요성을 느꼈기 때문이다. 설명이라기 보다는 내가 이해한 바를 적고자한다. 병렬 처리의 개념 병렬 처리는 영어로 parallel processing을 말합니다. 문제를 어떻게 해결한다는 말이냐 하면 하나의 문제를 여러 개로 나누고 그 각각의 문제를 하나의 연산 유닛이 감당해서 처리한다는 말이다. 간단한 예시를 들어보면, 예시) 1-15 까지 더하는 문제 가정 - 내 하드웨어는 5개의 연산 유닛을 가지고 있음 1. 15 개의 숫자를 5개의..
[ ai 기초 ] AI의 정체는? ( feat. 수학이 필요한 이유, 확률과 통계, 선형 대수 ) 서서히 느끼는 것이지만, ai에서 수학은 선택이 아닌 필수다. 특히 개발자라면 필자는 수학이 반드시 필요하다고 생각하는 데 오늘은 그 이유에 대해 설명해볼까 한다 AI의 정체 딥러닝에서 일어나는 일에 대해 쉽게 생각해 보면, input 값을 주면 output이 나온다. 너무나 당연한가? 좀 더 풀어보자. 그 input이 image가 들어가면 원하는 task에 대한 output이 나온다. 그래 지금 이야기는 사용자의 입장에서 바라본 딥러닝이다. 여기서 조금만 더 생각해보자. 어떻게, 내가 임의의 input을 넣었는 데, 내가 원하는 output이 나오는 것일까? 신기하다. 더 잘 이해하기 위해, 사람의 입장에서 한번 생각해보자. 우리는 고양이를 보고 어떻게 고양이라고 인식하고, 강아지를 보고 어떻게 강아지..
3년 차에 접어들면서 3년차에 들어서면서 드는 생각 MOMO, 글쓴이는 3년 차, embedded AI model 개발자다. 이제 이 분야가 어떻게 돌아가는지가 아주 조금은 보인다. 우선 간략하게 정리해보자면, 돈 벌 방법이 안보인다. 즉, 생성형 AI가 아닌 edge device에서 무엇인가를 하기 위해서 방향성이라는 것을 잡아야 하는데, 그 방향성을 잡기가 쉽지 않다. 왜 방향성을 잡기가 쉽지 않냐하면 기술만으로는 가치를 창출하기 쉽지 않기 때문이다. 좀 더 풀어서 설명해 보자면 이런 거다. computer vision ai를 적용한다는 것은 카메라에 sensing 기술이 확장됨 그 이상도 그 이하도 아니다. 그 센싱된 정보를 어떻게 활용할 것인가에 대한 답이 나와야 하는 데, 그게 없기 때문에 방향성을 잡기가 쉽지 않다..
embedded AI model 개발자에 대한 개인적 생각 embedded AI model 개발자 2년차다. 요즘 들어 고민이 많다. 그 고민들을 하나씩 적어 보고자 한다. 누가 읽으란 것도 아니고 개인적인 생각일 뿐이다. 장점은? 많은 edge device를 다룰 수 있다. 가장 일반적인 Nvidia 보드들부터, Ti, Qualcom, Amballera 등 다양한 보드를 다룰 수 있다는 게 가장 큰 장점 아닐까? 보드들 가격은 생각 외로 비싸다. Amballera 보드 같은 경우는 가격을 떠나 개인이 다루지도 못한다. 그리고 AI 연산자들에 대해 깊은 이해를 할 수 있다는 정도가 장점인 것 같다. 모델을 양자화, 경량화, 최적화 하려면 진짜 별짓을 다해야하니까.. 그리고 잘은 모르겠다만 앞으로 더 많은 분야에 쓰이게 될 거다. 가전에는 모두 ai 모델이 가능한..
[ computer vision AI ] focal loss 파헤치기 2 ( feat. Balanced Cross Entropy , focal loss ) 논문 원문 : https://arxiv.org/abs/1708.02002 저번 글에 이어 local loss에 대해 시작해보려합니다. 지난번 글은 아래 글을 참고해주세요 2023.01.04 - [visioin_ai이론] - [ computer vision AI ] focal loss 파헤치기 1 ( feat. loss function , information, entropy, cross entropy ) Balanced Cross Entropy Balanced Cross Entropy 식은 아래와 같아요 해당 식은 논문 원문에서 가져온 식이랍니다. 잠깐 복습하고 넘어갈까요? p_t는 어떤 사건이 일어날 확률이었고, -log(p_t) 는 정보량을 의미했죠. 그런데 저번에 다뤘던 cross entropy와는..
[ computer vision AI ] focal loss 파헤치기 1 ( feat. loss function , information, entropy, cross entropy ) 논문 원문 : https://arxiv.org/abs/1708.02002 Loss function 에 대해 한글로 하면 손실함수가 되겠네요. 손실 함수는 무엇인가 와닿지 않아요. 도대체 loss function의 역할이 무엇일까요? loss function( 손실 함수 )은 우리가 만든 분류기 ( classifier )에 대한 평가 지표라고 생각하시면 됩니다. 분류기에 대한 내용은 후에 다루도록 할게요. 오늘 주는 그게 아니니까요. 즉 평가 지표는 평가 지푠데, 얼마나 구린가에 대한 평가 지표입니다. loss가 크다면, 분류기는 해당 식이 정의한 정의 내에서는 분류를 잘하지 못한다라고 생각할 수 있는거죠. 그런데 loss function은 좀더 수학적으로 설명하면 무엇일까요? 실제 값과 예측 값의 차이를..