윤석준 2015 cuda_contest

12
CUDA활용한 Sonar Simulator에서의 원통형 배열 소나의 Stave 상태 변경에 따른 빔패턴 생성시간 실시간 반영 윤석준 / ㈜웨어밸리 / [email protected]

Upload: seok-joon-yun

Post on 16-Jul-2015

92 views

Category:

Software


1 download

TRANSCRIPT

CUDA를 활용한 Sonar Simulator에서의 원통형 배열 소나의 Stave 상태 변경에 따른 빔패턴 생성시간 실시간 반영

윤석준 / ㈜웨어밸리 / [email protected]

Abstract

• CUDA의 GPGPU연산을 이용하여 원통형 배열 소나

(Cylindrical Array Sonar) Simulator 주요기능중 하나인

빔패턴 (Beam Pattern) 생성 및 Stave 상태 변경에 따른

Beam Pattern의 재생성 시간을 단축시키는 방법을 제안한다.

Beam Pattern 생성시 대량의 연산이 필요하기 때문에

실시간으로 연산이 힘들었으나 고성능의 연산을 병렬로

처리하는 CUDA 기술을 활용하여 Beam Pattern 재생성

시간을 단축시켜 신호 합성 처리의 실시간성 보장 및 Stave

상태 변경의 실시간 적용을 가능하게 하였다.

1. Introduction

• Sonar Simulator에서 Beam Pattern 생성은 많은 시간이 걸려서 통상 가동전에 미리 생성해 놓는다. 이 경우 Stave 변경에 따라 Beam Pattern 이 바뀌는 것을 적용하기 힘들다.

•기존 CPU 연산만으로는 불가능하였으나 CUDA 기술을 활용하여 Stave 변경에 따른 Beam Pattern 생성 시간을 줄여서 실시간으로 반영이 가능하도록 연구한 과정 및 그 결과를 소개하도록 하겠다.

2. Background Knowledge

• 빔 패턴 (Beam pattern)

- 어느 일정한 주파수에 있어서 전기음향 변화기의 감도 레벨을 음파방사 또는 음파입사에 대한 방향의 함수로 나타낸 그림

- Sonar Simulator의 경우 생성한 Target 신호에 Beam Pattern을 적용하여 각 방향 별 도달 신호를 생성하는데 활용

3. Background Knowledge

• 원통형 배열 음탐기 수평각 빔패턴 (Cylindrical Array Sonar Azimuth Beam pattern)

- 조향각 * 표적의 각도 * 주파수 의 3차원 Table (Steer angle * Target angle * Frequency)

ex) 1,000 Steer angle * 1,000 Target angle * 1,000 Frequency * 4 Bytes (float) = 3.73 Giga bytes

- 조향 방향에 따른 상대 각도 * 주파수 의 2차원 Table ex) 1,000 Angle * 1,000 Frequency * 4 Bytes (float) = 3.82 Mega bytes

- 단, 모든 조향각에 따른 Sensor Array의 상태가 동일 해야함 - Sensor Array 상태가 다르다면 Steer Angle 별로 다른 Beam

pattern이 필요

4. Research Detail

- Hardware Specification • CPU : Intel i7-4770 (Haswell) 4.1Ghz • RAM : 8Gbytes DDR3 (PC3-12800) • GPU : nVidia Geforce GTX 770

- Multiprocessor : 8 ea - CUDA Core / MP : 192 ea - GPU Clock Rate : 1.2 GHz - Global Memory : 2 Gbytes

- Software Develop Environment • OS : Windows 7 Pro x64 • C Compiler : VC90 (Visual Studio 2008) • CUDA Compiler : CUDA SDK 5.5

5. Research Detail

- Sonar Array & Beam pattern • Azimuth 100 Stave * Elevation 10 Stave • Azimuth : 1,000 Angle * 1,000 Frequency • Elevation : 1,000 Angle * 1,000 Frequency

- CPU 연산 vs GPU 연산 • CPU 연산 : OpenMP 활용 (Thread 병렬화) • GPU 연산 : CUDA 활용 (GPGPU 병렬화)

- Stave Off를 활용하여 Beam pattern table 생성 35개 ~ 100개까지 수행

- 각 Case 별 100회 반복하여 평균, 표준편차

6. CPU performance & result

Stave Off 평균 표준편차 빔패턴 수 CPU 사용률

1 12,088.32 ms 129.743 35 100 %

2 15,134.66 ms 170.469 43 100 %

3 16,806.38 ms 148.344 49 100 %

4 17,635.91 ms 221.266 52 100 %

5 23,316.02 ms 912.700 68 100 %

6 27,069.84 ms 346.114 83 100 %

7 30,975.10 ms 607.830 94 100 %

8 32,045.58 ms 487.168 100 100 %

7. GPU performance & result

Stave Off 평균 표준편차 빔패턴 수 GPU 사용률

1 104.59 ms 3.42 35 3.62 %

2 120.84 ms 2.59 43 5.19 %

3 134.93 ms 2.26 49 6.24 %

4 145.74 ms 0.60 52 7.12 %

5 185.37 ms 2.81 68 8.05 %

6 203.67 ms 0.13 83 10.94 %

7 244.11 ms 0.21 94 12.04 %

8 258.54 ms 0.14 100 12.10 %

8. CPU performance vs GPU performance & result

빔패턴 수 CPU 연산 GPU연산 속도차이

35 12,088.32 ms 104.59 ms 115.58 배

43 15,134.66 ms 120.84 ms 125.25 배

49 16,806.38 ms 134.93 ms 124.56 배

52 17,635.91 ms 145.74 ms 121.01 배

68 23,316.02 ms 185.37 ms 125.78 배

83 27,069.84 ms 203.67 ms 132.91 배

94 30,975.10 ms 244.11 ms 126.89 배

100 32,045.58 ms 258.54 ms 123.95 배

9. Conclusion

- CPU 연산 대비 115배 이상의 성능 개선

- Worst Case인 경우에도 258 ms 내에 생성 ( 100개 생성 )

- Sonar Simulator 의 Stave On/Off 실시간 반영 가능 ( 1 Frame / 1 sec. 기준 )

- Simulator의 연산에 활용도가 클 것으로 판단

등록자 Profile

Profile 사진을 첨부해주세요

이름 : 윤석준 소속 : ㈜웨어밸리 Email : [email protected]

경북대 컴퓨터공학과 학사 ㈜삼성전자 에서 Microprocessor S/W 개발, ㈜JS-System 에서 Factory Automation, Statistic Process Control 및 국방기술 관련 S/W 개발 ㈜WareValley (재직중) 에서 Database 관리Tool Orange 제품의 S/W 개발 Facebook C++ Korea에 임원으로 활동중 (Effective Modern C++ Study (신촌모임)을 담당하고 있음)

개인 정보

자기소개

프로필 사진

소속 대학/회사 로고를 넣어 주세요

로고