• 제목/요약/키워드: GPU 프로그램

검색결과 73건 처리시간 0.021초

A Tool for On-the-fly Repairing of Atomicity Violation in GPU Program Execution

  • Lee, Keonpyo;Lee, Seongjin;Jun, Yong-Kee
    • 한국컴퓨터정보학회논문지
    • /
    • 제26권9호
    • /
    • pp.1-12
    • /
    • 2021
  • 본 논문은 GPU 프로그램의 메모리의 상태 및 접근사건과 배리어 위치 정보를 감시하고, 실제 메모리 쓰기를 배리어 영역 종료 직전에 발생시키거나 배리어 영역을 재수행시켜 원자성 위배를 수행 중에 수리하는 도구인 ARCAV (Atomatic Recovery of CUDA Atomicity violation)를 제시한다. 기존의 연구들은 Lock과 Sleep 명령어를 사용하여 원자성 위배를 진단 및 수리하도록 구현되었기 때문에 지원되는 명령어와 동기화 기법이 CPU (Central Processing Unit) 프로그램과 다른 GPU (Graphics Processing Unit) 프로그램에는 적용될 수 없었고, GPU 프로그램에서는 원자성 위배의 탐지에 대한 연구만 수행되었다. 제안하는 ARCAV는 GPU 프로그램의 실행모델에서 수행될 수 있도록 설계되어 스레드 구성과 메모리 계층에 무관하게 실세계에서 발생한 원자성 위배를 대표하는 네 가지 패턴의 원자성 위배를 실시간으로 탐지하고 수리할 수 있다. 실험 결과 동시에 실행되는 스레드 개수와 구성에 무관하게 일정한 오버헤드를 보였다. 원자성 위배를 프로그램 수행 중에 실시간으로 탐지하고 수리하기 위해 소요되는 오버헤드는 네 개의 실세계 GPU 커널에서 실험되었고, 원본 프로그램 대비 평균 2.1배의 수행시간으로 동작하였다.

CUDA programming environment을 활용한 Path-Integral Monte Carlo Simulation의 구현

  • 이화영;임은진
    • 한국산업정보학회:학술대회논문집
    • /
    • 한국산업정보학회 2009년도 춘계학술대회 미래 IT융합기술 및 전략
    • /
    • pp.196-199
    • /
    • 2009
  • 높아지는 Graphic Processing Unit (GPU)의 연산 성능과 GPU에서의 범용 프로그래밍을 위한 개발 환경의 개발, 보급으로 인해 GPU를 일반연산에 활용하는 연구가 활발히 진행되고 있다. 이와같이 일반 연산에 활용되고 있는 GPU로 nVidia Tesla와 AMD/ATI의 FireStream 들이 있다. 특수목적 연산 장치인 GPU를 일반 연산을 위해 프로그래밍하기 위해서는 그에 맞는 프로그램 개발 환경이 필요한데 nVidia에서 개발한 CUDA (Compute Unified Device Architecture) 환경은 자사의 GPU 프로그램 개발을 위해 제공되는 개발 환경이다. CUDA 개발 환경은 nVidia GPU 프로그래밍 뿐만 아니라 차세대 이종 병렬 프로그램 개발 환경의 공개 표준으로 논의되고 있는 OpenCL (Open Computing Language) 와 유사한 특징을 보일 것으로 예상되기 때문에 그 중요성은 특정 GPU 에만 국한되지 않는다. 본 논문에서는 경로 적분 몬테 카를로 (Path Integral Monte Carlo) 방법을 CUDA 개발 환경을 사용하여 nVidia GPU 상에서 병렬화한 결과를 제시하였다.

  • PDF

도시기상모델 CFD_NIMR의 GP-GPU 실행을 위한 병렬 프로그램의 구현 (GP-GPU based Parallelization for Urban Terrain Atmospheric Model CFD_NIMR)

  • 김영태;박혜자;최영진
    • 인터넷정보학회논문지
    • /
    • 제15권2호
    • /
    • pp.41-47
    • /
    • 2014
  • 본 논문은 도시기상모델인 전산유체역학모델(CFD_NIMR)을 GP-GPU에서 실행시키기 위해 CUDA Fortran 병렬프로그램을 구현하였다. GP-GPU는 원래 PCI 카드 형태의 그래픽 처리 장치이지만 저비용, 저전력으로 대량의 계산을 초고속으로 수행할 수 있는 일반 계산 가속기이다. 모델을 단일 Intel XEON 2.0 GHz CPU에서 실행한 결과와 Nvidia Tesla C1060 GPU에서 실행한 성능을 비교하였을 때 GP-GPU에서 15배 정도의 빠른 속도를 보였다. 또한 다중 CPU를 사용한 MPI 병렬프로그램과 비교한 경우에도 GP-GPU에서 보다 더 효율적인 성능을 보였다. 본 논문에서 제시한 프로그램 방식은 유사한 구조를 가진 수치모델을 GP-GPU 병렬 프로그램으로 구현하는데 쉽게 적용할 수 있을 것으로 기대한다.

