180 likes | 734 Views
Image Processing with CUDA - 중간 발표 -. J 조 고준호 김학봉 정보영. 목차. 자세한 스펙 소개 현재 진행중인 작업 ( 진행한 작업 ) 개발 환경 구축 CUDA study 앞으로 진행 예정 작업 일정 및 평가 기준. 스펙 개요. 이미지 프로세싱 성능 개선 공통으로 쓰이는 부분에 대하여 개선 cf ) 다양한 모듈 ( 함수 단위 ) 의 전체 개선 아님 어느 정도 선까지 가능한지 체크 최종 목표는 모듈화 하여 회사에 제공
E N D
Image Processing with CUDA- 중간 발표 - J조 고준호 김학봉 정보영
목차 • 자세한 스펙 소개 • 현재 진행중인 작업(진행한 작업) • 개발 환경 구축 • CUDA study • 앞으로 진행 예정 작업 • 일정 및 평가 기준
스펙 개요 • 이미지 프로세싱 성능 개선 • 공통으로 쓰이는 부분에 대하여 개선 cf) 다양한 모듈(함수 단위)의 전체 개선 아님 • 어느 정도 선까지 가능한지 체크 • 최종 목표는 모듈화 하여 회사에 제공 추가) 자주 쓰이는 모듈 몇 가지 에 대해서 개선 하여 제공
스펙소개(1/3) 1.음영 제거
스펙소개(2/3) 2. 도형 그리기
스펙소개(3/3) 3. Edge Detection Algorithm • 중간 과정의 미분 값을 구하는 것이 목표 • 위 과정이 완료 되면 직접 구현 시도 • (추가사항) Canny Edge Detector • (추가사항) Sobel Edge Detector
진행 완료 작업(1/2) • 10월 19일에 스펙 결정(시간 부족) • 개발 환경 구축 • 주어진 HALCON 라이브러리를 이용 • 쿠다 설치 및 테스트 완료 • SVN 설치 및 팀원간 의사소통 환경 설정
진행 완료 작업(2/2) • CUDA code와 application 코드의 분리 • Module화 가능성 제고 DLL CALL • MFC code section • HALCON library section • ☞ host code • image processing • dynamic linked library • ☞ device code Visual Studio Complier CUDA Compiler (nvcc)
진행중인 작업(1/2) • 3가지 문제에 대하여 적용 방안 연구중 간단한 실험 결과 : CPU가 더 빠른 현상 발견 (다음 페이지)
CPU가 더 빠르다? • 이미지 역상 처리 테스트 (x축:횟수, y축:시간)
진행중인 작업(2/2) • CUDA basic study • Hierarchy에 대한 이해 • device와 host간의 교환 • emulation 모드 디버깅 • nvcc컴파일러 사용법 • 기본 reference • 예제를 통한 이해!!
진행 예정 작업 – 큰 그림 • 프로젝트 진행방식 : 2 way • problem solving with ex. • environment setting • convert to parallel way • find more efficient thing CUDA study & exercise Design algorithm • Optimization considering coalescing, bank conflict, etc.. • Make DLL and show UI with MFC dialog or something • Provide our result with company and get feedback Merge and Execute
진행 예정 작업 : CUDA study • CUDA의 다양한 이슈들에 대해 공부 • Host-Device data transfer • Shared memory bank conflict • Coalescing • Partition camping • 각 문제에 적용하도록 시도 • 여러 개의 이미지에 대하여 동시 진행할 경우 • 이미지의 특정 부분별로 처리를 해야 할 경우 • sequential한 부분을 parallel하게 하는 경우
진행 예정 작업 :문제의 병렬화 • 주의 : 병렬화한다고 끝나는 것이 아님 • 항상 및 작업 단위의 최적화 생각 • 물리적 메모리 구조 • 논리적 메모리 구조 • 항상 CPU와 고려/비교 • context switching 속도 • cpu cache의 위력 (locality) • DLL call over-head
최종 작업 : Merge 병렬화한 알고리즘을 CUDA에적용 최적화 후 회사로 보내서 피드백 받음 추가 수정 후 프로젝트 완료