Microsoft PowerPoint - CUDA_NeuralNet_정기철_발표자료.pptx

Similar documents
CUDA Programming Tutorial 2 - Memory Management – Matrix Transpose

6주차.key

Microsoft PowerPoint - AMP_ pptx

Ⅱ. Embedded GPU 모바일 프로세서의 발전방향은 저전력 고성능 컴퓨팅이다. 이 러한 목표를 달성하기 위해서 모바일 프로세서 기술은 멀티코 어 형태로 발전해 가고 있다. 예를 들어 NVIDIA의 최신 응용프 로세서인 Tegra3의 경우 쿼드코어 ARM Corte


08이규형_ok.hwp

<30362DB1E8BFB5C5C22E687770>

untitled

Microsoft PowerPoint - o8.pptx

PowerPoint Presentation

Microsoft PowerPoint - 30.ppt [호환 모드]

2005CG01.PDF

Figure 5.01

강의10

Integ

1-1-basic-43p

19_9_767.hwp

13김상민_ok.hwp

김기남_ATDC2016_160620_[키노트].key

01이국세_ok.hwp

PowerPoint 프레젠테이션

example code are examined in this stage The low pressure pressurizer reactor trip module of the Plant Protection System was programmed as subject for

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

PowerPoint 프레젠테이션

안전을 위한 주의사항 제품을 올바르게 사용하여 위험이나 재산상의 피해를 미리 막기 위한 내용이므로 반드시 지켜 주시기 바랍니다. 2 경고 설치 관련 지시사항을 위반했을 때 심각한 상해가 발생하거나 사망에 이를 가능성이 있는 경우 설치하기 전에 반드시 본 기기의 전원을

Parallel Computation of Neural Network

Windows Embedded Compact 2013 [그림 1]은 Windows CE 로 알려진 Microsoft의 Windows Embedded Compact OS의 history를 보여주고 있다. [표 1] 은 각 Windows CE 버전들의 주요 특징들을 담고

K&R2 Reference Manual 번역본

Ch 1 머신러닝 개요.pptx

CUDA 를게임프로젝트에적용하기 유영천 - 모여서각자코딩하는모임

PowerPoint 프레젠테이션

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE Nov.; 25(11),

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Clover 부트로더를 이용한 해킨토시 설치방법

bn2019_2

Microsoft PowerPoint - o4.pptx

<C3E1B0E8C7D0C8B8B3EDB9AE28BCAEB9AEB1E E322E687770>

PCServerMgmt7

<30312DC2F7BCBCB4EBC4C4C7BBC6C32DBED5BACEBAD B1C731C8A3292E687770>

Microsoft PowerPoint - NV40_Korea_KR_2.ppt

04_오픈지엘API.key

°í¼®ÁÖ Ãâ·Â

Microsoft PowerPoint - 알고리즘_5주차_1차시.pptx

지능정보연구제 16 권제 1 호 2010 년 3 월 (pp.71~92),.,.,., Support Vector Machines,,., KOSPI200.,. * 지능정보연구제 16 권제 1 호 2010 년 3 월

Microsoft Word - 3부A windows 환경 IVF + visual studio.doc

딥러닝 첫걸음

untitled

untitled

3 Gas Champion : MBB : IBM BCS PO : 2 BBc : : /45

HW5 Exercise 1 (60pts) M interpreter with a simple type system M. M. M.., M (simple type system). M, M. M., M.

PowerPoint 프레젠테이션

제11장 프로세스와 쓰레드

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

Microsoft Word - ExecutionStack

15 홍보담당관 (언론홍보담당) 김병호 ( 金 秉 鎬 ) 16 (행정담당) 박찬해 ( 朴 鑽 海 ) 예산담당관 17 (복지행정담당) 이혁재 ( 李 赫 在 ) 18 (보육담당) 주사 이영임 ( 李 泳 任 ) 기동근무해제. 19 (장애인담당) 박노혁 ( 朴 魯 爀 ) 기동

<C6F7C6AEB6F5B1B3C0E72E687770>

[Brochure] KOR_TunA

03홍성욱.hwp

Microsoft PowerPoint - ch07 - 포인터 pm0415

9

FMX M JPG 15MB 320x240 30fps, 160Kbps 11MB View operation,, seek seek Random Access Average Read Sequential Read 12 FMX () 2

PRO1_09E [읽기 전용]

PowerPoint Presentation

