메뉴 건너뛰기
.. 내서재 .. 알림
소속 기관/학교 인증
인증하면 논문, 학술자료 등을  무료로 열람할 수 있어요.
한국대학교, 누리자동차, 시립도서관 등 나의 기관을 확인해보세요
(국내 대학 90% 이상 구독 중)
로그인 회원가입 고객센터 ENG
주제분류

추천
검색

논문 기본 정보

자료유형
학위논문
저자정보

주진영 (서울대학교, 서울대학교 대학원)

발행연도
2014
저작권
서울대학교 논문은 저작권에 의해 보호받습니다.

이용수0

표지
AI에게 요청하기
추천
검색

이 논문의 연구 히스토리 (2)

초록· 키워드

오류제보하기
컴퓨터에서 계산은 중앙처리장치(CPU)에서 대부분 수행했다. 최근에 CPU의 계산을 돕는 추가장치를 부착한 컴퓨터들이 늘고 있다. 이러한 추가장치를 가속기라고 하는데 GPU, FPGA, Intel Xeon phi 등의 가속기가 있다. 가속기를 사용하여 연산을 수행하면, CPU만 사용하는 것보다 훨씬 많은 계산을 더 짧은 시간, 더 적은 전력으로 할 수 있다. 가속기를 장착한 컴퓨터를 이종 계산 시스템이라고 하는데, 슈퍼컴퓨팅 분야에서 이종 계산 시스템을 사용하는 것이 점점 대중화 되고 있는다. 이종 계산 시스템을 제대로 활용하기 위해서는 병령 프로그래밍을 해야하고, 이 때 가장 보편적인 사용하는 프로그래밍 모델이 OpenCL과 CUDA이다. CUDA는 NVIDIA에서 개발하여 NVIDIA GPU에서만 동작하는 프로그래밍 모델이다. OpenCL은 공개 병렬 프로그래밍 표준으로, Khronos group이 유지 및 관리하고 있다. 초기의 OpenCL은 CUDA와 유사했고, GPU라는 같은 가속기 구조를 목표로 했지만, 두 모델이 따로 발전하면서 다른 점이 많아졌다. 이것은 CUDA와 OpenCL 각각의 모델로 작성된 코드는 상호간의 변환이 어렵다는 의미다. 현재 두 프로그래밍 언어를 사용하는 많은 유저들이 있고, 많은 예제들이 있다. 그래서 두 언어 상호간의 소스 코드를 변환하는 것은 각각의 언어로 작성된 프로그램을 다른 언어로 변환하여 사용할 수 있기 때문에 의미 있는 일이 될 수 있다. 본 논문에서는 앞서 언급한 두 모델간의 공통점과 차이점을 분석하고, 모델 상호간의 자동 코드변환기의 구조와 구현방법을 소개한다. 또한, Rodinia, NVIDIA SDK, SNU NPB 등의 벤치마크를 통해 원본 코드와 변환된 코드간의 성능 차이가 거의 없음을 확인하였다.

목차

제1장 서론 1
제2장 관련연구 4
제3장 CUDA와 OpenCL 모델 비교 6
3.1 커널 코드 컴파일 8
3.2 커널 내의 Non-local 변수 9
3.3 local/shared 메모리 공간 9
3.4 constant 메모리 공간 12
3.5 통합 가상 주소 공간 13
3.6 확장 기능 14
3.7 Image 와 Texture 14
제4장 코드변환기 구현 16
4.1 양방향 변환의 공통점 16
4.2 OpenCL to CUDA 18
4.3 CUDA to OpenCL 21
제5장 실험결과 25
5.1 OpenCL to CUDA 26
5.2 CUDA to OpenCL 28
제6장 결론 32

최근 본 자료

전체보기

댓글(0)

0