GP-GPU의 캐시메모리를 활용하기 위한 병렬 블록 LU 분해 프로그램의 구현 (Implementation of parallel blocked LU decomposition program for utilizing cache memory on GP-GPUs)

  • 김영태;김두한;유명한
    • 인터넷정보학회논문지
    • /
    • 제14권6호
    • /
    • pp.41-47
    • /
    • 2013
  • GP-GPU는 그래픽 처리를 위한 GPU의 다중쓰레드를 일반 수치 계산에 활용하여 초고속으로 계산하는 장치이다. GP-GPU에서는 CPU의 캐시메모리와는 달리 다중쓰레드가 공유하는 공유메모리의 형태로 캐시메모리를 제공하며, 공유메모리는 사용자 프로그램에서 직접 제어할 수 있다. 본 연구에서는 GP-GPU의 캐시메모리를 사용하여 계산 성능을 향상시키기 위한 블록 구조의 병렬 LU 분해 프로그램을 구현하였다. Nvidia CUDA C로 구현된 병렬 블록 LU 분해 프로그램은 동일한 GP-GPU 상에서 일반 LU 분해 프로그램에 비교하여 7~8배 이상의 속도 개선을 보였다.

병렬 응용프로그램 실행 시 GPU 구조에 따른 성능 분석 (Performance Evaluation of the GPU Architecture Executing Parallel Applications)

  • 최홍준;김철홍
    • 한국콘텐츠학회논문지
    • /
    • 제12권5호
    • /
    • pp.10-21
    • /
    • 2012
  • 통합형셰이더 코어 구조 개발 이후 GPU는 그래픽스 전용 연산장치에서 범용 연산장치로 발달하고 있다. 특히, 병렬 응용 프로그램들은 병렬화된 하드웨어 구조를 효과적으로 활용할 수 있기 때문에, GPU를 활용하여 병렬 응용프로그램들을 실행시키는 기법이 주목을 받고 있다. 하지만, 현재의 GPU 구조는 비그래픽스 응용프로그램을 실행하는데 있어서 병렬성을 충분히 확보하지 못하다는 한계를 가지고 있기 때문에, 이를 해결하기 위해 GPU 구조는 빠르게 변화하고 있다. 본 논문에서는 GPU 구조의 개발 방향을 살펴보기 위해, 비그래픽스 병렬 응용프로그램들을 수행하는 경우에 코어 개수 및 동작 주파수 등의 하드웨어구조에 따른 GPU의 성능을 상세히 분석하고자 한다. 실험 결과, 코어 개수가 30에서 192로 늘어나고 동작주파수가 325MHz에서 450MHz로 증가함에 따라 GPU 성능은 28.9%에서 125.8%, 4.4%에서 16.2% 각각 향상되는 반면 성능 향상 효율성은 감소하는 것을 볼 수 있다. 성능 향상 효율성 감소의 주된 원인은 향상된 연산 능력에 맞추어 증가된 데이터 요구를 메모리가 적절하게 처리하지 못하기 때문이다. 결과적으로 GPU의 성능 향상 효율성을 더욱 높이기 위해서는 연산 능력 향상과 더불어 시스템 자원들 또한 GPU 구조에 맞게 변경되어야 함을 구체적인 실험을 통해 알 수 있다.

