• 제목/요약/키워드: CUDA 라이브러리

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

GPU 병렬성을 이용한 문서 유사도 계산 성능 개선 (Improving the Performance of Document Similarity by using GPU Parallelism)

  • 박일남;배병걸;임은진;강승식
    • 정보처리학회논문지B
    • /
    • 제19B권4호
    • /
    • pp.243-248
    • /
    • 2012
  • 정보검색 분야에서 벡터 모델, 문서 클러스터링 등은 입력 문서 개수가 증가할수록 유사도 계산 속도가 시스템의 성능에 많은 영향을 미치고 있다. 본 논문에서는 문서 유사도 계산 성능을 향상시키기 위하여 유사도를 계산하는 연산을 CPU 대신에 GPU를 이용하는 CUDA 프레임워크에서 병렬처리 기법으로 구현하는 방법을 제안하였다. 이 방법은 보편적인 방식인 CPU 환경에서 구현했을 때와 비교할 때 최대 15배까지 성능이 향상되었다. 또한, 기존의 CUDA 라이브러리인 CUBLAS와 Thrust를 사용한 방법보다도 각각 5.2배, 3.4배의 성능 개선 효과가 있음을 확인하였다.

GPU용 연산 라이브러리 CUDA를 이용한 블록암호 고속 구현 (High-Speed Implementations of Block Ciphers on Graphics Processing Units Using CUDA Library)

  • 염용진;조용국
    • 정보보호학회논문지
    • /
    • 제18권3호
    • /
    • pp.23-32
    • /
    • 2008
  • 그래픽 프로세서(GPU)의 연산 능력은 이미 CPU를 능가하고 있으며, 그 격차는 점점 벌어지고 있다. 따라서, 범용 계산에 그래픽 프로세서를 활용하는 GPGPU 연구가 활발히 전개되고 있으며, 병렬 처리가 필요한 분야에서 특히 두드러진 성과를 보이고 있다. GPU를 이용한 암호 알고리즘의 구현은 2005년 Cook 등에 의하여 처음 시도되었으며, OpenGL, DirectX 등의 라이브러리를 이용하여 개선된 결과들이 속속 발표되고 있다. 본 논문에서는 2007년 발표된 NVIDIA의 CUDA 라이브러리를 이용한 블록암호 구현 기법과 그 결과를 소개하고자한다. 또한, 소프트웨어로 구현된 블록암호 소스를 GPU 프로그램으로 이식하는 일반적인 방법을 제공하고자 한다. 8800GTX GPU에서 블록암호 AES, ARIA, DES를 구현했으며, 속도는 각각 4.5Gbps, 7.0Gbps, 2.8Gbps로 CPU보다 고속 구현이 가능하였다.

CUDA 를 이용한 실시간 Free Viewpoint TV System 구현 (Real-Time Free Viewpoint TV System Using CUDA)

  • 양윤모;이진혁;오병태
    • 한국방송∙미디어공학회:학술대회논문집
    • /
    • 한국방송공학회 2015년도 추계학술대회
    • /
    • pp.71-73
    • /
    • 2015
  • 본 논문에서는 여러 대의 Microsoft Kinect 와 NVidia 사의 GPGPU 라이브러리 CUDA 를 사용하여 실시간 Free Viewpoint TV System 을 제안한다. Kinect 로부터 얻어진 컬러 및 깊이 영상을 통하여 두 카메라 사이의 가상시점에서 영상을 실시간으로 출력하는 시스템을 설계한다. 이 과정에서 많은 연산량을 요구하는 좌표계 변환 과정과 IR 패턴의 간섭문제를 해결하기 위해 사용되는 Nearest Neighbor 홀 채움 방식을 CUDA 를 이용해 병렬화시켰다. 실험 결과 CUDA 를 이용해 구성한 시스템이 기존의 CPU 만을 이용해 구성한 시스템보다 같은 시간 동안 더 많은 합성영상을 만들 수 있었다.

  • PDF

