• 제목/요약/키워드: GPU Programming

검색결과 60건 처리시간 0.022초

최적화된 CUDA 소프트웨어 제작을 위한 프로그래밍 기법 분석 (Analysis of Programming Techniques for Creating Optimized CUDA Software)

  • 김성수;김동헌;우상규;임인성
    • 한국정보과학회논문지:컴퓨팅의 실제 및 레터
    • /
    • 제16권7호
    • /
    • pp.775-787
    • /
    • 2010
  • GPU(Graphics Processing Unit)는 범용 CPU와는 달리 다수코어 스트리밍 프로세서(manycore streaming processor) 형태로 특화되어 발전되어 왔으며, 최근 뛰어난 병렬 처리 연산 능력으로 인하여 점차 많은 영역에서 CPU의 역할을 대체하고 있다. 이러한 추세에 따라 최근 NVIDIA 사에서는 GPGPU(General Purpose GPU) 아키텍처인 CUDA(Compute Unified Device Architecture)를 발표하여 보다 유연한 GPU 프로그래밍 환경을 제공하고 있다. 일반적으로 CUDA API를 사용한 프로그래밍 작업시 GPU의 계산구조에 관한 여러 가지 요소들에 대한 특성을 정확히 파악해야 효율적인 병렬 소프트웨어를 개발할 수 있다. 본 논문에서는 다양한 실험과 시행착오를 통하여 획득한 CUDA 프로그래밍에 관한 최적화 기법에 대하여 설명하고, 그러한 방법들이 프로그램 수행의 효율에 어떠한 영향을 미치는지 알아본다. 특히 특정 예제 문제에 대하여 효과적인 계층 구조 메모리의 접근과 코어 활성화 비율(occupancy), 지연 감춤(latency hiding) 등과 같이 성능에 영향을 미치는 몇 가지 규칙을 실험을 통해 분석해봄으로써, 향후 CUDA를 기반으로 하는 효과적인 병렬 프로그래밍에 유용하게 활용할 수 있는 구체적인 방안을 제시한다.

평면 다물체 동역학 해석에서 GPU 병렬 프로그래밍의 계산효과 (Calculation Effect of GPU Parallel Programing for Planar Multibody System Dynamics)

  • 전철웅;손정현
    • 동력기계공학회지
    • /
    • 제16권4호
    • /
    • pp.12-16
    • /
    • 2012
  • In this paper, the equations of motions for planar multibody dynamics are established for considering the parallel programming based on GPU. Cartesian coordinates are used to formulate the equations of motion and implicit integration method called HHT-alpha is employed. Open chain multibody system is considered for computer simulation. CUDA toolkit is employed for establishing the GPU parallel programming. The exactness of the analysis is verified from the comparison with ADAMS. The results from parallel computing based on GPU are compared with the results from the sequential programming based on CPU in terms of calculation time. The multiple pendulum with bodies and joints is employed for the computer simulation. In the pendulum system that has 290 bodies, the parallel program indicates an improved efficiency of about 25.5 second(15.5% improvement). It is noted that the larger the size of system is, the time efficiency is better.

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배 정도 향상되었다.

고차 정확도 수치기법의 GPU 계산을 통한 효율적인 압축성 유동 해석 (EFFICIENT COMPUTATION OF COMPRESSIBLE FLOW BY HIGHER-ORDER METHOD ACCELERATED USING GPU)

  • 장태규;박진석;김종암
    • 한국전산유체공학회지
    • /
    • 제19권3호
    • /
    • pp.52-61
    • /
    • 2014
  • The present paper deals with the efficient computation of higher-order CFD methods for compressible flow using graphics processing units (GPU). The higher-order CFD methods, such as discontinuous Galerkin (DG) methods and correction procedure via reconstruction (CPR) methods, can realize arbitrary higher-order accuracy with compact stencil on unstructured mesh. However, they require much more computational costs compared to the widely used finite volume methods (FVM). Graphics processing unit, consisting of hundreds or thousands small cores, is apt to massive parallel computations of compressible flow based on the higher-order CFD methods and can reduce computational time greatly. Higher-order multi-dimensional limiting process (MLP) is applied for the robust control of numerical oscillations around shock discontinuity and implemented efficiently on GPU. The program is written and optimized in CUDA library offered from NVIDIA. The whole algorithms are implemented to guarantee accurate and efficient computations for parallel programming on shared-memory model of GPU. The extensive numerical experiments validates that the GPU successfully accelerates computing compressible flow using higher-order method.

FPGA와 GPU를 이용한 스테레오/다시점 변환 시스템 (Stereo-To-Multiview Conversion System Using FPGA and GPU Device)

  • 신홍창;이진환;이광순;허남호
    • 방송공학회논문지
    • /
    • 제19권5호
    • /
    • pp.616-626
    • /
    • 2014
  • 본 논문에서는 FPGA와 GPU를 이용한 실시간 스테레오 다시점 변환 시스템을 소개한다. 해당 시스템은 이종의 연산장치를 이용하며 그에 따라 크게 두 부분으로 나뉜다. 첫 번째 부분은 변이 추출 부분으로서 실시간 계산을 위해 FPGA기반으로 구현되었다. 기본적으로 DP(Dynamic programming) 기반의 스테레오 정합 방법을 통해 초기 변이 영상이 계산되며, 후처리를 통해 개선된다. 개선된 변이 영상은 USB3.0과 PCI-express를 통해 GPU 장치로 전송된다. 스테레오 입력 영상이 GPU장치로도 전송되면, 변이 영상의 변이 값을 이용하여 중간 시점에서의 영상을 합성한다. 생성된 시점 영상들은 무안경 다시점 3차원 디스플레이의 특성에 맞게 하나의 영상으로 화소 또는 부분화소 단위로 재배치되는 시점 다중화 과정을 거쳐 최종적으로 4K 무안경 다시점 디스플레이에 실시간으로 재생된다. 스테레오 정합을 제외한 나머지 연산은 모두 GPU에서 병렬처리된다

