• 제목/요약/키워드: GPGPU

검색결과 200건 처리시간 0.028초

OpenCL을 이용한 임베디드 GPGPU환경에서의 AES 암호화 성능 개선과 평가 (Performance Enhancement and Evaluation of AES Cryptography using OpenCL on Embedded GPGPU)

  • 이민학;강우철
    • 정보과학회 컴퓨팅의 실제 논문지
    • /
    • 제22권7호
    • /
    • pp.303-309
    • /
    • 2016
  • 최근, ARM Mali와 같은 여러 임베디드 프로세서들이 OpenCL과 같은 GPGPU 프레임워크를 지원함에 따라 기존 PC 환경에서 활용되던 GPGPU 기술이 임베디드 시스템 영역으로 확대 되고 있다. 그러나 임베디드 시스템은 PC와는 상이한 구조를 갖으며, 저전력이나 실시간성과 같은 성능이 더욱 중요하다. 본 논문에서는 임베디드 GPGPU환경에서 AES 암호화 알고리즘을 개방형 범용 병렬 컴퓨팅 프레임워크인 OpenCL을 사용하여 구현하고 이를 CPU만을 이용한 구현과 비교한다. 실험결과, 1000KByte의 데이터 사이즈의 128비트 AES 암호화 시에 OpenCL을 사용하여 GPU로 병렬 처리하는 것이 OpenMP를 사용하여 CPU상에서 병렬 처리한 방식보다 응답 시간은 최대 1/150, 에너지 소비량은 최대 1/290로 감소함을 확인하였다. 또한 호스트와 GPU 디바이스 간에 메모리를 공유하는 임베디드 구조의 특성에 최적화하여 메모리 복제를 하지 않는 기법을 적용하는 경우 응답시간과 에너지 소비량에서 최대 100% 이상의 추가적인 성능개선을 이룰 수 있었으며, 연구에서 사용한 데이터의 크기에 비례하여 더 높은 성능의 개선이 나타나는 것을 확인하였다.

효율적인 데이터 중복제거를 위한 GPGPU 병렬 라빈 핑거프린팅 (Parallel Rabin Fingerprinting on GPGPU for Efficient Data Deduplication)

  • 마정현;박세진;박찬익
    • 정보과학회 논문지
    • /
    • 제41권9호
    • /
    • pp.611-616
    • /
    • 2014
  • 데이터 중복 제거를 수행하기 위한 여러 단계 중 청킹에 사용되는 라빈 핑거프린트 값을 구하는 단계가 가장 큰 오버헤드를 차지한다. 따라서, 본 논문에서는 효율적인 데이터 중복 제거를 위한 병렬라빈 핑거프린트 방법을 제안한다. 또한 효율적인 라빈 핑거프린팅의 병렬화를 위해 네 가지 이슈를 고려한다. 첫 번째로 병렬처리를 위해 입력 데이터 스트림을 일정한 크기의 데이터 섹션으로 분할할 때, 데이터 섹션의 경계선에 있는 데이터들에 대해서도 라빈 핑거프린팅을 수행하기 위한 고려, 두 번째로 라빈 핑거프린팅 연산 특징을 효율적으로 이용하기 위한 고려, 세 번째로 순차 방식으로 청크 경계선을 구했을 때와 비교하여 병렬 방식으로 청크 경계선을 구했을 때, 변경 될 수 있는 청크 경계선에 대한 고려를 한다. 마지막으로 최적의 GPGPU 메모리 접근을 위한 고려를 한다. GPGPU를 이용한 병렬 라빈 핑거프린트 방식은 CPU를 이용한 순차 라빈 핑거프린트 방식에 비해 약 16배 성능향상을 보였고, CPU를 이용한 병렬 라빈 핑거프린트 방식에 비해서도 약 5.3배 성능향상을 보였다. 이러한 라빈 핑거프린팅 연산 처리량의 증가는 데이터 중복 제거 기법의 전체적인 성능향상을 가져올 수 있다.

GPGPU를 이용한 비디오 기반 실시간 화재감지 알고리즘 구현 (An Implementation of a Video-Equipped Real-Time Fire Detection Algorithm Using GPGPU)

  • 손동구;김철홍;김종면
    • 한국컴퓨터정보학회논문지
    • /
    • 제19권8호
    • /
    • pp.1-10
    • /
    • 2014
  • 본 논문에서는 많은 양의 연산량을 요구하는 비디오 기반 4단계 화재감지 알고리즘의 실시간 처리를 위해 범용 그래픽 처리 장치 (general-purpose graphics processing unit, GPGPU)를 이용한 병렬 구현 방법을 제안한다. 또한 GPGPU 기반 화재감지 알고리즘의 효용성을 확인하기 위해 범용 고성능 CPU와의 성능을 비교하였다. SXGA($1400{\times}1050$) 해상도의 화재 비디오 5개를 이용해 모의실험 결과, GPGPU기반 화재감지 알고리즘은 CPU 구현보다 약 6.6배 더 높은 성능을 보였으며, 평균 프레임 당 30.53ms의 실행시간이 소요되어 실시간 처리(초당 30프레임)가 가능함을 보였다.