NVIDIA GPU 상에서의 난수 생성을 위한 CUDA 병렬프로그램 (Efficient Parallel CUDA Random Number Generator on NVIDIA GPUs)

  • 김영태;황규현
    • 정보과학회 논문지
    • /
    • 제42권12호
    • /
    • pp.1467-1473
    • /
    • 2015
  • 본 논문에서는 고성능 병렬 계산 장치로 주목받고 있는 GPU에서의 선형 합동 방식(linear congruential)의 병렬 난수 생성 프로그램을 구현하였다. 난수는 임의성을 필요로 하는 모든 분야에서 중요하게 사용되며, 선형 합동 난수 방식은 컴퓨터 계산을 통하여 생성되는 의사 난수(pseudo random numbers) 생성 방식 중에 가장 많이 사용되는 방식이다. 본 논문에서는 NVIDIA CUDA 프로그래밍 모델을 사용하여 구현된 프로그램 및 MPI를 사용한 다중 GPU를 구동하는 병렬프로그램을 설명하고, 생성된 난수들의 임의성과 성능을 알아보았다. 또한 원주율(${\pi}$)을 계산하기 위한 몬테카를로 알고리즘을 사용하여 CUDA 라이브러리 함수인 cuRAND와 성능을 비교하였으며, 다수의 GPU를 동시에 계산한 성능의 변화도 알아보았다.

NVIDIA CUDA PTX를 활용한 SPECK, SIMON, SIMECK 병렬 구현 (Parallel Implementation of SPECK, SIMON and SIMECK by Using NVIDIA CUDA PTX)

  • 장경배;김현준;임세진;서화정
    • 정보보호학회논문지
    • /
    • 제31권3호
    • /
    • pp.423-431
    • /
    • 2021
  • SPECK과 SIMON은 NSA(National Security Agency)에서 개발한 경량블록암호이며 SIMECK은 SPECK과 SIMON의 장점을 결합하여 만든 새로운 경량블록암호이다. 본 논문에서는 SPECK, SIMON, SIMECK을 사용한 대용량 암호화를 구현 하는데 있어 병렬 처리에 용이한 GPU를 활용하였다. NVIDIA에서 제공하는 CUDA 라이브러리를 활용하였으며 불필요한 연산들을 제거하기 위해 CUDA 어셈블리 언어 PTX를 사용하여 성능을 극대화 하였다. 단순 CPU 구현과 GPU를 활용한 구현 결과를 비교해보았을 때, 더 빠른 속도로 대용량 암호화를 수행할 수 있었다. 또한 GPU 구현 시, C언어를 사용한 구현과 PTX를 사용한 구현을 비교해 보았을 때, PTX 사용 시, 성능이 더욱 증가하는 것을 확인하였다.

