20150427 image a 임베디드 시스템 기반 이기종 멀티코어 영상처리 플랫폼...

31
이이이 이이이이 이이이이 이이이 이이 이이이이 이이이이이이 2015. 4. 27 imageA Embedded Software Developer Center

Upload: jeongpyo-kong

Post on 03-Mar-2017

60 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: 20150427 image a   임베디드 시스템 기반 이기종 멀티코어 영상처리 플랫폼 구축 (final)

이기종 멀티코어 임베디드 시스템 기반영상처리 애플리케이션

2015. 4. 27imageA

Embedded Software Developer Center

Page 2: 20150427 image a   임베디드 시스템 기반 이기종 멀티코어 영상처리 플랫폼 구축 (final)

Agenda1. 개요2. 이기종 멀티코어 프레임워크3. 수행 내용4. 향후 과제

imageA 2

Page 3: 20150427 image a   임베디드 시스템 기반 이기종 멀티코어 영상처리 플랫폼 구축 (final)

1. 개요imageA 3

Page 4: 20150427 image a   임베디드 시스템 기반 이기종 멀티코어 영상처리 플랫폼 구축 (final)

프로젝트 정보• 프로젝트 명 : 임베디드 시스템 기반 이기종 멀티코어

영상처리 플랫폼 구축• 분야 : 이기종 멀티코어 /GPU/ 영상처리• 팀원– 공정표 : 시스템 , 알고리즘 설계 및 구현– 송승화 : 알고리즘 설계 및 구현– 정현석 : 시스템 및 애플리케이션 설계 및 구현

imageA 4

Page 5: 20150427 image a   임베디드 시스템 기반 이기종 멀티코어 영상처리 플랫폼 구축 (final)

프로젝트 목표• GPU 를 연산장치로 사용할 수 있는 범용

임베디드 시스템의

imageA 5

Page 6: 20150427 image a   임베디드 시스템 기반 이기종 멀티코어 영상처리 플랫폼 구축 (final)

프로젝트 목표• 이기종 멀티코어 영상처리 플랫폼을 바탕으로

imageA 6

Page 7: 20150427 image a   임베디드 시스템 기반 이기종 멀티코어 영상처리 플랫폼 구축 (final)

프로젝트 목표• 데모 애플리케이션 개발을 통해

imageA 7

Page 8: 20150427 image a   임베디드 시스템 기반 이기종 멀티코어 영상처리 플랫폼 구축 (final)

프로젝트 목표• 영상 분석 , 스트리밍 , 모바일 등으로의 응용 기반 확보

imageA 8

Page 9: 20150427 image a   임베디드 시스템 기반 이기종 멀티코어 영상처리 플랫폼 구축 (final)

2. 이기종 멀티코어 프레임워크imageA 9

Page 10: 20150427 image a   임베디드 시스템 기반 이기종 멀티코어 영상처리 플랫폼 구축 (final)

멀티코어 프로세서 발전과정

imageA 10

1die 1core x N

SMP

1die N core

1die SMP +ASMP

SingleCore

AMP

GPU

Page 11: 20150427 image a   임베디드 시스템 기반 이기종 멀티코어 영상처리 플랫폼 구축 (final)

GPGPU 의 등장과 병렬 프로그래밍• 연산속도가 높은 GPU 를 다양하게 ( 범용적으로 )

활용하려는 요구에 따라 GPGPU(General Purpose Graphic Processing Unit) 등장

• GPGPU 를 활용한 병렬 처리는 영상 뿐 아니라 방대한 양의 데이터에 동일한 연산을 필요로 하는 모든 분야에서 유용

imageA 11

Page 12: 20150427 image a   임베디드 시스템 기반 이기종 멀티코어 영상처리 플랫폼 구축 (final)

OpenCL 과 OpenCL C 언어의 등장• Apple 의 SW 아키텍트 Aaftab Munshi 가 OpenCL

프레임워크와 OpenCL C 언어를 제안 • OpenCL C 언어는 OpenCL 의 병렬 프로그래밍 언어• OpenCL 의 멀티플랫폼 지원 : GPGPU 확장만을 목표로

하지 않고 , 명시된 표준을 따르고 구동 가능한 드라이버를 지원하는 모든 종류의 프로세서에서 활용이 가능하도록 설계

imageA 12

Page 13: 20150427 image a   임베디드 시스템 기반 이기종 멀티코어 영상처리 플랫폼 구축 (final)

OpenCL 플랫폼 모델

imageA 13

호스트(CPU core)

디바이스(CPU core)

디바이스(GPU)

디바이스계산 유닛계산 유닛계산 유닛계산 유닛

계산 유닛(Compute Unit)

ProcessingElement

Legacy program이여기서 수행된다 .int main(){ ...}

OpenCL C program이여기서 수행된다__kernel__ void func(){ ...}

단 하나의 호스트와 한 개 이상의 디바이스로 구성

Page 14: 20150427 image a   임베디드 시스템 기반 이기종 멀티코어 영상처리 플랫폼 구축 (final)

OpenCL 아키텍처

imageA 14

Intel CPU디바이스 Nvidia GPU디바이스하드웨어계층 AMD GPU디바이스

디바이스드라이버계층Intel CPU디바이스 드라이버

(Opencl 1.2)

Nvidia GPU디바이스 드라이버(OpenCL 1.2)

AMD GPU디바이스 드라이버(OpenCL 2.0)

OpenCL계층Intel OpenCL Plat-

form(OpenCL 1.2)

NvidiaPlatform

(OpenCL 1.2)