응용프로그램 실행에 따른 CPU/GPU의 온도 및 컴퓨터 시스템의 에너지 효율성 분석 (Analysis of the CPU/GPU Temperature and Energy Efficiency depending on Executed Applications)

  • 최홍준;강승구;김종면;김철홍
    • 한국컴퓨터정보학회논문지
    • /
    • 제17권5호
    • /
    • pp.9-19
    • /
    • 2012
  • 전력 소모 증가와 칩 내부 온도 증가라는 문제점들로 인해 동작 주파수 증대를 통해 CPU의 성능을 향상시키는 기법은 점차 한계에 다다르고 있다. 이와 같은 상황에서, CPU의 작업량을 줄여주는 GPU를 활용하는 것은 컴퓨터 시스템의 성능을 향상시키기 위해 사용되는 대표적인 방안 중 하나이다. GPU는 그래픽 작업을 위해 개발된 프로세서로 기존에는 그래픽 작업들만을 전담으로 처리하여 왔지만, CUDA와 같이 GPU 자원을 쉽게 활용할 수 있는 기술이 점차 개발됨에 따라서 GPU를 범용 연산에 활용함으로써 고성능 컴퓨터 시스템을 구현하는 기법이 주목을 받고 있다. 본 논문에서는 다양한 응용프로그램들을 수행하는 경우에 CPU와 GPU가 동시에 활용되는 고성능 컴퓨터 시스템을 목표로, 시스템에서 발생하는 온도와 에너지 효율성을 상세하게 분석하고자 한다. 이를 통해, CPU와 GPU가 동시에 활용되는 컴퓨터 시스템에서 향후 발생 가능한 온도와 에너지 소비 측면에서의 문제점들을 제시하고자 한다. 온도 분석 결과를 살펴보면, GPU를 이용하여 응용프로그램을 수행하는 경우에는 CPU와 GPU의 온도가 동시에 모두 상승하는 것을 할 수 있다. 이와 달리, CPU를 이용하여 응용프로그램을 수행하는 경우에는 GPU의 온도는 거의 변화가 없이 유지되고, CPU의 온도만이 지속적으로 상승한다. 에너지 효율성 측면에서 살펴보면, GPU를 이용하는 것이 CPU를 이용하는 것과 비교하여 동일한 응용프로그램을 수행하는데 있어서 더 적은 에너지를 소비한다. 하지만, GPU는 CPU에 비해 더 많은 전력을 소모하기 때문에 1Wh의 에너지당 발생하는 온도는 CPU에 비해 GPU에서 훨씬 높게 나타난다.

GPU 성능 저하 해결을 위한 내부 자원 활용/비활용 상태 분석 (Analysis on the Active/Inactive Status of Computational Resources for Improving the Performance of the GPU)

  • 최홍준;손동오;김종면;김철홍
    • 한국콘텐츠학회논문지
    • /
    • 제15권7호
    • /
    • pp.1-11
    • /
    • 2015
  • 최신 고성능 컴퓨팅 시스템에서는, 대용량 병렬 연산을 효과적으로 처리할 수 있는 GPU의 우수한 연산 성능을 그래픽 처리 이외의 범용 작업에 활용하는 GPGPU 기술에 관한 연구가 활발하게 진행 중이다. 하지만 범용 응용프로그램의 특성이 GPU 구조에 최적화되어 있지 않기 때문에 범용 프로그램 수행 시 GPGPU는 GPU의 연산 자원을 효과적으로 활용하지 못하고 있다. 그러므로 본 논문에서는 GPGPU 기술을 사용하는 컴퓨팅 시스템의 성능을 보다 향상시킬 수 있는 GPU 연구에 대한 방향을 제시하고자 한다. 이를 위하여, 본 논문에서는 GPU 성능 저하 원인 분석을 수행한다. GPU 성능 저하 원인을 보다 명확하게 분류하고자 본 논문에서는 GPU 코어의 상태를 완전 활성화 상태, 불완전 활성화 상태, 유휴 상태, 메모리스톨 상태, 그리고 GPU 코어 스톨 상태 등 5가지로 정의하였다. 완전 활성화 상태를 제외한 모든 GPU 코어 상태들은 컴퓨팅 시스템의 성능 저하를 유발한다. 본 논문에서 성능 저하 원인을 찾고자 벤치마크 프로그램의 특성에 따라 각 GPU 코어 상태의 비율 변화를 측정하였다. 분석 결과에 따르면, 불완전 활성화 상태, 유휴 상태, 메모리 스톨 상태 그리고 GPU 코어 스톨 상태는 연산 자원 활용률 저하, 낮은 프로그램 병렬성, 높은 메모리 요청, 그리고 구조적 해저드에 의해 각각 유발된다.

