Steered response power phase transform(SRP-PHAT)은 음원 방향 추정을 위해 널리 사용되는 알고리즘이다. SRP-PHAT는 매우 많은 수의 후보 좌표를 조사해야만 하므로 기존 SRP-PHAT들은 실시간에 실행되지 못할 수도 있었다. 이 문제를 극복하기 위해, SRP-PHAT를 graphics processing units(GPUs) 기반으로 병렬화하는 시도가 있었다. 그러나, 그 방법들은 on-chip 메모리를 모두 쓰지 못하여 GPUs의 최대 연산 능력을 활용할 수 없었다. 이 발표에서 우리는 SRP-PHAT의 GPU 기반 병렬 알고리즘들을 주파수 영역과 시간 영역의 두 버전으로 제안한다. 제안된 알고리즘들은 SRP-PHAT의 메모리 접근 패턴을 최적화하고 on-chip 메모리를 공격적으로 사용한다. 결과적으로 제안된 방법들은 CPU 기반 알고리즘들에 비해 주파수 영역에서 1,276 배 그리고 시간 영역에서 80 배의 속도 향상을, 그리고 기존 GPU 기반 알고리즘들에 비해 주파수 영역에서 1.5 배 그리고 시간 영역에서 6 배의 속도 향상을 보였다.
Python의 계산성능 향상을 위해 Fortran, C, CUDA-C, OpenCL-C 코드들과 연동하기Ki-Hwan Kim
PYCON Korea 2015
Python은 과학 계산 분야에서도 이미 널리 사용되고 있습니다. numpy와 scipy 기반으로 만들어진 많은 모듈들이 휼륭한 생태계를 이루고 있기 때문입니다. 그러나 극한의 계산 성능을 요구하는 분야(HPC, High Performance Computing)에서는 여전히 C와 Fortran으로만으로 짜여진 코드들이 선호되고 있습니다. 이런 분야에서 Python에 대한 일반적인 견해는 전처리/후처리에는 유용하지만 메인 코드에 적용하기에는 느리다라는 것입니다.
이번 발표에서는 HPC 분야에서도 Python의 유용함을 보여줍니다. 계산이 집중된 부분만을 Fortran, C로 구현하여 Python 메인 코드에 접합하면, Python의 장점은 충분히 활용하면서도 계산 성능에 큰 손해는 보지 않을 수 있습니다. 게다가 CUDA-C, OpenCL-C와 연동하면 GPU, MIC와 같은 가속 프로세서들도 비교적 쉽게 활용할 수 있습니다. 이번 발표에서는 간단한 시뮬레이션 코드를 예제로 사용하여 Python 코드로부터 시작하여 Fortran, C, CUDA-C, OpenCL-C 등을 단계적으로 접합해 나가는 것을 보여줄 것입니다.
오늘날 멀티코어 프로세서 세상은 이기종 컴퓨팅 환경이 대부분이라 해도 과언이 아니다.
병렬 컴퓨팅은 비약적인 속도 향상과 전력 소비 감소라는 장점이 있지만 사용하기가 까다롭고 특히 다양한 아키텍처로 이루어진 이기종 컴퓨팅 환경에서는 소프트웨어 개발이 더욱 어려워진다.
이 프리젠테이션에서는 이기종 컴퓨팅 환경에서의 병렬 처리를 위한 프로그래밍 언어를 소개하고 OpenCV와 같은 영상처리 라이브러리에서의 활용 예시를 보여준다
Python의 계산성능 향상을 위해 Fortran, C, CUDA-C, OpenCL-C 코드들과 연동하기Ki-Hwan Kim
PYCON Korea 2015
Python은 과학 계산 분야에서도 이미 널리 사용되고 있습니다. numpy와 scipy 기반으로 만들어진 많은 모듈들이 휼륭한 생태계를 이루고 있기 때문입니다. 그러나 극한의 계산 성능을 요구하는 분야(HPC, High Performance Computing)에서는 여전히 C와 Fortran으로만으로 짜여진 코드들이 선호되고 있습니다. 이런 분야에서 Python에 대한 일반적인 견해는 전처리/후처리에는 유용하지만 메인 코드에 적용하기에는 느리다라는 것입니다.
이번 발표에서는 HPC 분야에서도 Python의 유용함을 보여줍니다. 계산이 집중된 부분만을 Fortran, C로 구현하여 Python 메인 코드에 접합하면, Python의 장점은 충분히 활용하면서도 계산 성능에 큰 손해는 보지 않을 수 있습니다. 게다가 CUDA-C, OpenCL-C와 연동하면 GPU, MIC와 같은 가속 프로세서들도 비교적 쉽게 활용할 수 있습니다. 이번 발표에서는 간단한 시뮬레이션 코드를 예제로 사용하여 Python 코드로부터 시작하여 Fortran, C, CUDA-C, OpenCL-C 등을 단계적으로 접합해 나가는 것을 보여줄 것입니다.
오늘날 멀티코어 프로세서 세상은 이기종 컴퓨팅 환경이 대부분이라 해도 과언이 아니다.
병렬 컴퓨팅은 비약적인 속도 향상과 전력 소비 감소라는 장점이 있지만 사용하기가 까다롭고 특히 다양한 아키텍처로 이루어진 이기종 컴퓨팅 환경에서는 소프트웨어 개발이 더욱 어려워진다.
이 프리젠테이션에서는 이기종 컴퓨팅 환경에서의 병렬 처리를 위한 프로그래밍 언어를 소개하고 OpenCV와 같은 영상처리 라이브러리에서의 활용 예시를 보여준다
CyberConnect2에서는 2013년부터 DirectX11세대용 멀티플랫폼엔진 개발을 시작하였으며, 제작 시 발생하였던 문제점을 DirectX9와의 차이점을 바탕으로 공유하고자 합니다.
이 세션은 DirectX11의 개발이 처음이거나 관심 있으신 분을 대상으로 합니다. Tessellation 이나 OIT와 같은 최신기술은 다루지 않으므로 주의하시기 바랍니다.
프로세서에 대한 내용은 SW개발자가 깊이있게 호기심을 가지지 않을 수도 있습니다. 하지만 하드웨어 세상인 이곳도 사실은 논리적 해법으로 무장한 알고리즘의 세계라는 것을 김민장님의 책을 통해 알게되었습니다. 그래서 관련 책을 읽어보고 같이 공부하는 사람들에게 공유하기 위해 ppt 형태로 정리해보았습니다.
CyberConnect2에서는 2013년부터 DirectX11세대용 멀티플랫폼엔진 개발을 시작하였으며, 제작 시 발생하였던 문제점을 DirectX9와의 차이점을 바탕으로 공유하고자 합니다.
이 세션은 DirectX11의 개발이 처음이거나 관심 있으신 분을 대상으로 합니다. Tessellation 이나 OIT와 같은 최신기술은 다루지 않으므로 주의하시기 바랍니다.
프로세서에 대한 내용은 SW개발자가 깊이있게 호기심을 가지지 않을 수도 있습니다. 하지만 하드웨어 세상인 이곳도 사실은 논리적 해법으로 무장한 알고리즘의 세계라는 것을 김민장님의 책을 통해 알게되었습니다. 그래서 관련 책을 읽어보고 같이 공부하는 사람들에게 공유하기 위해 ppt 형태로 정리해보았습니다.
http://www.ubuntu-kr.org/viewtopic.php?f=2&t=16175
내 용
발표 1 우분투로 슈퍼컴 만들기 = 김성윤
발표 2 geogebra (수학 그래프+도형 툴) = 미남imsu(구임수)
자기 소개 및 자유 이야기
발표 3 : 우분투에서 임베디드 리눅스 개발 환경 구축하기 = 뻔뻔강사(유명환)
드랍박스, nDrive 등과 같은 클라우드 스토리지 서비스들은 데이터를 어떻게 저장하는지에 대한 이론적 내용과 실제 구현 내용을 살펴봅니다. 이 발표에서는 OpenStack 의 swift라는 Object Storage 를 이용하여 이론이 어떻게 구현되어있는지 알아봅니다.
목차
1 2차 년도 개발의 배경
2 LTE 의 무선 자원 구성
3 LTE 의 채널 품질 측정
3.1 Reference Signal 전력 측정
3.2 Reference Signal 품질 측정
4 2차년도 개발 내용
4.1 Autonomous Multi-Cell Interference Management
4.2 Coordinated Multi-Cell Capacity and Coverage Optimization
4.3 Coordinated Multi-Cell Interference Management
4.4 Mobility Load Balancing
4.5 Mobility Robustness Optimization
5 2차 년도 개발 참고 사항
5.1 X2 Interface
5.2 X2 Interface, Load Information
5.3 X2 Interface, Load Information, Message Types
5.4 X2 Interface, Load Information, Cell ID
5.5 X2 Interface, Load Information, UL Interference Overload Indication
5.6 X2 Interface, Load Information, UL High Interference Indication
5.7 X2 Interface, Load Information, Relative Narrowband Tx Power (RNTP)
5.8 X2 Interface, ABS Information
5.9 X2 Interface, Invoke Indication
5.10 LTE 이동 통신 망 구성
5.10 eNB 하드웨어 및 소프트웨어 구성
5.11 Key Performance Indicator (KPI)
5.13 MRO 가 적용되는 핸드오버 절차
5.14 MRO 가 적용되는 핸드오버를 위한 이벤트
Exploring Deep Learning Acceleration Technology Embedded in LLMsTae Young Lee
Lab's research presentation
I am a doctoral student at Seoul National University of Science and Technology and am currently the head of the Applying LLMs to Various Industry (AL2VI) Lab.
[기술세미나 2차시] Ia 32 레지스터 분석 및 abex, crackme를 통한 stack 파라미터 전달 실습
GPU를 위한 병렬 음원 방향 추정 알고리즘
1. GPU를 위한 병렬 음원 방향 추정
알고리즘
이태우
고려대학교 음성정보처리연구실
twlee@speech.korea.ac.kr
2. Abstract
• Steered response power phase transform(SRP-PHAT)은 음원 방향 추정을
위해 널리 사용되는 알고리즘이다. SRP-PHAT는 매우 많은 수의 후보
좌표를 조사해야만 하므로 기존 SRP-PHAT들은 실시간에 실행되지 못할
수도 있었다. 이 문제를 극복하기 위해, SRP-PHAT를 graphics processing
units(GPUs) 기반으로 병렬화하는 시도가 있었다. 그러나, 그 방법들은
on-chip 메모리를 모두 쓰지 못하여 GPUs의 최대 연산 능력을 활용할 수
없었다. 이 발표에서 우리는 SRP-PHAT의 GPU 기반 병렬 알고리즘들을
주파수 영역과 시간 영역의 두 버전으로 제안한다. 제안된 알고리즘들은
SRP-PHAT의 메모리 접근 패턴을 최적화하고 on-chip 메모리를
공격적으로 사용한다. 결과적으로 제안된 방법들은 CPU 기반
알고리즘들에 비해 주파수 영역에서 1,276 배 그리고 시간 영역에서 80
배의 속도 향상을, 그리고 기존 GPU 기반 알고리즘들에 비해 주파수
영역에서 1.5 배 그리고 시간 영역에서 6 배의 속도 향상을 보였다.
3. 1. SRP-PHAT
• SRP-PHAT는 steered response power(SRP)가 최대인 지점의 방향을 음원이 있는 방향으로
추정한다. SRP가 최대인 지점 𝒒는 다음과 같이 얻어진다:
𝒒 = 𝒂𝒓𝒈 𝒎𝒂𝒙
𝒒∈𝑸
𝒑 𝒒
• 여기서 𝑸는 모든 후보 음원 좌표들의 집합, 𝒑 𝒒는 좌표 𝒒에서의 SRP 이다. 𝒑 𝒒는 주파수
영역(FD)과 시간 영역(TD)에서 계산될 수 있다.
• 주파수 영역:
𝒑 𝒒 =
𝑿 𝒎(𝝎)
𝑿 𝒎(𝝎)
𝒆𝒋𝝎𝝉[𝒒,𝒎]
𝑴
𝒎=𝟏
𝟐
𝟐𝝅
𝟎
𝒅𝝎
• 시간 영역:
𝒑 𝒒 = 𝑹 𝒒, 𝒎′, 𝒎″
𝑴
𝒎″=𝒎′+𝟏
𝑴−𝟏
𝒎′=𝟏
여기서, 𝑹 𝒒, 𝒎′, 𝒎″ =
𝟏
𝟐𝝅
𝑿 𝒎′ 𝝎 𝑿 𝒎″
∗
𝝎
𝑿 𝒎′ 𝝎 𝑿 𝒎″
∗ 𝝎
𝒆𝒋𝝎 𝝉 𝒒,𝒎′ −𝝉 𝒒,𝒎″
𝒅𝝎
𝟐𝝅
𝟎
파라미터 설명
𝑀 마이크로폰 수 (𝑚 = 1: 𝑀)
𝑋 𝑚 𝝎 𝑚번째 마이크로폰의 푸리에 변환
𝑋 𝑚
∗
𝝎 𝑚번째 마이크로폰의 푸리에 변환의 conjugate
𝜏[𝑞, 𝑚] 좌표 𝑞에서 마이크로폰 𝑚까지의 도착 시간 (TOA)
𝑅[𝑞, 𝑚′, 𝑚″] 좌표 𝑞에서 마이크로폰 쌍 (𝑚′, 𝑚″)의 phase transform (PHAT)
가중된 시간 영역 cross-correlation
4. 2. 병렬성 (Parallelism)
• 병렬성은 연산들 사이에 서로 의존성이 없어 동시에 계산될 수 있는 성질이다. 예를
들어 스레드 수준 병렬성(thread level parallelism, TLP)은 두 스레드 사이에 서로
의존성이 없어 동시에 계산될 수 있는 성질이다. 여기서 의존성이란 연산들 사이에
반드시 지켜야 할 실행 순서가 있음을 뜻한다. 이를테면 한 스레드 안에는 읽고
쓰기(write-after-read, WAR), 쓰고 쓰기(write-after-write, WAW), 쓰고 읽기(read-
after-write, RAW) 의존성이 있을 수 있다. 이 중에서, 오직 RAW만이 true 의존성으로
여겨진다.
• 그러나, 다수의 스레드에서는 RAW, WAW, WAR 모두 true 의존성으로 여겨진다. 단,
읽고 읽기 (read-after-read, RAR) 의존성은 메모리 broadcasting에 의해 풀릴 수 있다.
5. 3. Parallelism of FD SRP-PHAT
표 1에서 FD SRP-PHAT는 세 RAW 의존성을 갖는다:
줄 2,3 과 11 사이의 𝑋 𝑚, 줄 11 과 13 사이의 𝑠, 그리
고 줄 14 와 16 사이의 𝑝가 그것이다. 그러므로 FD
SRP-PHAT는 fast Fourier transform(FFT), SRP 계산,
그리고 최대 SRP 탐색의 세 블록들로 나눠진다. 줄
1~4의 FFT 블록은 최대 𝑀 × log 𝑇의 TLP를 갖는다.
줄 10~12의 가장 안쪽 loop는 병렬화 될 수 없다.
그 결과가 RAW 의존성을 유발하며 반드시 같은
변수 𝑠에 저장되어야 하기 때문이다. 유사하게, 줄
8~15의 SRP 계산 블록도 병렬화 될 수 없다. 그 결
과가 RAW 의존성을 유발하며 같은 변수 𝑝에 저장
되어야 하기 때문이다. 줄 6~20의 바깥 loop는 줄
16~19를 제외하고 𝑄 개 스레드들의 TLP를 갖는
다. 줄 14와 16의 RAW 의존성은 parallel reduction
으로 분리되어 처리될 수 있다.
표 1. FREQUENCY DOMAIN SRP-PHAT ALGORITHM
Input: 𝑥 𝑚 𝑡 , 𝜏 𝑞, 𝑚 , 𝜔 𝑘 , 𝑚 = 1:𝑀, 𝑡 = 1:𝑇, 𝑞 ∈ 𝑄, 𝑘 = 1:𝑇
1. for each microphone 𝑚
2. 𝑋 𝑚 ← FFT 𝑥 𝑚
3. 𝑋 𝑚 ← 1 𝑋 𝑚
4. end
5. 𝑝max ← −∞
6. for each location 𝑞
7. 𝑝 ← 0
8. for each frequency 𝑘
9. 𝑠 ← 0
10. for each microphone 𝑚
11. 𝑠 ← 𝑠 + 𝑋 𝑚 𝑘 ∙ exp 𝑗𝜔 𝑘 𝜏 𝑞, 𝑚
12. end
13. 𝑠 ← 𝑠2
14. 𝑝 ← 𝑝 + 𝑠
15. end
16. if 𝑝max < 𝑝
17. 𝑝max ← 𝑝
18. 𝑞 ← 𝑞
19. end
20. end
Output: 𝑞
6. 4. Parallelism of TD SRP-PHAT
표 2의 TD SRP-PHAT는 네 RAW 의존성을 갖는다: 줄 2,
3 과 7 사이의 𝑋 𝑚, 줄 7 과 11 사이의 𝑍 𝑛, 줄 11 과 17 사
이의 𝑅 𝑛, 그리고 줄 17 과 19 사이의 𝑝가 그것이다. 그
러므로 TD SRP-PHAT는 FFT, cross spectrum(CS) 계산,
inverse FFT(IFFT), SRP 계산, 그리고 최대 SRP 탐색의 다
섯 블록들로 나눠진다. FFT (줄 1~4) 와 IFFT (줄 10~12)
블록은 각각 𝑀 × log 𝑇 와 𝑁 × log 𝑇 스레드들의 TLP를
갖는다. 여기서 𝑁은 마이크로폰 쌍의 개수이다. 줄
6~8의 안쪽 loop 또한 TLP를 갖는다. 이는 각 요소의 계
산이 이전 loop의 결과들과 독립적이기 때문이다. 줄
5~9의 CS 계산 블록은 TLP를 갖는다. 이는 𝑋 𝑚을 공유
하는 스레드들 사이의 RAR 의존성은 메모리
broadcasting으로 풀릴 수 있기 때문이다. 줄 19~22를
제외하고 줄 14~23은 TLP를 갖는다. SRP 계산 (줄
16~18)은 병렬화될 수 없다. 왜냐하면 그 결과가 RAW
의존성을 유발하며 같은 변수 𝑝에 저장되어야 하기 때
문이다. 줄 19~22의 RAW 의존성은 parallel reduction으
로 분리되어 처리될 수 있다.
표 2. TIME DOMAIN SRP-PHAT ALGORITHM
Input: 𝑥 𝑚 𝑡 , 𝜏 𝑞, 𝑛 , 𝑚 = 1:𝑀, 𝑡 = 1:𝑇, 𝑞 ∈ 𝑄, 𝑛 ≡ 𝑚′, 𝑚″
1. for each microphone 𝑚
2. 𝑋 𝑚 ← FFT 𝑥 𝑚
3. 𝑋 𝑚 ← 1 𝑋 𝑚
4. end
5. for each microphone pair 𝑛 ≡ 𝑚′, 𝑚″
6. for each frequency 𝑘
7. 𝑍 𝑛 𝑘 ← 𝑋 𝑚′ 𝑘 𝑋 𝑚″
∗
𝑘
8. end
9. end
10. for each microphone pair 𝑛 ≡ 𝑚′, 𝑚″
11. 𝑅 𝑛 ← IFFT 𝑍 𝑛
12. end
13. 𝑝max ← −∞
14. for each location 𝑞
15. 𝑝 ← 0
16. for each microphone pair 𝑛 ≡ 𝑚′, 𝑚″
17. 𝑝 ← 𝑝 + 𝑅 𝑛 𝜏 𝑞, 𝑛
18. end
19. if 𝑝max < 𝑝
20. 𝑝max ← 𝑝
21. 𝑞 ← 𝑞
22. end
23. end
Output: 𝑞
7. 5. Parallel SRP-PHAT In FD (표 3)
Algorithm Thread index Number of threads Time complexity
Input: 𝑥 𝑚 𝑡 , 𝜏 𝑞, 𝑚 , 𝜔 𝑘 , 𝑚 = 1:𝑀, 𝑡 = 1:𝑇, 𝑞 ∈ 𝑄, 𝑘 = 1:𝑇
1. 𝑋 𝑚 ← FFT 𝑥 𝑚
2. 𝑋 𝑚 𝑘 ← 1 𝑋 𝑚 𝑘 FFT 𝑚, 𝑘 𝑀 × 𝑇 𝑂 𝑀 𝑇
𝐶
log 𝐶
3. load 𝜔 𝜅 into shared memory 𝜔 𝜅
4. load 𝑋1:𝑀 𝜅 into shared memory 𝑋1:𝑀 𝜅
5. synchronize all threads in a block
6. for each location 𝑞 in 𝜌
7. load 𝜏 𝑞, 1: 𝑀 into local memory 𝜏 𝑞 1: 𝑀
8. 𝑝 𝑞,𝜅 ← 0
9. for each frequency 𝑘 in 𝜅
10. 𝑠 ← 0
11. for each microphone 𝑚
12. 𝑠 ← 𝑠 + 𝑋 𝑚 𝑘 ⋅ exp 𝑗𝜔 𝑘 𝜏 𝑞 𝑚
13. end
14. 𝑝 𝑞,𝜅 ← 𝑝 𝑞,𝜅 + 𝑠2
15. end
16. end
SRP
𝜌, 𝜅
𝑄
𝜌
×
𝑇
𝜅
𝑂 𝑄
𝐶
𝑇𝑀
17. accumulate 𝑝 𝑞,𝜅 over 𝜅 into 𝑝 𝑞 SRP 𝑞 𝑄 𝑂 𝑄
𝐶
𝜅
18. find 𝑞 such that 𝑝 𝑞 is the maximum MPS 𝑞 𝑄 𝑂 𝑄
𝐶
log 𝐶
Output: 𝑞
8. 6. Parallel SRP-PHAT In TD (표 4)
Algorithm Thread index Number of threads Time complexity
Input: 𝑥 𝑚 𝑡 , 𝜏 𝑞, 𝑚 , 𝑚 = 1:𝑀, 𝑡 = 1:𝑇, 𝑘 = 1:𝑇
1. 𝑋 𝑚 ← FFT 𝑥 𝑚
2. 𝑋 𝑚 𝑘 ← 1 𝑋 𝑚 𝑘 FFT 𝑚, 𝑘 𝑀 × 𝑇 𝑂 𝑀 𝑇
𝐶
log 𝐶
3. load 𝑋1:𝑀 𝜅 into local memory 𝑋1:𝑀 𝑘
4. for each microphone pair 𝑛 ≡ 𝑚′, 𝑚″
5. for each frequency 𝑘 in 𝜅
6. 𝑍 𝑛 𝑘 ← 𝑋 𝑚′ 𝑘 𝑋 𝑚″
∗
𝑘
7. end
8. end
CS
𝜅
𝑇
𝜅
𝑂 𝑇
𝐶
𝑁
9. 𝑅 𝑛 ← IFFT 𝑍 𝑛 IFFT 𝑛, 𝑘 𝑁 × 𝑇 𝑂 𝑁 𝑇
𝐶
log 𝐶
10. load 𝑅 𝑛 into shared memory 𝑅 𝑛
11. synchronize all threads in a block
12. 𝑝 𝑞 ← 0
13. for each microphone pair 𝑛 ≡ 𝑚′, 𝑚″
14. 𝑝 𝑞 ← 𝑝 𝑞 + 𝑅 𝑛 𝜏 𝑞, 𝑛
end
SRP
𝑞 𝑄 𝑂( 𝑄
𝐶
𝑁)
16. find 𝑞 such that 𝑝 𝑞 is the maximum MPS 𝑞 𝑄 𝑂 𝑄
𝐶
log 𝐶
Output: 𝑞
9. 7. GPU performance & result
표 5. 실험 환경
Sound source
Corpus: TIMIT
Sampling rate: 16 KHz
Length: 104 seconds
Frame size (𝑇): 4096 samples
Overlap: 2048 samples
Room
Dimension: 3m×5m×3m
Reverberation: RT60 0.43 seconds
Search space ( 𝑄 ): 3888, 97200, 388800
Microphones Number of sensors (𝑀): 8, 16, 32
Host
CPU: i7-2700K 3.5 GHz
RAM: DDR3 PC3-10700 8 GB
Devices
GPU1: GTX 560 Ti, 900 MHz, 8 SMs, 384 cores
GPU2: GTX 580, 815 MHz, 16 SMs, 512 cores
GPU3: GTX 680, 1006 MHz, 8 SMs, 1536 cores
표 6. 마이크로폰 수 𝑀 변화에 따른 프레임 당 수행 시간 (MILLISECONDS)
( 𝑄 : 97200, DEVICE: GTX 680)
𝑀
Algorithm
8 16 32 Average Speedup
FD
CPU 110953 223072 453447 262490 1
Minotto 130.559 291.419 677.741 366.573 716
Proposed 53.3157 149.929 525.913 243.053 1080
TD
CPU 8.67241 45.7703 210.365 88.2691 1
Minotto 1.67966 3.21136 16.4630 7.11799 12
Proposed 0.35004 0.60906 1.88197 0.94702 93
Minotto, V., Jung, C., Silveira, L., Lee, B., 2012. GPU-based approaches for real-time sound source localization using the SRP-PHAT algorithm. Int. J. High Perform.
Comput. Appl., 27 (3), 291–306.
10. 8. GPU performance & result
표 7. 탐색 후보 좌표 수 𝑄 변화에 따른 프레임 당 수행 시간 (MILLISECONDS)
(𝑀: 16, DEVICE: GTX 680)
𝑄
Algorithm
3,888 97,200 388,800 Average Speedup
FD CPU 9339.01 223072 876644 369685 1
Minotto 8.85731 291.419 865.507 388.595 951
Proposed 6.09673 149.929 597.590 251.205 1472
TD CPU 27.1977 45.7703 103.277 58.7482 1
Minotto 0.89618 3.21136 8.00686 4.03814 15
Proposed 0.26006 0.60906 1.80190 0.89034 66
표 8. 디바이스 별 프레임 당 수행 시간 (MILLISECONDS)
Device
Algorithm
GTX 560 GTX 580 GTX 680 Average Speedup
FD Minotto 1690.07 658.103 865.507 1071.23 1
Proposed 814.772 516.804 597.590 643.055 1.7
TD Minotto 13.7382 8.07846 8.00686 9.94117 1
Proposed 2.20939 1.33607 1.80190 1.78245 5.6
11. 9. Conclusion
• 이 발표에서, 우리는 FD와 TD에서 GPU 기반 병렬 SRP-PHAT 알고리즘을 제안하였다.
제안된 알고리즘은 메모리 통신 병목을 최소화하도록 on-chip 메모리 사용을
최대화하여 높은 속도 향상을 얻었다.
• 제안된 방법들은 블록 당 스레드 수를 warp 크기의 배수로 설정할 수 있다. 이는
single instruction multiple data (SIMD) 연산들이 최대로 활용될 수 있도록 한다.
• 제안된 방법들은 shared 메모리와 register들을 가능한 많이 사용한다. 이는 global
메모리 접근 횟수를 줄일 뿐 아니라 전력 소모 또한 최소화한다.
• 표 3의 줄 18과 표 6의 줄 16의 parallel reduction은 두 단계로 구현된다. 먼저 global
메모리 접근 없이 한 SM에서 local maximum들을 찾고, 다음 그 local maximum들 중
global maximum을 찾는다.
• 메모리 접근 패턴의 벡터화, on-chip 메모리 사용 최대화, 그리고 불필요한 scheduling
overhead를 줄이기 위한 coarse grain 병렬성 사용은 기존 GPU 기반 SRP-PHAT
방법들에 비해 FD에서 1.5배 그리고 TD에서 6배의 속도 향상을 가져왔다.
• CPU와 GPU의 협력 연산 또는 multi-GPU에서의 연산이 추가로 연구될 수 있다.
12. 참고 자료
• Taewoo Lee, Sukmoon Chang, and Dongsuk Yook
"Parallel SRP-PHAT for GPUs"
Computer Speech and Language, vol. 35, pp. 1-13, Jan. 2016
(Demonstration)