본문 바로가기

분류 전체보기62

OpenCV c++)노트북 웹캠을 통한 실시간 출력 cap.open(0) 은 디폴트 카메라, 즉 노트북에서 웹캠을 통해 영상을 입력받으라는 뜻이다. 만약에 외장 카메라를 이용할 경우에는 추가 카메라의 ID를 받아와서 영상을 입력받으면 된다. int deviceID = 0; int apiID = cv::CAP_ANY; cap.open(deviceID + apiID); waitKey( int delay ) 는 delay (ms)만큼 대기하여 키 입력을 받게된다. delay가 0이면 무한히 대기하게 되고, 따라서 출력은 정지 이미지로 나오게 된다. 같은 뜻에서 delay가 큰 값일수록 오랜 시간동안 한 이미지가 출력되게 된다. 2020. 2. 14.
MPS란? GPU를 HPC 연산 등에 활용하게 되면서, 높은 성능 향상을 체감하는 동시에 한정된 자원을 좀 더 효율적으로 사용하는 연구도 진행되고 있다. 이러한 resource under-utilization 연구는 elastic kernel, persistent thread, kernel fusion 과 같이 소프트웨어적인 해결책이 먼저 연구되었지만, 이제는 NVIDIA의 지원 아래 하드웨어적 특성을 고려한 해결방안 들이 제시되고 활용되고 있다. 스트림(stream), 하이퍼 큐(Hyper-Q)를 거쳐서 제시된 MPS의 개념 대하여 간단하게 살펴보려고 한다. MPS( Multi-Process Service)는 이름에서도 알 수 있듯이 다수의 프로세스가 동시에 단일 GPU에서 실행되도록 해주는 런타임 서비스이다. .. 2020. 1. 29.
논문정리)What Every Programmer Should Know About Memory - 1. Introduction 이 내용은 Ulrich Drepper의 2007년 논문 What Every Programmer Should Know About Memory을 섹션별로 간단히 번역하고 정리한 내용입니다. CPU 동작속도나 집적된 코어의 수가 빠르게 발전하면서, 대부분의 프로그램에서 메모리 엑세스가 성능 제약 요인(limiting factor)이 되고 있다. 하드웨어 설계자들이 제안한 메모리 핸들링 기술이나 캐시를 이용한 가속화 기술은 프로그래머의 이해가 바탕이 되어야 최적으로 동작할 수 있다. 이 논문은 현대 상용 하드웨어에서 사용되고 있는 메모리 서브시스템을 설명한다. 특히 CPU 캐시가 어떤 방식으로 동작하고, 이를 활용하기 위해 프로그래머가 이해해야 할 내용들을 담고 있다. 컴퓨터를 구성하는 각 요소들이 개별적으로 .. 2020. 1. 24.
windows환경에서 opencv 소스코드 빌드하여 설치하기 1. 소스코드 다운 ① opencv repository : OpenCV 기본 모듈에 대한 소스 코드 https://github.com/opencv/opencv ② opencv_contrib repository : OpenCV 추가 모듈을 위한 소스 코드 https://github.com/opencv/opencv_contrib 각 리포지토리에서 Release항목의 Source code(zip)을 받아준다. 2. OpenCV 빌드를 위한 폴더 구조 생성 개인적으로는 Windows10에서 직접 빌드할 프로그램들을 위해, C:\extra를 만들어 사용하고 있다. - C:\extra\opencv 를 생성하고, 다운로드한 소스코드 압축파일을 이곳에 압축해제 한다. (2020년 4월 6일 OpenCV 4.3.0 버전.. 2020. 1. 16.