3D 그래픽스 가속 하드웨어 기술 (Acceleration Hardware Technology of 3D Graphics)

  • 조승현;박성모;엄낙웅
    • 전자통신동향분석
    • /
    • 제22권5호
    • /
    • pp.69-77
    • /
    • 2007
  • 3D 그래픽스 관련 산업의 눈부신 성장은 GPU 기술의 발전을 기반으로 이루어졌다. GPU는 기존의 고정된 기능의 파이프라인을 벗어나 프로그램 가능한 형태로 발전하였으며 GPU의 프로그램 능력과 성능의 꾸준한 향상이 이루어지고 있다. 최근에는 GPU 내부의 연산 집중도의 불균형을 해결하기 위한 연구와 GPU의 연산능력을 다른 응용분야에 이용하기 위한 연구가 진행중에 있다. GPU를 이용한 3D 그래픽스 응용프로그램 개발을 위해서 산업 표준의 API들이 존재하는데 데스크톱용 API에서 필수 기능만을 골라 간략화한 모바일 기기용 프로파일 또한 정의되고 있다. 모바일 기기에 사용되는 GPU도 프로그램 가능한 구조로 진화하고 있으며 대중화되기 위해서는 전력소모를 낮추기 위한 노력이 필요하다.

작업 처리 단위 변화에 따른 GPU 성능과 메모리 접근 시간의 관계 분석 (Analysis of GPU Performance and Memory Efficiency according to Task Processing Units)

  • 손동오;심규연;김철홍
    • 스마트미디어저널
    • /
    • 제4권4호
    • /
    • pp.56-63
    • /
    • 2015
  • 최신 GPU는 프로세서 내부에 포함된 다수의 코어를 활용하여 높은 병렬처리가 가능하다. GPU의 높은 병렬성을 활용하는 기법 중 하나인 GPGPU 구조는 GPU에서 대부분의 CPU의 작업을 처리가 가능하게 해주며, GPU의 높은 병렬성과 하드웨어자원을 효과적으로 활용할 수 있다. 본 논문에서는 다양한 벤치마크 프로그램을 활용하여 CTA(Cooperative Thread Array) 할당 개수 변화에 따른 메모리 효율성과 성능을 분석하고자 한다. 실험결과, CTA 할당 개수 증가에 따라 다수의 벤치마크 프로그램에서 성능이 향상되었지만, 일부 벤치마크 프로그램에서는 CTA 할당 개수 증가에 따른 성능 향상이 발생하지 않았다. 이러한 이유로는 벤치마크 프로그램에서 생성된 CTA 개수가 적거나 동시에 수행할 수 있는 CTA 개수가 정해져 있기 때문으로 판단된다. 또한, 각 벤치마크 프로그램별로 메모리 채널 정체에 따른 메모리 스톨, 내부연결망 정체에 따른 메모리 스톨, 파이프라인의 메모리 단계에서 발생하는 스톨을 분석하여 성능과의 연관성을 파악하였다. 본 연구의 분석결과는 GPGPU 구조의 병렬성 및 메모리 효율성 향상을 위한 연구에 대한 정보로 활용될 것으로 기대된다.

OpenACC와 GPU를 이용한 3차원 파동 전파 모델링 (Three-dimensional Wave Propagation Modeling using OpenACC and GPU)

  • 김아름;이종우;하완수
    • 지구물리와물리탐사
    • /
    • 제20권2호
    • /
    • pp.72-77
    • /
    • 2017
  • 3차원 주파수 영역과 라플라스 영역 파동장을 얻기 위해 시간 영역에서 파동 전파 모델링을 하는 동시에 푸리에 변환과 라플라스 변환을 수행하였다. 이 과정에서 효율적인 계산을 위해 OpenACC와 GPU를 이용한 병렬 연산을 수행하였다. OpenACC를 이용하면 기존의 C, C++, Fortran 등 프로그래밍 언어에 간단한 지시어(directive)를 추가하여 GPU 연산 가속기를 사용할 수 있기 때문에 CUDA 또는 OpenCL과 같은 GPGPU 프로그래밍 언어를 배우지 않고도 GPU를 이용한 프로그래밍을 할 수 있다. OpenACC 프로그램은 GPU 메모리 공간 할당, 호스트와 디바이스 간의 데이터 복사 및 GPU 연산 과정을 자동으로 또는 사용자 정의에 따라 수행하게 된다. 수치 실험으로 OpenACC와 GPU를 사용한 3차원 파동 전파 모델링 프로그램과 단일 CPU 코어를 사용한 프로그램의 성능을 비교하였다. 상속도 모델과 SEG/EAGE 암염돔 속도 모델을 이용한 결과, OpenACC와 GPU를 사용한 경우 단일 CPU 코어를 사용하였을 때보다 계산 속도가 각각 53배와 30배 정도 향상되었다.