스마트 시설환경 실시간 시뮬레이션을 위한 하드웨어 가속 기술 분석 (A Benchmark of Hardware Acceleration Technology for Real-time Simulation in Smart Farm (CUDA vs OpenCL))

  • 민재기;이동훈
    • 한국농업기계학회:학술대회논문집
    • /
    • 한국농업기계학회 2017년도 춘계공동학술대회
    • /
    • pp.160-160
    • /
    • 2017
  • 자동화 기술을 통한 한국형 스마트팜의 발전이 비약적으로 이루어지고 있는 가운데 무인화를 위한 지능적인 스마트 시설환경 관찰 및 분석에 대한 요구가 점점 증가 하고 있다. 스마트 시설환경에서 취득 가능한 시계열 데이터는 온도, 습도, 조도, CO2, 토양 수분, 환기량 등 다양하다. 시스템의 경계가 명확함에도 해당 속성의 특성상 타임도메인과 공간도메인 상에서 정확한 추정 또는 예측이 난해하다. 시설 환경에 접목이 증가하고 있는 지능형 관리 기술 구현을 위해선 시계열 공간 데이터에 대한 신속하고 정확한 정량화 기술이 필수적이라 할 수 있다. 이러한 기술적인 요구사항을 해결하고자 시도되는 다양한 방법 중에서 공간 분해능 향상을 위한 다지점 계측 메트릭스를 실험적으로 구성하였다. $50m{\times}100m$의 단면적인 연동 딸기 온실을 대상으로 $3{\times}3{\times}3$의 3차원 환경 인자 계측 매트릭스를 설치하였다. 1 Hz의 주기로 4가지 환경인자(온도, 습도, 조도, CO2)를 계측하였으며, 계측 하는 시점과 동시에 병렬적으로 공간통계법을 이용하여 미지의 지점에 대한 환경 인자들을 실시간으로 추정하였다. 선행적으로 50 cm 공간 분해능에 대응하기 위하여 Kriging interpolation법을 횡단면에 대하여 분석한 후 다시 종단면에 대하여 분석하였다. 3 Ghz에 해당하는 연산 능력을 보유한 컴퓨터에서 1초 동안 획득한 데이터에 대한 분석을 마치는데 소요되는 시간이 15초 내외로 나타났다. 이는 해당 알고리즘의 매우 높은 시간 복잡도(Order of $O=O^3$)에 기인하는 것으로 다양한 시설 환경의 관리 방법론에 적절히 대응하기에 한계가 있다 할 수 있다. 실시간으로 시간 복잡도가 높은 연산을 수행하기 위한 기술적인 과제를 해결하고자, 근래에 관심이 증가하고 있는 NVIDIA 사에서 제공하는 CUDA 엔진과 Apple사의 제안을 시작으로 하여 공개 소프트웨어 개발 컨소시엄인 크로노스 그룹에서 제공하는 OpenCL 엔진을 비교 분석하였다. CUDA 엔진은 GPU(Graphics Processing Unit)에서 정보 분석 프로그램의 연산 집약적인 부분만을 담당하여 신속한 결과를 산출할 수 있는 라이브러리이며 해당 하드웨어를 구비하였을 때 사용이 가능하다. 반면, OpenCL은 CUDA 엔진이 특정 하드웨어에서 구동이 되는 한계를 극복하고자 하드웨어에 비의존적인 라이브러리를 제공하는 것이 다르며 클러스터링 기술과 연계를 통해 낮은 하드웨어 성능으로 인한 단점을 극복하고자 하였다. 본 연구에서는 CUDA 8.0(https://developer.nvidia.com/cuda-downloads)버전과 Pascal Titan X(NVIDIA, CA, USA)를 사용한 방법과 OpenCL 1.2(https://www.khronos.org/opencl/)버전과 Samsung Exynos5422 칩을 장착한 ODROID-XU4(Hardkernel, AnYang, Korea)를 사용한 방법을 비교 분석하였다. 50 cm의 공간 분해능에 대응하기 위한 4차원 행렬($100{\times}200{\times}5{\times}4$)에 대하여 정수 지수화를 위한 Quantization을 거쳐 CUDA 엔진과 OpenCL 엔진을 적용한 비교한 결과, CUDA 엔진은 1초 내외, OpenCL 엔진의 경우 5초 내외의 연산 속도를 보였다. CUDA 엔진의 경우 비용측면에서 약 10배, 전력 소모 측면에서 20배 이상 소요되었다. 따라서 우선적으로 OpenCL 엔진 기반 하드웨어 가속 기술 최적화 연구를 통해 스마트 시설환경 실시간 시뮬레이션 기술 도입을 위한 기술적 과제를 풀어갈 것이다.

  • PDF

병렬 Shifted Sort 알고리즘의 Warp 단위 CUDA 구현 최적화 (Optimization of Warp-wide CUDA Implementation for Parallel Shifted Sort Algorithm)

  • 박태정
    • 디지털콘텐츠학회 논문지
    • /
    • 제18권4호
    • /
    • pp.739-745
    • /
    • 2017
  • 본 논문에서는 GPU 병렬 처리 하드웨어 아키텍처 내 최소 물리적 스레드 실행 단위(warp) 내에서 shifted sort 기반 k개 최근접 이웃 검색 기법을 구현하는 방법을 논의하고 일반적으로 동일한 목적으로 널리 사용되는 GPU 기반 kd-tree 및 CPU 기반 ANN 라이브러리와 비교한 결과를 제시한다. 또한 많은 애플리케이션에서 k가 비교적 작은 값이 필요한 경우가 많다는 사실을 고려해서 k가 warp 내부에서 직접 처리 가능한 2, 4, 8, 16개일 때 최적화에 집중한다. 구현 세부에서는 사용한 CUB 공개 라이브러리의 루프 내 메모리 관리 방법, GPU 하드웨어 직접 명령 적용 방법 등의 최적화 방법을 논의한다. 실험 결과, 제안하는 방법은 기존의 GPU 기반 유사 방법에 비해 데이터 지점과 질의 지점의 개수가 각각 $2^{23}$개 일 때 16배 이상의 빠른 처리 속도를 보였으며 이러한 경향은 처리해야 할 데이터의 크기가 커지면 더욱 더 커지는 것으로 판단된다.

병렬 영상처리 기반의 고속 머신 비전기술동향

  • 박은수;최학남;김준철;정음한;김학일
    • 제어로봇시스템학회지
    • /
    • 제15권3호
    • /
    • pp.31-39
    • /
    • 2009
  • 본 고에서는 병렬 영상처리를 이용한 고속 머신 비전(Machine Vision) 기술의 동향에 관해 다룬다. 머신 비전에서 사용되는 대표적인 고속 상용 영상처리 라이브러리인 MIL, HALCON, IPP에 대해 소개하고 현재 활발히 연구되고 있는 SSE, OpenMP, CUDA와 같은 병렬 처리 기술에 대하여 알아 본다. 이러한 병렬 처리 기술을 실제 영상처리 알고리즘에 적용하여 그 성능을 고속 상용 영상처리 라이브러리의 성능과 비교하여 소개된 병렬 처리 기술을 실제 PCB 기판 자동검사와 같은 머신 비전에 적용한 연구사례에 대해서 알아본다.

CUDA 라이브러리를 이용한 위성영상 병렬처리 : NDVI 연산을 중심으로 (Parallel Processing of Satellite Images using CUDA Library: Focused on NDVI Calculation)

  • 이강훈;조명희;이원희
    • 한국지리정보학회지
    • /
    • 제19권3호
    • /
    • pp.29-42
    • /
    • 2016
  • 원격탐사는 넓은 지역을 직접 접촉하지 않고 정보를 취득할 수 있고 다양한 분야에 적용할 수 있음으로써 급속히 발전하게 되었다. 이에 따라 위성의 제원 또한 원격탐사의 발전과 함께 급속한 발전을 이루게 되었다. 이러한 이유로 여러 분야에서 활용에 관한 연구가 활발히 이루어지고 있다. 현재 활용에 관한 연구는 활발히 이루어지고 있지만, 자료처리에 관련된 연구가 부족한 실정이다. 예전보다 인공위성의 제원이 발전하면서 많은 양의 정보 획득이 가능해진 것과 동시에 데이터 크기 또한 매우 커졌다. 이는 과거에 비해 자료의 처리속도가 저하된다는 단점이 존재한다. 따라서 본 논문에서는 병렬 처리의 한 가지 기법인 NVIDIA에서 제공하고 있는 CUDA (Compute Unified Device Architecture) 라이브러리를 활용하여 위성영상 자료처리 성능의 최적화를 목적으로 하고 있다. 본 연구의 순서는 다음과 같다. 다목적실용위성(Korea Multi-Purpose Satellite, KOMPSAT)의 영상을 크기를 기준으로 5가지 Type으로 나눈다. 이렇게 나누어진 영상을 원격탐사 분야의 한 가지 방법인 NDVI (Normalized Difference Vegetation Index)로 구현한다. 이때 CPU (Central Processing Unit, 중앙처리장치) 기반과 GPU (Graphic Processing Unit, 그래픽처리장치) 기반의 두 가지 방법과 상용 소프트웨어인 ArcMap을 이용하여 NDVI를 구현한다. 그리고 동일한 영상 유무를 판단하기 위해 구현된 결과 영상들을 히스토그램과 시각적으로 비교하고 CPU 버전과 GPU 버전의 처리속도를 비교 분석하였다. 연구결과 CPU 버전과 GPU 버전의 결과 영상은 ArcMap으로 구현한 영상과 시각적 그리고 히스토그램 비교를 통해 같은 결과를 나타내어 NDVI 코드는 올바르게 구현되었으며, 처리속도는 CPU보다 GPU가 약 5배 정도 빠른 것으로 확인하였다. 본 연구에서 병렬 처리의 한 기법인 CUDA 라이브러리를 활용하여 위성영상 자료처리 성능을 향상시킬 수 있었으며, 향후 NDVI와 같은 단순한 픽셀 연산 이외에도 다양한 원격탐사 기법의 적용이 필요할 것으로 사료된다.

다중 GPU기반 홀로그램 생성을 위한 병렬처리 성능 최적화 기법 (An Optimization Method for Hologram Generation on Multiple GPU-based Parallel Processing)

  • 국중진
    • 스마트미디어저널
    • /
    • 제8권2호
    • /
    • pp.9-15
    • /
    • 2019
  • 홀로그램의 생성을 위한 연산은 포인트 클라우드의 규모에 따라 연산량이 기하급수적으로 증가하기 때문에 최근에는 다중의 GPU를 기반으로 CUDA 또는 OpenCL 라이브러리를 활용한 병렬처리가 이루어지고 있다. GPU기반의 병렬처리를 위한 CUDA 커널은 GPU의 코어 개수와 메모리 크기를 고려하여 쓰레드(thread), 블록(block), 그리드(grid)를 구성해야 하며, 다중 GPU 환경인 경우 GPU의 개수에 따른 그리드, 블록, 또는 쓰레드 단위의 분산처리가 필요하다. 본 논문에서는 CGH 생성에 대한 성능평가를 위해 포인트 클라우드의 포인트 개수를 10~1,000,000개 범위에서 점진적으로 증가시키면서 CPU, 단일 GPU, 다중 GPU 환경에서 연산 속도를 비교해 보았으며, 다중 GPU 환경에서 CGH(Computer Generated Hologram) 생성 연산을 가속화하기 위한 CUDA 기반의 병렬처리 과정에서 요구되는 메모리 구조 설계와 연산 방법을 제안한다.