SlideShare a Scribd company logo
1 of 54
CUDA
Ice breaking
bt22dr@gmail.com
빅 데이터 분석에서



왜   CUDA가 필요할까?
추천 시스템
데이터 마이닝
통계 분석
  …
추천 시스템
데이터 마이닝
통계 분석
  …
추천 시스템
데이터 마이닝
통계 분석
  …
추천 시스템
데이터 마이닝
통계 분석
  …




          !!!
Back of the envelope calculation

n = 10000
Back of the envelope calculation

n = 10000
출처 : The Free Lunch Is Over
• Evolution in performance of processor designs




출처 : Matrix Computations onGraphics Processors andClusters of GPUs
VRAM


             그래픽 카드

GPGPU
          고정-함수 그래픽스
            파이프라인



        Programmable 그래픽스       CUDA
              파이프라인



         Unified programmable
        processor array 그래픽스
               파이프라인
vs

•   Sequential, complex data dependency    •   최적의 floating-point throughput을 뽑
    를 가진 code 수행에 적합                           아내기 위해 arithmetic unit 부분 확장
•   트랜지스터의 많은 부분을                          •   memory bandwidth가 훨씬 크다
     –   control logic : 비순차실행 제어, 분기 예    •   high degree of data parallelism
         측 핸들링                                 (embarrassingly parallel)
     –   cache memory : reference의 지역성 이
                                           •   분기가 없고, 메모리 트랜젝션당 계산
         용, 메모리 접근 지연 감춤
                                               량이 많은 계산 집약적인 프로그램
CPU vs GPU Performance in GFLOPS and Memory Bandwidth
CPU                                     GPU
• Vector Processor                      • CUDA
   – MMX (MultiMedia eXtension)
   – SSE (Streaming SIMD Extensions)
   – AVX (Advanced Vector Extensions)
CPU                                     GPU
• Vector Processor                      • CUDA
   – MMX (MultiMedia eXtension)
   – SSE (Streaming SIMD Extensions)
   – AVX (Advanced Vector Extensions)
CUDA
    • Compute Unified Device Architecture
         – NVIDIA’s parallel computing architecture
         – computing engine in Nvidia graphics processing units
           (GPUs) that is accessible to software developers
           through variants of industry standard programming
           languages.

    • GPU를 이용한 범용적인 프로그램을 개발할 수 있
      도록 ‘프로그램 모델’, ‘프로그램 언어’, ‘컴파일
      러’, ‘라이브러리’, ‘디버거’, ‘프로파일러’를 제공하
      는 통합 환경



출처 : http://en.wikipedia.org/wiki/CUDA
CUDA




출처 : NVIDIA Fermi Compute Architecture Whitepaper
CUDA




출처 : NVIDIA Fermi Compute Architecture Whitepaper
CUDA




출처 : NVIDIA Fermi Compute Architecture Whitepaper
CUDA




출처 : NVIDIA Fermi Compute Architecture Whitepaper
CUDA




출처 : NVIDIA Fermi Compute Architecture Whitepaper
CUDA
CUDA
CUDA




출처 : http://www.cse.shirazu.ac.ir/~azimi/gpu89/lectures/07-MatMult-Basic.pdf
CUDA




출처 : http://www.cse.shirazu.ac.ir/~azimi/gpu89/lectures/07-MatMult-Basic.pdf
CUDA
• CUDA 적용 판단 기준
 – Host – Device 간 데이터 전송 시간
 – CGMA(compute to global memory access)
 – 알고리즘 or 연산 자체의 병렬성 (하노이탑?)

            데이터 전                  데이터 전
             송시간                    송시간


             GPU를                   GPU를
     CPU를                   CPU를
            이용한 처                  이용한 처
     이용한                    이용한
             리시간                    리시간
    처리시간                   처리시간

                                   데이터 전
            데이터 전                   송시간
             송시간
스레드 블록 아키텍처
스레드 블록 아키텍처
• 워프
• 자동 확장 가능성
메모리 아키텍처
• 레지스터
 – 32bit 크기
 – 1 사이클로 읽기/쓰기
 – 커널의 로컬 변수 사용 시 할당

• 로컬 메모리
 – 너무 많은 레지스터 사용 시
 – 프로세서 외부 DRAM 사용
 – 수학 함수 사용시
메모리 아키텍처
• 공유 메모리
 – 온 칩 프로세서 메모리
 – SM 내에서 동일 블록 안에서만 공유

• 글로벌 메모리
 – 비디오 카드에 장착된 DRAM
 – 메모리 액세스 패턴에 따라 성능 편차 크다

• 상수 메모리
 – 프로세서 외부 DRAM 사용
 – 재사용 시 레지스터와 동일한 속도로 접근 가능
 – 디바이스 영역에서는 읽기만 가능