AMDPlatform

(OpenCL 2.0)

표준 OpenCL Interface

IntelExtension

NvidiaExtension

AMDExtension

애플리케이션계층 OpenCL Application

Page 15: 20150427 image a   임베디드 시스템 기반 이기종 멀티코어 영상처리 플랫폼 구축 (final)

OpenCV ocl

imageA 15

하드웨어OpenCL 플랫폼

cv::ocl::

OpenCV 응용프로그램OpenCV API

core highgui imgproc

기존 전통적인 모듈 cv::

ML objdetect

커널 코드 (*.cl)

ocl_utils ocl_wrappercl_runtime

OCL interface cl_context

Page 16: 20150427 image a   임베디드 시스템 기반 이기종 멀티코어 영상처리 플랫폼 구축 (final)

3. 수행 내용imageA 16

Page 17: 20150427 image a   임베디드 시스템 기반 이기종 멀티코어 영상처리 플랫폼 구축 (final)

구분• Open Source Hardware• OpenCV ocl PC Application• OpenCV ocl Embedded Application• GUI Application

imageA 17

Page 18: 20150427 image a   임베디드 시스템 기반 이기종 멀티코어 영상처리 플랫폼 구축 (final)

Open Source Hardware• 개발 보드 : Hardkernel Odroid XU3

– Samsung Exynos5422 Cortex™-A15 2.0Ghz quad core and Cortex™-A7 quad core CPUs

– Mali-T628 MP6(OpenGL ES 3.0/2.0/1.1 and OpenCL 1.1 Full profile)

– Integrated power consumption monitoring tool

• OS : XUbuntu 14.04

imageA 18

Page 19: 20150427 image a   임베디드 시스템 기반 이기종 멀티코어 영상처리 플랫폼 구축 (final)

Platform

imageA 19

Page 20: 20150427 image a   임베디드 시스템 기반 이기종 멀티코어 영상처리 플랫폼 구축 (final)

OpenCV ocl PC Application• 얼굴 인식 알고리즘을 OpenCL 을 이용하여 GPU 에서 동작• 4 개의 동영상을 멀티 스레드로 동시에 얼굴 인식

알고리즘으로 처리하는 어플리케이션 샘플• CPU 로만 연산하는 경우와 GPU 로 오프로딩하여 연산하는

경우 자원 사용 확인

imageA 20

Page 21: 20150427 image a   임베디드 시스템 기반 이기종 멀티코어 영상처리 플랫폼 구축 (final)

OpenCV ocl PC Application

imageA 21

• CPU only : CPU usage 97%

Page 22: 20150427 image a   임베디드 시스템 기반 이기종 멀티코어 영상처리 플랫폼 구축 (final)

OpenCV ocl PC Application

imageA 22

• CPU+GPU : CPU usage 70% 소모전력↓

Page 23: 20150427 image a   임베디드 시스템 기반 이기종 멀티코어 영상처리 플랫폼 구축 (final)

OpenCV oclEmbedded Application

imageA 23

• CLAHE + Gaussian Blur

Page 24: 20150427 image a   임베디드 시스템 기반 이기종 멀티코어 영상처리 플랫폼 구축 (final)

OpenCV oclEmbedded Application

imageA 24

• CPU only : Total (A15+A7+GPU+MEM) 2.809W

Page 25: 20150427 image a   임베디드 시스템 기반 이기종 멀티코어 영상처리 플랫폼 구축 (final)

OpenCV oclEmbedded Application

imageA 25

• CPU + GPU : Total 2.463W

Page 26: 20150427 image a   임베디드 시스템 기반 이기종 멀티코어 영상처리 플랫폼 구축 (final)

OpenCV oclBenchmark Application

• GPU 개선 확인 가능한 벤치마크 데이터 표시

imageA 26

Page 27: 20150427 image a   임베디드 시스템 기반 이기종 멀티코어 영상처리 플랫폼 구축 (final)

4. 향후 과제imageA 27

Page 28: 20150427 image a   임베디드 시스템 기반 이기종 멀티코어 영상처리 플랫폼 구축 (final)

향후 과제1. ARM + Linux 기반 OpenCV ocl 이슈

1. ARM + Linux 기반에서 동작하도록 fix (OpenCV community 적극 참여 )

2. 또는 ocl 대신 OpenCL 코드를 OpenCV 에서 직접 사용하는 방법 검토 (OpenCV 3.0 custom OpenCL kernel 작성 )

2. Demo Algorithm : 1 번 결과에 따라 구현3. GUI Application : UI 및 UX 개선 , 알고리즘

프로파일링imageA 28

Page 29: 20150427 image a   임베디드 시스템 기반 이기종 멀티코어 영상처리 플랫폼 구축 (final)

Demo Algorithm• Scene Change Detection

– 휴대폰 촬영 영상의 공유시 효율적 검색 및 내용 전달 (SNS 등 ) 을 위해 , GPU 를 활용 thumbnail 자동 생성

– 기존 scene change detection 알고리즘은 복잡한 방법을 많이 제시하고 있는데 일반 사용자 촬영 영상에는 적합하지 않음

imageA 29

Page 30: 20150427 image a   임베디드 시스템 기반 이기종 멀티코어 영상처리 플랫폼 구축 (final)

Demo Algorithm• Scene Change Detection

– GPU 를 활용할 수 있는알고리즘 사용

imageA 30

Page 31: 20150427 image a   임베디드 시스템 기반 이기종 멀티코어 영상처리 플랫폼 구축 (final)

imageA 31

Q&A