클라우드 환경에서 GPU 연산으로 인한 가상머신의 성능 저하를 완화하는 GPGPU 작업 관리 기법 (GPGPU Task Management Technique to Mitigate Performance Degradation of Virtual Machines due to GPU Operation in Cloud Environments)

  • 강지훈;길준민
    • 정보처리학회논문지:컴퓨터 및 통신 시스템
    • /
    • 제9권9호
    • /
    • pp.189-196
    • /
    • 2020
  • 최근 클라우드 환경에서는 고성능 연산이 가능한 GPU(Graphics Processing Unit) 장치를 가상머신에게 적용한 GPU 클라우드 컴퓨팅 기술이 많이 사용되고 있다. 클라우드 환경에서 가상머신에게 할당된 GPU 장치는 대규모 병렬 처리를 통해 CPU보다 더 빠르게 연산을 수행할 수 있으며, 이로 인해 다양한 분야의 고성능 컴퓨팅 서비스들을 클라우드 환경에서 운용할 때 많은 이점을 얻을 수 있다. 클라우드 환경에서 GPU 장치는 가상머신의 성능 향상에 많은 도움을 주지만 가상머신의 CPU 사용 시간을 기반으로 작동하는 가상머신 스케줄러에서는 GPU 장치의 사용 시간이 고려되지 않아 다른 가상머신들의 성능에 영향을 미친다. 본 논문에서는 클라우드 환경에서 가상머신에게 GPU를 할당할 때 많이 사용되는 직접 통로기반 GPU 가상화 환경에서 GPGPU(General-Purpose computing on Graphics Processing Units) 작업을 수행하는 가상머신으로 인한 다른 가상머신들의 성능 저하 현상을 검증하고 분석하며, 이를 해결하기 위한 가상머신의 GPGPU 작업 관리 기법을 제안한다.

GPU 클러스터 기반 대용량 온톨로지 추론 (Scalable Ontology Reasoning Using GPU Cluster Approach)

  • 홍진영;전명중;박영택
    • 정보과학회 논문지
    • /
    • 제43권1호
    • /
    • pp.61-70
    • /
    • 2016
  • 근래에 들어 다양한 시멘틱 서비스를 위하여 기존의 지식을 바탕으로 새로운 지식을 고속으로 추론할 수 있는 대용량 온톨로지 추론 기법이 요구되고 있다. 이런 추세에 따라 대규모의 클러스터를 활용하는 하둡 및 Spark 프레임워크 기반의 온톨로지 추론 엔진 개발이 연구되고 있다. 또한, 기존의 CPU에 비해 많은 코어로 구성되어 있는 GPGPU를 활용하는 병렬 프로그래밍 방식도 온톨로지 추론에 활용되고 있다. 앞서 말한 두 가지 방식의 장점을 결합하여, 본 논문에서는 RDFS 대용량 온톨로지 데이터를 인-메모리 기반 프레임워크인 Spark를 통해 분산시키고 GPGPU를 이용하여 분산된 데이터를 고속 추론하는 방법을 제안한다. GPGPU를 통한 온톨로지 추론은 기존의 추론 방식보다 저비용으로 고속 추론을 수행하는 것이 가능하다. 또한 Spark 클러스터의 각 노드를 통하여 대용량 온톨로지 데이터에 대한 부하를 줄일 수 있다. 본 논문에서 제안하는 추론 엔진을 평가하기 위하여 LUBM10, 50, 100, 120에 대해 추론 속도를 실험하였고, 최대 데이터인 LUBM120(약 1백7십만 트리플, 2.1GB)의 실험 결과, 인-메모리(Spark) 추론 엔진 보다 7배 빠른 추론 성능을 보였다.

다중 워크로드 환경을 위한 GPGPU 스레드 블록 스케줄링 (Thread Block Scheduling for Multi-Workload Environments in GPGPU)

  • 박소연;조경운;반효경
    • 한국인터넷방송통신학회논문지
    • /
    • 제22권2호
    • /
    • pp.71-76
    • /
    • 2022
  • 대규모 병렬 워크로드를 GPGPU의 연산 유닛에 할당하기 위한 스케줄링으로 라운드 로빈 방식이 널리 사용되고 있다. 라운드 로빈은 작업을 각 연산 유닛에 순차적으로 할당하여 구현이 쉽다는 장점이 있으나, 클라우드와 같은 다중 워크로드 환경에서는 연산 유닛 간 부하 균형이 잘 이루어지지 않는 문제점이 발생한다. 본 논문에서는 이러한 문제를 해결하기 위해 새로운 스레드 블록 스케줄링을 제안한다. 제안하는 방식은 다양한 GPGPU 워크로드가 만들어낸 스레드 블록들을 그 작업량에 근거해 다중큐로 관리하고 각 연산 유닛의 잔여 자원을 가장 잘 활용할 수 있는 큐에서 스레드 블록을 선택하여 연산 유닛들의 자원 이용률을 극대화시키고 부하균형을 유도한다. 다양한 부하 환경에서의 시뮬레이션 실험을 통해 제안하는 방식이 라운드 로빈 대비 평균 24.8%의 성능개선 효과가 있음을 보인다.