메모리 아키텍처
• CUDA 메모리 특성
         느리다                                    빠르다

엑세스 속도   글로벌 메모리   로컬 메모리    공유 메모리     레지스터




         작다                                      크다

메모리 용량    레지스터     공유 메모리   로컬 메모리    글로벌 메모리




         좁다                                      넓다

엑세스 범위    레지스터     로컬 메모리   공유 메모리    글로벌 메모리
메모리 아키텍처
CUDA를 분산 환경에 적용하기
• 기존의 접근법
 – Mars, DisMaRC
 – GPU 기반의 개인용 슈퍼컴퓨팅 플랫폼


• 개선된 연동 방법

• 극단적인 성능 향상 효과와 내재된 맹점
CUDA–MapReduce 관련 연구
• Mars (http://www.cse.ust.hk/gpuqp/Mars.html)
    –   GPL 라이선스
    –   공유 메모리 환경 (단일노드)
    –   GPU상에서 MapReduce 구현 ( ↔ Phoenix)
    –   Work flow of Mars on the GPU




                                                 (DisMaRC)
CUDA–MapReduce 관련 연구
• DisMaRC (http://www.cs.utexas.edu/~karthikm/dismarc.pdf)
    – N개의 GPU로 구성되는 다중 노드 환경
    – 분산 메모리 환경, 노드 간 통신은 MPI 사용
    – Control Flow of DisMaRC




    – 공개된 구현물 없음
CUDA-MapReduce 연동
CUDA-MapReduce 연동
CUDA-MapReduce 연동
CUDA-MapReduce 연동
• 성능 향상 효과
분산/병렬 컴퓨팅
  • 공유 메모리 구조                        • 분산 메모리 구조           • 하이브리드 구조




출처 : https://computing.llnl.gov/tutorials/parallel_comp/
분산/병렬 컴퓨팅
  호모지니어스 멀티코어                                 헤테로지니어스 멀티코어
                        1                                              1
   speedup   1                       2 . 91   speedup   2                             4 . 21
                 0 .3   0 . 7 / 16                          0 .3 / 2       0 .7 / 8




출처 : 프로그래머가 몰랐던 멀티코어 CPU 이야기
참고자료
• NVIDIA’s Next Generation CUDATM Compute
  Architecture: Fermi (Whitepaper)
• NVIDIA CUDA C Programming Guide (Version 4.0)
• 대규모 병렬 프로세서 프로그래밍 (David B. Kirk, Wen-
  mei W. Hwu)
• CUDA 병렬 프로그래밍 (정영훈)
• CUDA Parallel Programming (유현곤)
• 프로그래머가 몰랐던 멀티코어 CPU 이야기 (김민장)

More Related Content

What's hot

Python의 계산성능 향상을 위해 Fortran, C, CUDA-C, OpenCL-C 코드들과 연동하기
Python의 계산성능 향상을 위해 Fortran, C, CUDA-C, OpenCL-C 코드들과 연동하기Python의 계산성능 향상을 위해 Fortran, C, CUDA-C, OpenCL-C 코드들과 연동하기
Python의 계산성능 향상을 위해 Fortran, C, CUDA-C, OpenCL-C 코드들과 연동하기Ki-Hwan Kim
 
Compute shader DX11
Compute shader DX11Compute shader DX11
Compute shader DX11민웅 이
 
이기종 멀티코어 기반의 Open cv 응용 사례 및 효율적인 어플리케이션 디자인
이기종 멀티코어 기반의 Open cv 응용 사례 및 효율적인 어플리케이션 디자인이기종 멀티코어 기반의 Open cv 응용 사례 및 효율적인 어플리케이션 디자인
이기종 멀티코어 기반의 Open cv 응용 사례 및 효율적인 어플리케이션 디자인Seunghwa Song
 
게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPUYEONG-CHEON YOU
 
Introduction to Parallel Programming
Introduction to Parallel ProgrammingIntroduction to Parallel Programming
Introduction to Parallel ProgrammingUNIST
 
GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리
GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리
GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리YEONG-CHEON YOU
 
박기헌 NDC12 초보 클라이언트 프로그래머의 병렬 프로그래밍 도전기
박기헌 NDC12 초보 클라이언트 프로그래머의 병렬 프로그래밍 도전기박기헌 NDC12 초보 클라이언트 프로그래머의 병렬 프로그래밍 도전기
박기헌 NDC12 초보 클라이언트 프로그래머의 병렬 프로그래밍 도전기Kiheon Park
 
(2013 DEVIEW) 멀티쓰레드 프로그래밍이 왜이리 힘드나요?
(2013 DEVIEW) 멀티쓰레드 프로그래밍이  왜이리 힘드나요? (2013 DEVIEW) 멀티쓰레드 프로그래밍이  왜이리 힘드나요?
(2013 DEVIEW) 멀티쓰레드 프로그래밍이 왜이리 힘드나요? 내훈 정
 
CUDA를 게임 프로젝트에 적용하기
CUDA를 게임 프로젝트에 적용하기CUDA를 게임 프로젝트에 적용하기
CUDA를 게임 프로젝트에 적용하기YEONG-CHEON YOU
 
Compute shader
Compute shaderCompute shader
Compute shaderQooJuice
 
[조진현]Kgc2012 c++amp
[조진현]Kgc2012 c++amp[조진현]Kgc2012 c++amp
[조진현]Kgc2012 c++amp진현 조
 
[2B7]시즌2 멀티쓰레드프로그래밍이 왜 이리 힘드나요
[2B7]시즌2 멀티쓰레드프로그래밍이 왜 이리 힘드나요[2B7]시즌2 멀티쓰레드프로그래밍이 왜 이리 힘드나요
[2B7]시즌2 멀티쓰레드프로그래밍이 왜 이리 힘드나요NAVER D2
 
Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이 왜 이리 힘드나요? (Lock-free에서 Transactional Memory까지)
Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이  왜 이리 힘드나요?  (Lock-free에서 Transactional Memory까지)Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이  왜 이리 힘드나요?  (Lock-free에서 Transactional Memory까지)
Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이 왜 이리 힘드나요? (Lock-free에서 Transactional Memory까지)내훈 정
 
[조진현] [Kgc2011]direct x11 이야기
[조진현] [Kgc2011]direct x11 이야기[조진현] [Kgc2011]direct x11 이야기
[조진현] [Kgc2011]direct x11 이야기진현 조
 
Azure로 MMO게임 서비스하기
Azure로 MMO게임 서비스하기Azure로 MMO게임 서비스하기
Azure로 MMO게임 서비스하기YEONG-CHEON YOU
 
[2D7]레기온즈로 살펴보는 확장 가능한 게임서버의 구현
[2D7]레기온즈로 살펴보는 확장 가능한 게임서버의 구현[2D7]레기온즈로 살펴보는 확장 가능한 게임서버의 구현
[2D7]레기온즈로 살펴보는 확장 가능한 게임서버의 구현NAVER D2
 
[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례
[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례
[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례BJ Jang
 

What's hot (20)

Python의 계산성능 향상을 위해 Fortran, C, CUDA-C, OpenCL-C 코드들과 연동하기
Python의 계산성능 향상을 위해 Fortran, C, CUDA-C, OpenCL-C 코드들과 연동하기Python의 계산성능 향상을 위해 Fortran, C, CUDA-C, OpenCL-C 코드들과 연동하기
Python의 계산성능 향상을 위해 Fortran, C, CUDA-C, OpenCL-C 코드들과 연동하기
 
Compute shader DX11
Compute shader DX11Compute shader DX11
Compute shader DX11
 
이기종 멀티코어 기반의 Open cv 응용 사례 및 효율적인 어플리케이션 디자인
이기종 멀티코어 기반의 Open cv 응용 사례 및 효율적인 어플리케이션 디자인이기종 멀티코어 기반의 Open cv 응용 사례 및 효율적인 어플리케이션 디자인
이기종 멀티코어 기반의 Open cv 응용 사례 및 효율적인 어플리케이션 디자인
 
게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU
 
Introduction to Parallel Programming
Introduction to Parallel ProgrammingIntroduction to Parallel Programming
Introduction to Parallel Programming
 
GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리
GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리
GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리
 
박기헌 NDC12 초보 클라이언트 프로그래머의 병렬 프로그래밍 도전기
박기헌 NDC12 초보 클라이언트 프로그래머의 병렬 프로그래밍 도전기박기헌 NDC12 초보 클라이언트 프로그래머의 병렬 프로그래밍 도전기
박기헌 NDC12 초보 클라이언트 프로그래머의 병렬 프로그래밍 도전기
 
(2013 DEVIEW) 멀티쓰레드 프로그래밍이 왜이리 힘드나요?
(2013 DEVIEW) 멀티쓰레드 프로그래밍이  왜이리 힘드나요? (2013 DEVIEW) 멀티쓰레드 프로그래밍이  왜이리 힘드나요?
(2013 DEVIEW) 멀티쓰레드 프로그래밍이 왜이리 힘드나요?
 
CUDA를 게임 프로젝트에 적용하기
CUDA를 게임 프로젝트에 적용하기CUDA를 게임 프로젝트에 적용하기
CUDA를 게임 프로젝트에 적용하기
 
Compute shader
Compute shaderCompute shader
Compute shader
 
pyOpenCL 입문
pyOpenCL 입문pyOpenCL 입문
pyOpenCL 입문
 
Ai based on gpu
Ai based on gpuAi based on gpu
Ai based on gpu
 
[조진현]Kgc2012 c++amp
[조진현]Kgc2012 c++amp[조진현]Kgc2012 c++amp
[조진현]Kgc2012 c++amp
 
[2B7]시즌2 멀티쓰레드프로그래밍이 왜 이리 힘드나요
[2B7]시즌2 멀티쓰레드프로그래밍이 왜 이리 힘드나요[2B7]시즌2 멀티쓰레드프로그래밍이 왜 이리 힘드나요
[2B7]시즌2 멀티쓰레드프로그래밍이 왜 이리 힘드나요
 
Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이 왜 이리 힘드나요? (Lock-free에서 Transactional Memory까지)
Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이  왜 이리 힘드나요?  (Lock-free에서 Transactional Memory까지)Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이  왜 이리 힘드나요?  (Lock-free에서 Transactional Memory까지)
Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이 왜 이리 힘드나요? (Lock-free에서 Transactional Memory까지)
 
[조진현] [Kgc2011]direct x11 이야기
[조진현] [Kgc2011]direct x11 이야기[조진현] [Kgc2011]direct x11 이야기
[조진현] [Kgc2011]direct x11 이야기
 
Azure로 MMO게임 서비스하기
Azure로 MMO게임 서비스하기Azure로 MMO게임 서비스하기
Azure로 MMO게임 서비스하기
 
Nvidia architecture
Nvidia architectureNvidia architecture
Nvidia architecture
 
[2D7]레기온즈로 살펴보는 확장 가능한 게임서버의 구현
[2D7]레기온즈로 살펴보는 확장 가능한 게임서버의 구현[2D7]레기온즈로 살펴보는 확장 가능한 게임서버의 구현
[2D7]레기온즈로 살펴보는 확장 가능한 게임서버의 구현
 
[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례
[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례
[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례
 

Viewers also liked

eSafety: pasa-hitz seguruen erabilpena
eSafety:  pasa-hitz seguruen erabilpenaeSafety:  pasa-hitz seguruen erabilpena
eSafety: pasa-hitz seguruen erabilpenaEASO Politeknikoa
 
Scriptura Praeteriti
Scriptura PraeteritiScriptura Praeteriti
Scriptura Praeteritijuudiith01
 
10 logical clocks
10 logical clocks10 logical clocks
10 logical clocksThuy Hu
 
소셜미디어 사서직 취업동향
소셜미디어 사서직 취업동향소셜미디어 사서직 취업동향
소셜미디어 사서직 취업동향Gil Su Jang
 
Kuluçka Prensibiyle Düşünme Tekniği
Kuluçka Prensibiyle Düşünme TekniğiKuluçka Prensibiyle Düşünme Tekniği
Kuluçka Prensibiyle Düşünme TekniğiFikirMarketim
 
E safety in the school management system
E safety  in the school management systemE safety  in the school management system
E safety in the school management systemEASO Politeknikoa
 
Nasıl Fikirci Olunur
Nasıl Fikirci OlunurNasıl Fikirci Olunur
Nasıl Fikirci OlunurFikirMarketim
 
Regression & Classification
Regression & ClassificationRegression & Classification
Regression & Classification주영 송
 
Dig comporg arantzabela_ikastola
Dig comporg arantzabela_ikastolaDig comporg arantzabela_ikastola
Dig comporg arantzabela_ikastolaEASO Politeknikoa
 
Prestakuntza eSafety irakasleen prestakuntza plana 2014 2015
Prestakuntza eSafety irakasleen prestakuntza plana 2014 2015 Prestakuntza eSafety irakasleen prestakuntza plana 2014 2015
Prestakuntza eSafety irakasleen prestakuntza plana 2014 2015 EASO Politeknikoa
 
Casas madera criterios_medioambientales
Casas madera criterios_medioambientalesCasas madera criterios_medioambientales
Casas madera criterios_medioambientalesEASO Politeknikoa
 
Scriptura Praeteriti
Scriptura PraeteritiScriptura Praeteriti
Scriptura Praeteritijuudiith01
 
Cloud burst tutorial
Cloud burst tutorialCloud burst tutorial
Cloud burst tutorial주영 송
 
Slideshare powerpoint
Slideshare powerpointSlideshare powerpoint
Slideshare powerpointJack Matthews
 

Viewers also liked (20)

eSafety: pasa-hitz seguruen erabilpena
eSafety:  pasa-hitz seguruen erabilpenaeSafety:  pasa-hitz seguruen erabilpena
eSafety: pasa-hitz seguruen erabilpena
 
Concurso diseno muebles
Concurso diseno mueblesConcurso diseno muebles
Concurso diseno muebles
 
Mobiliario ecodisenado
Mobiliario ecodisenadoMobiliario ecodisenado
Mobiliario ecodisenado
 
Scriptura Praeteriti
Scriptura PraeteritiScriptura Praeteriti
Scriptura Praeteriti
 
10 logical clocks
10 logical clocks10 logical clocks
10 logical clocks
 
museum
museummuseum
museum
 
소셜미디어 사서직 취업동향
소셜미디어 사서직 취업동향소셜미디어 사서직 취업동향
소셜미디어 사서직 취업동향
 
Icbme 2011
Icbme 2011Icbme 2011
Icbme 2011
 
Dig comporg TKNIKA
Dig comporg TKNIKADig comporg TKNIKA
Dig comporg TKNIKA
 
Kuluçka Prensibiyle Düşünme Tekniği
Kuluçka Prensibiyle Düşünme TekniğiKuluçka Prensibiyle Düşünme Tekniği
Kuluçka Prensibiyle Düşünme Tekniği
 
E safety in the school management system
E safety  in the school management systemE safety  in the school management system
E safety in the school management system
 
Nasıl Fikirci Olunur
Nasıl Fikirci OlunurNasıl Fikirci Olunur
Nasıl Fikirci Olunur
 
Regression & Classification
Regression & ClassificationRegression & Classification
Regression & Classification
 
Beerlegend.by
Beerlegend.byBeerlegend.by
Beerlegend.by
 
Dig comporg arantzabela_ikastola
Dig comporg arantzabela_ikastolaDig comporg arantzabela_ikastola
Dig comporg arantzabela_ikastola
 
Prestakuntza eSafety irakasleen prestakuntza plana 2014 2015
Prestakuntza eSafety irakasleen prestakuntza plana 2014 2015 Prestakuntza eSafety irakasleen prestakuntza plana 2014 2015
Prestakuntza eSafety irakasleen prestakuntza plana 2014 2015
 
Casas madera criterios_medioambientales
Casas madera criterios_medioambientalesCasas madera criterios_medioambientales
Casas madera criterios_medioambientales
 
Scriptura Praeteriti
Scriptura PraeteritiScriptura Praeteriti
Scriptura Praeteriti
 
Cloud burst tutorial
Cloud burst tutorialCloud burst tutorial
Cloud burst tutorial
 
Slideshare powerpoint
Slideshare powerpointSlideshare powerpoint
Slideshare powerpoint
 

Similar to Cuda intro

Lablupconf session7 People don't know what they want until LABLUP show it to ...
Lablupconf session7 People don't know what they want until LABLUP show it to ...Lablupconf session7 People don't know what they want until LABLUP show it to ...
Lablupconf session7 People don't know what they want until LABLUP show it to ...Lablup Inc.
 
5일차.map reduce 활용
5일차.map reduce 활용5일차.map reduce 활용
5일차.map reduce 활용주영 송
 
[OpenInfra Days Korea 2018] Day 2 - E5: GPU on Kubernetes
[OpenInfra Days Korea 2018] Day 2 - E5: GPU on Kubernetes[OpenInfra Days Korea 2018] Day 2 - E5: GPU on Kubernetes
[OpenInfra Days Korea 2018] Day 2 - E5: GPU on KubernetesOpenStack Korea Community
 
Ibm과 nvidia가 제안하는 딥러닝 플랫폼
Ibm과 nvidia가 제안하는 딥러닝 플랫폼Ibm과 nvidia가 제안하는 딥러닝 플랫폼
Ibm과 nvidia가 제안하는 딥러닝 플랫폼ibmrep
 
[IBM 김상훈] AI 최적화 플랫폼 IBM AC922 소개와 활용 사례
[IBM 김상훈] AI 최적화 플랫폼 IBM AC922 소개와 활용 사례[IBM 김상훈] AI 최적화 플랫폼 IBM AC922 소개와 활용 사례
[IBM 김상훈] AI 최적화 플랫폼 IBM AC922 소개와 활용 사례(Joe), Sanghun Kim
 
SQL-on-Hadoop with Apache Tajo, and application case of SK Telecom
SQL-on-Hadoop with Apache Tajo,  and application case of SK TelecomSQL-on-Hadoop with Apache Tajo,  and application case of SK Telecom
SQL-on-Hadoop with Apache Tajo, and application case of SK TelecomGruter
 
Theano 와 Caffe 실습
Theano 와 Caffe 실습 Theano 와 Caffe 실습
Theano 와 Caffe 실습 정주 김
 
091106kofpublic 091108170852-phpapp02 (번역본)
091106kofpublic 091108170852-phpapp02 (번역본)091106kofpublic 091108170852-phpapp02 (번역본)
091106kofpublic 091108170852-phpapp02 (번역본)Taegil Heo
 
가상화와 컨테이너의 이해_20230117.pptx
가상화와 컨테이너의 이해_20230117.pptx가상화와 컨테이너의 이해_20230117.pptx
가상화와 컨테이너의 이해_20230117.pptxByungho Lee
 
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: Tajo와 SQL-on-Hadoop
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: Tajo와 SQL-on-HadoopGRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: Tajo와 SQL-on-Hadoop
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: Tajo와 SQL-on-HadoopGruter
 
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018devCAT Studio, NEXON
 
Cloud based NGS framework
Cloud based NGS frameworkCloud based NGS framework
Cloud based NGS frameworkHyungyong Kim
 
서버와 클라이언트 같은 엔진 사용하기
서버와 클라이언트 같은 엔진 사용하기서버와 클라이언트 같은 엔진 사용하기
서버와 클라이언트 같은 엔진 사용하기YEONG-CHEON YOU
 
진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전
진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전
진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전Sukwoo Lee
 
google dinos
google dinosgoogle dinos
google dinosjuhyun
 
Ic922 ac922 e dm_202008
Ic922 ac922 e dm_202008Ic922 ac922 e dm_202008
Ic922 ac922 e dm_202008jiyoungkim158
 
모바일 게임 최적화
모바일 게임 최적화 모바일 게임 최적화
모바일 게임 최적화 tartist
 
Open source Embedded systems
Open source Embedded systemsOpen source Embedded systems
Open source Embedded systemsH K Yoon
 
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발Jeongkyu Shin
 

Similar to Cuda intro (20)

Lablupconf session7 People don't know what they want until LABLUP show it to ...
Lablupconf session7 People don't know what they want until LABLUP show it to ...Lablupconf session7 People don't know what they want until LABLUP show it to ...
Lablupconf session7 People don't know what they want until LABLUP show it to ...
 
5일차.map reduce 활용
5일차.map reduce 활용5일차.map reduce 활용
5일차.map reduce 활용
 
[OpenInfra Days Korea 2018] Day 2 - E5: GPU on Kubernetes
[OpenInfra Days Korea 2018] Day 2 - E5: GPU on Kubernetes[OpenInfra Days Korea 2018] Day 2 - E5: GPU on Kubernetes
[OpenInfra Days Korea 2018] Day 2 - E5: GPU on Kubernetes
 
Ibm과 nvidia가 제안하는 딥러닝 플랫폼
Ibm과 nvidia가 제안하는 딥러닝 플랫폼Ibm과 nvidia가 제안하는 딥러닝 플랫폼
Ibm과 nvidia가 제안하는 딥러닝 플랫폼
 
[IBM 김상훈] AI 최적화 플랫폼 IBM AC922 소개와 활용 사례
[IBM 김상훈] AI 최적화 플랫폼 IBM AC922 소개와 활용 사례[IBM 김상훈] AI 최적화 플랫폼 IBM AC922 소개와 활용 사례
[IBM 김상훈] AI 최적화 플랫폼 IBM AC922 소개와 활용 사례
 
SQL-on-Hadoop with Apache Tajo, and application case of SK Telecom
SQL-on-Hadoop with Apache Tajo,  and application case of SK TelecomSQL-on-Hadoop with Apache Tajo,  and application case of SK Telecom
SQL-on-Hadoop with Apache Tajo, and application case of SK Telecom
 
Theano 와 Caffe 실습
Theano 와 Caffe 실습 Theano 와 Caffe 실습
Theano 와 Caffe 실습
 
091106kofpublic 091108170852-phpapp02 (번역본)
091106kofpublic 091108170852-phpapp02 (번역본)091106kofpublic 091108170852-phpapp02 (번역본)
091106kofpublic 091108170852-phpapp02 (번역본)
 
가상화와 컨테이너의 이해_20230117.pptx
가상화와 컨테이너의 이해_20230117.pptx가상화와 컨테이너의 이해_20230117.pptx
가상화와 컨테이너의 이해_20230117.pptx
 
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: Tajo와 SQL-on-Hadoop
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: Tajo와 SQL-on-HadoopGRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: Tajo와 SQL-on-Hadoop
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: Tajo와 SQL-on-Hadoop
 
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
 
Cloud based NGS framework
Cloud based NGS frameworkCloud based NGS framework
Cloud based NGS framework
 
서버와 클라이언트 같은 엔진 사용하기
서버와 클라이언트 같은 엔진 사용하기서버와 클라이언트 같은 엔진 사용하기
서버와 클라이언트 같은 엔진 사용하기
 
진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전
진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전
진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전
 
google dinos
google dinosgoogle dinos
google dinos
 
Ic922 ac922 e dm_202008
Ic922 ac922 e dm_202008Ic922 ac922 e dm_202008
Ic922 ac922 e dm_202008
 
모바일 게임 최적화
모바일 게임 최적화 모바일 게임 최적화
모바일 게임 최적화
 
Open source Embedded systems
Open source Embedded systemsOpen source Embedded systems
Open source Embedded systems
 
HPC on IBM Cloud
HPC on IBM CloudHPC on IBM Cloud
HPC on IBM Cloud
 
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
 

More from 주영 송

MapReduce 실행 샘플 (K-mer Counting, K-means Clustering)
MapReduce 실행 샘플 (K-mer Counting, K-means Clustering)MapReduce 실행 샘플 (K-mer Counting, K-means Clustering)
MapReduce 실행 샘플 (K-mer Counting, K-means Clustering)주영 송
 
SNA & R (20121011)
SNA & R (20121011)SNA & R (20121011)
SNA & R (20121011)주영 송
 
Recommendation system 소개 (1)
Recommendation system 소개 (1)Recommendation system 소개 (1)
Recommendation system 소개 (1)주영 송
 
Cloud burst 소개
Cloud burst 소개Cloud burst 소개
Cloud burst 소개주영 송
 
Mongo db 활용 가이드 ch7
Mongo db 활용 가이드 ch7Mongo db 활용 가이드 ch7
Mongo db 활용 가이드 ch7주영 송
 

More from 주영 송 (9)

R_datamining
R_dataminingR_datamining
R_datamining
 
Giraph
GiraphGiraph
Giraph
 
Mahout
MahoutMahout
Mahout
 
MapReduce 실행 샘플 (K-mer Counting, K-means Clustering)
MapReduce 실행 샘플 (K-mer Counting, K-means Clustering)MapReduce 실행 샘플 (K-mer Counting, K-means Clustering)
MapReduce 실행 샘플 (K-mer Counting, K-means Clustering)
 
SNA & R (20121011)
SNA & R (20121011)SNA & R (20121011)
SNA & R (20121011)
 
Recommendation system 소개 (1)
Recommendation system 소개 (1)Recommendation system 소개 (1)
Recommendation system 소개 (1)
 
Cloud burst 소개
Cloud burst 소개Cloud burst 소개
Cloud burst 소개
 
R intro
R introR intro
R intro
 
Mongo db 활용 가이드 ch7
Mongo db 활용 가이드 ch7Mongo db 활용 가이드 ch7
Mongo db 활용 가이드 ch7
 

Cuda intro

  • 3.
  • 5. 빅 데이터 분석에서 왜 CUDA가 필요할까?
  • 10. Back of the envelope calculation n = 10000
  • 11. Back of the envelope calculation n = 10000
  • 12. 출처 : The Free Lunch Is Over
  • 13. • Evolution in performance of processor designs 출처 : Matrix Computations onGraphics Processors andClusters of GPUs
  • 14. VRAM 그래픽 카드 GPGPU 고정-함수 그래픽스 파이프라인 Programmable 그래픽스 CUDA 파이프라인 Unified programmable processor array 그래픽스 파이프라인
  • 15. vs • Sequential, complex data dependency • 최적의 floating-point throughput을 뽑 를 가진 code 수행에 적합 아내기 위해 arithmetic unit 부분 확장 • 트랜지스터의 많은 부분을 • memory bandwidth가 훨씬 크다 – control logic : 비순차실행 제어, 분기 예 • high degree of data parallelism 측 핸들링 (embarrassingly parallel) – cache memory : reference의 지역성 이 • 분기가 없고, 메모리 트랜젝션당 계산 용, 메모리 접근 지연 감춤 량이 많은 계산 집약적인 프로그램
  • 16. CPU vs GPU Performance in GFLOPS and Memory Bandwidth
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22. CPU GPU • Vector Processor • CUDA – MMX (MultiMedia eXtension) – SSE (Streaming SIMD Extensions) – AVX (Advanced Vector Extensions)
  • 23. CPU GPU • Vector Processor • CUDA – MMX (MultiMedia eXtension) – SSE (Streaming SIMD Extensions) – AVX (Advanced Vector Extensions)
  • 24.
  • 25. CUDA • Compute Unified Device Architecture – NVIDIA’s parallel computing architecture – computing engine in Nvidia graphics processing units (GPUs) that is accessible to software developers through variants of industry standard programming languages. • GPU를 이용한 범용적인 프로그램을 개발할 수 있 도록 ‘프로그램 모델’, ‘프로그램 언어’, ‘컴파일 러’, ‘라이브러리’, ‘디버거’, ‘프로파일러’를 제공하 는 통합 환경 출처 : http://en.wikipedia.org/wiki/CUDA
  • 26. CUDA 출처 : NVIDIA Fermi Compute Architecture Whitepaper
  • 27. CUDA 출처 : NVIDIA Fermi Compute Architecture Whitepaper
  • 28. CUDA 출처 : NVIDIA Fermi Compute Architecture Whitepaper
  • 29. CUDA 출처 : NVIDIA Fermi Compute Architecture Whitepaper
  • 30. CUDA 출처 : NVIDIA Fermi Compute Architecture Whitepaper
  • 31. CUDA
  • 32. CUDA
  • 35. CUDA • CUDA 적용 판단 기준 – Host – Device 간 데이터 전송 시간 – CGMA(compute to global memory access) – 알고리즘 or 연산 자체의 병렬성 (하노이탑?) 데이터 전 데이터 전 송시간 송시간 GPU를 GPU를 CPU를 CPU를 이용한 처 이용한 처 이용한 이용한 리시간 리시간 처리시간 처리시간 데이터 전 데이터 전 송시간 송시간
  • 37. 스레드 블록 아키텍처 • 워프 • 자동 확장 가능성
  • 38. 메모리 아키텍처 • 레지스터 – 32bit 크기 – 1 사이클로 읽기/쓰기 – 커널의 로컬 변수 사용 시 할당 • 로컬 메모리 – 너무 많은 레지스터 사용 시 – 프로세서 외부 DRAM 사용 – 수학 함수 사용시
  • 39. 메모리 아키텍처 • 공유 메모리 – 온 칩 프로세서 메모리 – SM 내에서 동일 블록 안에서만 공유 • 글로벌 메모리 – 비디오 카드에 장착된 DRAM – 메모리 액세스 패턴에 따라 성능 편차 크다 • 상수 메모리 – 프로세서 외부 DRAM 사용 – 재사용 시 레지스터와 동일한 속도로 접근 가능 – 디바이스 영역에서는 읽기만 가능
  • 40. 메모리 아키텍처 • CUDA 메모리 특성 느리다 빠르다 엑세스 속도 글로벌 메모리 로컬 메모리 공유 메모리 레지스터 작다 크다 메모리 용량 레지스터 공유 메모리 로컬 메모리 글로벌 메모리 좁다 넓다 엑세스 범위 레지스터 로컬 메모리 공유 메모리 글로벌 메모리
  • 42. CUDA를 분산 환경에 적용하기 • 기존의 접근법 – Mars, DisMaRC – GPU 기반의 개인용 슈퍼컴퓨팅 플랫폼 • 개선된 연동 방법 • 극단적인 성능 향상 효과와 내재된 맹점
  • 43. CUDA–MapReduce 관련 연구 • Mars (http://www.cse.ust.hk/gpuqp/Mars.html) – GPL 라이선스 – 공유 메모리 환경 (단일노드) – GPU상에서 MapReduce 구현 ( ↔ Phoenix) – Work flow of Mars on the GPU (DisMaRC)
  • 44. CUDA–MapReduce 관련 연구 • DisMaRC (http://www.cs.utexas.edu/~karthikm/dismarc.pdf) – N개의 GPU로 구성되는 다중 노드 환경 – 분산 메모리 환경, 노드 간 통신은 MPI 사용 – Control Flow of DisMaRC – 공개된 구현물 없음
  • 48.
  • 49.
  • 51. 분산/병렬 컴퓨팅 • 공유 메모리 구조 • 분산 메모리 구조 • 하이브리드 구조 출처 : https://computing.llnl.gov/tutorials/parallel_comp/
  • 52.
  • 53. 분산/병렬 컴퓨팅 호모지니어스 멀티코어 헤테로지니어스 멀티코어 1 1 speedup 1 2 . 91 speedup 2 4 . 21 0 .3 0 . 7 / 16 0 .3 / 2 0 .7 / 8 출처 : 프로그래머가 몰랐던 멀티코어 CPU 이야기
  • 54. 참고자료 • NVIDIA’s Next Generation CUDATM Compute Architecture: Fermi (Whitepaper) • NVIDIA CUDA C Programming Guide (Version 4.0) • 대규모 병렬 프로세서 프로그래밍 (David B. Kirk, Wen- mei W. Hwu) • CUDA 병렬 프로그래밍 (정영훈) • CUDA Parallel Programming (유현곤) • 프로그래머가 몰랐던 멀티코어 CPU 이야기 (김민장)