PowerPoint 프레젠테이션

2002년 2학기 자료구조

3 : OpenCL Embedded GPU (Seung Heon Kang et al. : Parallelization of Feature Detection and Panorama Image Generation using OpenCL and Embedded GPU). e

PowerPoint 프레젠테이션

PowerPoint Presentation

0125_ 워크샵 발표자료_완성.key

EEAP - Proposal Template

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

Contributors: Myung Su Seok and SeokJae Yoo Last Update: 09/25/ Introduction 2015년 8월현재전자기학분야에서가장많이쓰이고있는 simulation software는다음과같은알고리즘을사용하고있다.

위클리 초이스

PowerPoint Presentation

02 C h a p t e r Java

<BBF3C7A5C6C7B7CA28C1A6BABBBFEB2034BAD0B1E2292E687770>


다음 사항을 꼭 확인하세요! 도움말 안내 - 본 도움말에는 iodd2511 조작방법 및 활용법이 적혀 있습니다. - 본 제품 사용 전에 안전을 위한 주의사항 을 반드시 숙지하십시오. - 문제가 발생하면 문제해결 을 참조하십시오. 중요한 Data 는 항상 백업 하십시오.

목 차 1. 연구 목적 2. 컴퓨팅 파워와 병렬 컴퓨팅 3. AlphaGo의 계산량 분석 4. 결 론

PowerPoint 프레젠테이션

1


PowerPoint 프레젠테이션

untitled

C# Programming Guide - Types

T100MD+

Vector Differential: 벡터 미분 Yonghee Lee October 17, 벡터미분의 표기 스칼라미분 벡터미분(Vector diffrential) 또는 행렬미분(Matrix differential)은 벡터와 행렬의 미분식에 대 한 표

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

DE1-SoC Board

JVM 메모리구조

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,.,,,,,,,,,,,,.,...,. U.S. GOVERNMENT END USERS. Oracle programs, including any oper

2007_2_project4

Microsoft PowerPoint - a10.ppt [호환 모드]

Tekla Structures 설치

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V

<목 차 > 제 1장 일반사항 4 I.사업의 개요 4 1.사업명 4 2.사업의 목적 4 3.입찰 방식 4 4.입찰 참가 자격 4 5.사업 및 계약 기간 5 6.추진 일정 6 7.사업 범위 및 내용 6 II.사업시행 주요 요건 8 1.사업시행 조건 8 2.계약보증 9 3


고객 카드

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

05안용조.hwp

Transcription:

정기철 (kcjung@ssu.ac.kr/ http://hci.ssu.ac.kr) 숭실대학교 IT대학미디어학부 (http://www.ssu.ac.kr/ http://media.ssu.ac.kr)

VMD/NAMD Molecular Dynamics 일리노이주립대 가시분자동력학 (VMD)/ 나노분자동력학 (NAMD) 240X 속도향상 http://www.ks.uiuc.edu/research/vmd/projects/ece498/lecture/

Evolved machines 신경회로시뮬레이션 130X 속도향상

ETC. MRI:40~170X Virus:110X EM:45X

GPU 란? Graphics Processing Unit 1999/08 NVIDIA에서처음발표 CPU의그래픽처리작업을돕기위해만듦 3D그래픽가속칩을개량

Why use GPU? 연산속도 : 367 GFLOPS vs. 32 GFLOPS 메모리대역폭 : 86.4 GB/s vs. 8.4 GB/s

Why so fast GPU? GPU는병렬처리와수학적연산에대하여특화 더많은트랜지스터가흐름제어나데이터캐싱보다데이터처리에집중

Geforce 7800 GTX

Geforce 8800 GTX Host Input Input Assembler Execution Manager Vtx Issue Geom Issue Setup / Rstr / ZCull Pixel Issue SP SP SP SP SP SP SP SP SP SP SP SP SP SP SP SP Parallel TF Data Parallel TF Data Parallel Data Parallel Data Parallel Data Parallel Data Parallel Data Parallel Data TF TF TF TF TF TF Cache Cache Cache Cache Cache Cache Cache Cache Texture L1 Texture L1 Texture L1 Texture L1 Texture L1 Texture L1 Texture L1 Texture L1 Processor Load/store L2 Load/store L2 Load/store L2 Load/store L2 Load/store L2 Load/store L2 FB FB FB Global MemoryFB FB FB 9

Streaming Multiprocessor 8개의스트리밍프로세서로구성 Load/store 구조 32-bit integer 명령어 IEEE754 32-bit floating point Branch, call, return, predication 8K registers, 쓰레드에배치 16K Shared memory 협력하는쓰레드간의데이터공유

What is CUDA? Compute Unified Device Architecture 2007/02 CUDA Beta 최초공개 2007/07 CUDA 1.0 정식버전공개 2007/11 CUDA 1.1 공개 현재 CUDA 2.0 Beta 공개

What is CUDA? (continue.) General purpose programming model 유저가 GPU의쓰레드를배치 GPU = 대용량병렬처리프로세서 GPU에프로그램을적재하기위한드라이버 Driver Optimized for computation 그래픽 API를사용하지않음 OpenGL 버퍼와데이터공유 최고의다운로드 & 다시읽기속도보장 명백한 GPU 메모리관리

CUDA Advantages over Legacy GPGPU 제한없는메모리접근 쓰레드는필요한부분에읽고쓰기가능 공유메모리와쓰레드 쓰레드는공유메모리에서데이터를읽어협력가능 한블럭안의쓰레드는누구나공유메모리접근가능 상대적으로적은지식필요 C의확장형언어 그래픽적인지식필요없음 그래픽API에의한오버헤드가없음

Environment Geforce 8 시리즈이상의그래픽카드 Windows Visual Studio 2003 or 2005 Visual Studio 2008 4 분기지원예정 Linux Redhat Enterprise Linux3.x, 4.x or 5.x SUSE Linux Enterprise Desktop 10-SP1 OpenSUSE 10.1 or 10.2 Ubuntu 7.04 Mac OS X 10.5.2

CUDA Programming Model Kernel = GPU 프로그램 Grid = 커널을수행하는쓰레드블록의배열 block = 커널을수행하고공유메모리를통하여대화하는SIMD 쓰레드의그룹 Host Kerne l 1 Kerne l 2 Block (1, 1) Device Grid 1 Block (0, 0) Block (0, 1) Grid 2 Block (1, 0) Block (1, 1) Block (2, 0) Block (2, 1) (0, 0) (1, 0) (2, 0) (3, 0) (4, 0) (0, 1) (1, 1) (2, 1) (3, 1) (4, 1) (0, 2) (1, 2) (2, 2) (3, 2) (4, 2)

and Block IDs 쓰레드와블록은 ID 를가짐 각각의쓰레드는일을하기위한데이터를결정가능 Device Grid 1 Block (0, 0) Block (1, 0) Block (2, 0) Block ID : 1D or 2D ID : 1D, 2D, or 3D Block (0, 1) Block (1, 1) Block (2, 1) Block (1, 1) 다차원의데이터처리는메모리참조를간편하게함 이미지프로세싱 볼륨에서편미분방정식해결 etc. (0, 0) (0, 1) (0, 2) (1, 0) (1, 1) (1, 2) (2, 0) (2, 1) (2, 2) (3, 0) (3, 1) (3, 2) (4, 0) (4, 1) (4, 2)

CUDA Memory Spaces 메모리영역별권한 Register : R/W 쓰레드 Local Memory : R/W 쓰레드 Shared Memory : R/W 블록 Global Memory : R/W grid Constant Memory : R/O grid Texture Memory : R/O grid (Device) Grid Block (0, 0) Shared Memory Registers Registers (0, 0) (1, 0) Block (1, 0) Shared Memory Registers Registers (0, 0) (1, 0) Host Global, Constant, and Texture Memory : R/W Host Local Memory Global Memory Constant Memory Local Memory Local Memory Local Memory Texture Memory

Arrays of parallel threads Kernel 은쓰레드의배열에의해수행됨 모든쓰레드는동일한코드를수행 각각의쓰레드는컨트롤을결정하고메모리주소를계산하기위해 ID를가짐

Blocks 여러개의블록안에단일화된쓰레드배열로나눠짐 공유메모리를통하여한블록안의쓰레드가협력 다른블록에존재하는쓰레드와는협력불가

Examples Increment Array Elements Neural Networks

Example : Increment Array elements CPU program void increment_cpu(float *a, float b, int N){ for (int idx = 0; idx<n; idx++) a[idx] = a[idx] + b; } void main(){ CUDA Program... global void increment_gpu(float *a, float b, int N){ increment_cpu(a, b, N); int idx = blockidx.x * blockdim.x + threadidx.x; } if (idx < N) a[idx] = a[idx] + b; } void main(){.. dim3 dimblock (blocksize); dim3 dimgrid( ceil( N / (float)blocksize) ); increment_gpu<<<dimgrid, dimblock>>>(a, b, N); }

Example : Increment Array Elements N 개의요소를가진벡터 a 에 b 더하기 N=16, blockdim = 4 라고가정하면 blockidx.x=0 blockdim.x=4 threadidx.x=0,1,2,3 idx=0,1,2,3 blockidx.x=1 blockdim.x=4 threadidx.x=0,1,2,3 idx=4,5,6,7 blockidx.x=2 blockdim.x=4 threadidx.x=0,1,2,3 idx=8,9,10,11 blockidx.x=3 blockdim.x=4 threadidx.x=0,1,2,3 idx=12,13,14,15 int idx = blockdim.x * blockidx.x + threadidx.x;

Neural Networks ( 인공 ) 신경회로망 인간의두뇌작용을신경세포들간의연결관계로모델링 인간의학습을모델링 기본작업 학습 (learning): 패턴부류에따라신경망의연결가중치조정 재생 (recall): 학습된가중치와입력벡터와의거리계산하여가장가까운클래스로분류 사람과같은학습능력 : 패턴분류, 인식, 최적화, 예측 응용분야 화상인식, 음성인식, 로봇제어등다양한인공지능분야에적용

Concept 생물학적인공신경망뉴런 X 1 핵 W 1 신경절 X 2.. W 2 f 세포체 Y = f(x) 수상돌기 X n W n X = Σ W 축색돌기 i X i f : 응답함수

Kinds of Neural Networks 입력형식학습방식신경회로망모델 지도학습 Hopfield network 이진입력 지도학습및비지도학습을결합한학습 Counterpropagation network 실수입력 비지도학습 지도학습 비지도학습 ART model Perceptron Multilayer Perceptron Competitive learning SOM

Multilayer Perceptron 1969 년 Minsky s attack 이후신경망연구침체 1986년이후 Rumelhart 등의연구에의해다층신경망의 error backpropagation 알고리즘완성 비선형 (non-linear) 문제를학습가능 신경망연구의비약적발전

Multilayer Perceptron Model i j(h) k x Σ net 1 σ o 1 Σ net 1 σ o 1 1 x 21 w 1 2 w 2 x Σ σ Σ σ 2 x w net 2 o 2 2 1 w net 2 o 2 2 22 2 w 2 2 3 x w x 23 Σ net σ 3 3 o Σ σ 3 3 net 3 o 3 2

What do I say?

GPU Operation 각 노드 에서의내적연산은입력벡터와웨이트벡터를축적함으로써행렬의곱연산으로변환가능

MLP Implementation

MLP Implementation

What is OpenMP? Open Multi-Processing 1997/08 FORTRAN 1.0 표준발표 1998/08 C/C++ 1.0 표준발표 2002/03 FORTRAN, C/C++ 2.0 표준발표 2005/05 C/C++/FORTRAN 통합 2.5 표준발표

Why OpenMP? GPU 로의잦은데이터전송에의한지연발생 대용량의데이터를생성하여데이터전송 대용량의데이터생성에오버헤드발생 멀티코어 cpu 를이용한병렬처리로오버헤드감소 소스의적은수정으로병렬처리가능

OpenMP Preference (later VS2005)

Model

Fork-Join Model

Parallel Section(for) #pragma omp for [clause [clause ] ] { for loop }

Parallel Section(sections) #pragma omp sections [clause [clause ] ] { [#progma omp section] structured code block }

Using Neural Network #pragma omp parallel sections{ #pragma omp section{ int y1 = y + count*input_width/(mwidth-10); int x1 = x + (count*input_width)%(mwidth-10); GetConfigMatrix( x1, y1, input1); } 중략 #pragma omp section{ int y4 = y + (count+3)*input_width/(mwidth-10); int x4 = x + ((count+3)*input_width)%(mwidth- 10); GetConfigMatrix(x4, y4, input4); } }

Experimental Results

Time Complexity

Time Complexity

참고논문 GPU implementation of neural networks, International Journal of Pattern Recognition, Vol. 37, Issue 6, Pages 1311-1314, 2004, SCIE CUDA 와 OpenMP 를이용한신경망구현, Korea Computer Congress 2008(2008 한국컴퓨터종합학술대회 ), 발표예정