GPGPU 프로그래밍 모델의 기술 동향 (Survey on GPGPU Programing Models)

  • 이현진;정유나;이성길
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2013년도 춘계학술발표대회
    • /
    • pp.389-391
    • /
    • 2013
  • 대용량 영상 데이터 처리를 위한 GPU 는 많은 코어들을 이용한 병렬 작업을 통해 결과를 도출한다. 단순 수치 연산에 특화된 이러한 GPU 의 계산 능력을 다른 분야로 확장시켜 적용하고자 하는 시도인 GPGPU 는 이전부터 꾸준히 시도되고 있다. 그러나 GPU 의 난해하고 생소한 프로그래밍으로, 작성이 쉽지 않고 현격한 성능 향상을 기대하기 어렵다. 이에, 이러한 GPGPU 프로그래밍의 어려움을 해결하고자 여러 프로그래밍 모델들이 등장하였다. 본 논문에서는 GPGPU 프로그래밍을 위한 대표적인 모델인 CUDA, OpenCL, C++ AMP, 그리고 OpenACC 에 대해 살펴본다.

합성곱 신경망의 학습 가속화를 위한 방법 (A Method for accelerating training of Convolutional Neural Network)

  • 최세진;정준모
    • 문화기술의 융합
    • /
    • 제3권4호
    • /
    • pp.171-175
    • /
    • 2017
  • 최근 CNN(Convolutional Neural Network)의 구조가 복잡해지고 신견망의 깊이가 깊어지고 있다. 이에 따라 신경망의 학습에 요구되는 연산량 및 학습 시간이 증가하게 되었다. 최근 GPGPU 및 FPGA를 이용하여 신경망의 학습 속도를 가속화 하는 방법에 대한 연구가 활발히 진행되고 있다. 본 논문에서는 NVIDIA GPGPU를 제어하는 CUDA를 이용하여 CNN의 특징추출부와 분류부에 대한 연산을 가속화하는 방법을 제시한다. 특징추출부와 분류부에 대한 연산을 GPGPU의 블록 및 스레드로 할당하여 병렬로 처리하였다. 본 논문에서 제안하는 방법과 기존 CPU를 이용하여 CNN을 학습하여 학습 속도를 비교하였다. MNIST 데이터세트에 대하여 총 5 epoch을 학습한 결과 제안하는 방법이 CPU를 이용하여 학습한 방법에 비하여 약 314% 정도 학습 속도가 향상된 것을 확인하였다.

GPGPU의 멀티 쓰레드를 활용한 고성능 병렬 LU 분해 프로그램의 구현 (Implementation of high performance parallel LU factorization program for multi-threads on GPGPUs)

  • 신봉희;김영태
    • 인터넷정보학회논문지
    • /
    • 제12권3호
    • /
    • pp.131-137
    • /
    • 2011
  • GPGPU는 원래 그래픽 계산을 위한 프로세서인 GPU를 일반 계산에 활용하여 저전력으로 고성능의 효율을 보이는 신개념의 계산 장치이다. 본 논문에서는 GPGPU에서 계산을 하기 위한 병렬 LU 분해법의 알고리즘을 제안하였다. Nvidia GPGPU에서 프로그램을 실행하기 위한 CUDA 계산 환경에서는 계산하고자 하는 데이터 도메인을 블록으로 나누고 각 블록을 쓰레드들이 동시에 계산을 하는데, 이 때 블록들의 계산 순서는 무작위로 진행이 되기 때문에 블록간의 데이터 의존성을 가지는 LU 분해 프로그램에서는 결과가 정확하지 않게 된다. 본 논문에서는 병렬 LU 분해법에서 블록간의 계산 순서를 인위적으로 정하는 구현 방식을 제안하며 아울러 LU 분해법의 부분 피벗팅을 계산하기 위한 병렬 reduction 알고리즘도 제안한다. 또한 구현된 병렬프로그램의 성능 분석을 통하여 GPGPU의 멀티 쓰레드 기반으로 고성능으로 계산할 수 있는 병렬프로그램의 효율성을 보인다.