High-Performance Korean Morphological Analyzer Using the MapReduce Framework on the GPU

  • Cho, Shi-Won;Lee, Dong-Wook
    • Journal of Electrical Engineering and Technology
    • /
    • 제6권4호
    • /
    • pp.573-579
    • /
    • 2011
  • To meet the scalability and performance requirements of data analyses, which often involve voluminous data, efficient parallel or concurrent algorithms and frameworks are essential. We present a high-performance Korean morphological analyzer which employs the MapReduce framework on the graphics processing unit (GPU). MapReduce is a programming framework introduced by Google to aid the development of web search applications on a large number of central processing units (CPUs). GPUs are designed as a special-purpose co-processor. Their programming interfaces are typically formulated for graphics applications. Compared to CPUs, GPUs have greater computation power and memory bandwidth; however, GPUs are more difficult to program because of the design of their architectures. The performance of the Korean morphological analyzer using the MapReduce framework on the GPU is evaluated in comparison with the CPU-based model. The proposed Korean Morphological analyzer shows promising scalable performance on distributed computing with the GPU.

통합메모리 장치에서 CPU-GPU 데이터 전송성능 연구 (A Performance Study on CPU-GPU Data Transfers of Unified Memory Device)

  • 권오경;구기범
    • 정보처리학회논문지:컴퓨터 및 통신 시스템
    • /
    • 제11권5호
    • /
    • pp.133-138
    • /
    • 2022
  • 최근 고성능컴퓨팅, 인공지능 분야에서 GPU 장치 사용이 일반화되고 있지만, GPU 프로그래밍은 여전히 어렵게 여겨진다. 특히 호스트(host) 메모리와 GPU 메모리를 별도로 관리하기 때문에 성능과 편의성 방면에서 연구가 활발히 진행되고 있다. 이에 따라 여려가지 CPU-GPU 메모리 전송 방법들이 연구되고 있다. 한편 CPU와 GPU 및 통합메모리(Unified memory) 등 하나의 실리콘 패키지로 묶는 SoC(System on a Chip) 제품들이 최근에 많이 출시되고 있다. 본 연구는 이러한 통합메모리 장치에서 CPU, GPU 장치간 데이터를 사용하고 전송시 성능관련 비교를 하고자 한다. 기존 CPU내 호스트 메모리와 GPU 메모리가 분리된 환경과는 다른 특징을 보여준다. 여기서는 통합메모리 장치인 NVIDIA SoC칩들과 NVIDIA SMX 기반 V100 GPU 카드에서 CPU-GPU 간 데이터 전송 프로그래밍 기법별로 성능비교를 한다. 성능비교를 위해 워크로드는 HPC 분야의 수치계산에서 자주 사용하는 2차원 행렬 전치 커널이다. 실험을 통해 CPU-GPU 메모리 전송 프로그래밍 방법별 GPU 커널 성능차이, 페이지 잠긴 메모리와 페이지 가능 메모리를 사용했을 경우 전송 성능차이, 전체(Overall) 성능비교, 마지막으로 워크로드 크기별 성능비교를 하였다. 이를 통해 통합메모리칩인 NVIDIA Xavier에서 I/O 캐시일관성 지원을 통해 SoC 칩내 통합메모리에 대한 이점을 극대화 할 수 있음을 확인할 수 있었다.

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

GPU와 지역성을 이용한 행렬 곱셈 가속 (Matrix Multiplication Acceleration with GPU and Locality)

  • 권오영;이창묵
    • 한국정보통신학회:학술대회논문집
    • /
    • 한국해양정보통신학회 2009년도 추계학술대회
    • /
    • pp.902-903
    • /
    • 2009
  • 행렬 곱셈은 과학 및 공학분야에 다양하게 응용되고 있다. 행렬 곱셈의 경우 지역성을 활용하면 수행 성능을 크게 개선할 수 있다. GPU가 장착된 PC에서 CPU의 컴퓨팅 능력과 GPU의 컴퓨팅 능력을 같이 활용하여 행렬 곱셈을 가속하는 방법을 제시하였다. 제안된 방법이 GPU만을 사용하는 것보다 약 15%~30%의 성능을 향상시켰다.

  • PDF

GPU 프로그래밍 기법을 이용한 비사실적 랜더링 (Non-Photorealistic Rendering using GPU Programming Technique)

  • 블러르마 바트-오처;성경;김수균
    • 한국항행학회논문지
    • /
    • 제15권6호
    • /
    • pp.1228-1233
    • /
    • 2011
  • 컴퓨터 그래픽 기술 중 비사실적 랜더링 기술은 매년 발전을 거듭하고 있다. 비사실적 랜더링 기술은 일러스트, 애니메이션, 만화와 같은 예술적인 스타일에 영감을 받은 것입니다. 이러한 비사실적 랜더링 기술을 위한 많은 응용 프로그램들은 특히 애니메이션, 게임 산업 등에서 인기가 있다. 전통적인 컴퓨터 그래픽스에서는 비사실적 렌더링 기술에 많은 관심을 가지고 있지만, 많은 계산 시간을 요구하기 때문에 실시간으로 사용하지는않았다. 그러나 최근 몇 년 동안 비사실적 랜더링은 그래픽 가속기를 이용하여 훨씬 다양한 고급 랜더링 및 실시간 기술을 선보이고 있다. 본 논문은 비사실적 랜더링을 위한 GPU 프로그래밍 기법에 대해 설명한다.