• 제목/요약/키워드: Thread Pooling

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

GPGPU 기반 Convolutional Neural Network의 효율적인 스레드 할당 기법 (Efficient Thread Allocation Method of Convolutional Neural Network based on GPGPU)

  • 김민철;이광엽
    • 예술인문사회 융합 멀티미디어 논문지
    • /
    • 제7권10호
    • /
    • pp.935-943
    • /
    • 2017
  • 많은 양의 데이터 기반으로 학습하는 neural network 중 이미지 분류나 음성 인식 등에 사용되어 지고 있는 CNN(Convolution neural network)는 현재까지도 우수한 성능을 가진 구조로 계속적으로 발전되고 있다. 제한된 자원을 가진 임베디드 시스템에서 활용하기에는 많은 어려움이 있다. 그래서 미리 학습된 가중치를 사용하지만 여전히 한계점이 있기 때문에 이를 해결하기 위해 GPU의 범용 연산을 위해서 사용하는 GP-GPU(General-Purpose computing on Graphics Processing Units)를 활용하는 추세다. CNN은 단순하고 반복적인 연산을 수행하기 때문에 SIMT(Single Instruction Multiple Thread)기반의 GPGPU에서 스레드 할당과 활용 방법에 따라 연산 속도가 많이 달라진다. 스레드로 Convolution 연산과 Pooling 연산을 수행할 때 쉬어야 하는 스레드가 발생하는 데 이러한 문제를 해결하기 위해 남은 스레드가 다음 피쳐맵과 커널 계산에 활용되는 방법을 사용함으로써 연산 속도를 증가시켰다.

GPGPU와 Combined Layer를 이용한 필기체 숫자인식 CNN구조 구현 (Implementation of handwritten digit recognition CNN structure using GPGPU and Combined Layer)

  • 이상일;남기훈;정준모
    • 문화기술의 융합
    • /
    • 제3권4호
    • /
    • pp.165-169
    • /
    • 2017
  • CNN(Convolutional Nerual Network)는 기계학습 알고리즘 중에서도 이미지의 인식과 분류에 뛰어난 성능을 보이는 알고리즘 중 하나이다. CNN의 경우 간단하지만 많은 연산량을 가지고 있어 많은 시간이 소요된다. 따라서 본 논문에서는 CNN 수행과정에서 많은 처리시간이 소모되는 convolution layer와 pooling layer, fully connected layer의 연산수행을 SIMT(Single Instruction Multiple Thread)구조의 GPGPU(General-Purpose computing on Graphics Processing Units)를 통하여 병렬로 연산처리를 수행했다. 또한 convolution layer의 출력을 저장하지 않고 pooling layer의 입력으로 바로 사용함으로 메모리 접근횟수를 줄여 성능 향상을 기대했다. 본 논문에서는 이 실험검증을 위하여 MNIST 데이터 셋을 사용하였고 이를 통하여 제안하는 CNN 구조가 기존의 구조보다 12.38% 더 좋은 성능을 보임을 확인했다.

GP-GPU를 이용한 보행자 추론 CNN (Pedestrian Inference Convolution Neural Network Using GP-GPU)

  • 정준모
    • 전기전자학회논문지
    • /
    • 제21권3호
    • /
    • pp.244-247
    • /
    • 2017
  • 본 논문에서는 GP-GPU를 활용한 보행자 추론 컨볼루션 뉴럴 네트워크를 구현했다. CNN은 구조를 정한 후, 학습에서 얻은 가중치를 이용해 기존 연구인 256개의 스레드를 가지는 GP-GPU를 활용해 추론을 수행했다. 학습에는 Inter i7-4470 CPU와 Matlab을 사용했다. Dataset은 Daimler Pedestrian Dataset을 사용했다. GP-GPU는 PCIe를 이용해 PC로부터 제어를 받으며, FPGA로 동작한다. 각 레이어의 depth와 size에 따라 스레드를 할당했다. 풀링 레이어의 경우는 over warpping pooling을 사용했기 때문에 횡영역과 종영역에 추가적인 연산을 수행했다. 한 번의 추론에는 약 12ms가 걸린다.

Java SDK를 이용한 파일 클라우드 시스템의 설계 및 구현 (Design and Implementation of File Cloud Server by Using JAVA SDK)

  • 이상곤
    • 한국정보전자통신기술학회논문지
    • /
    • 제8권2호
    • /
    • pp.86-100
    • /
    • 2015
  • 클라우드 컴퓨팅은 IT 관련된 기능들이 서비스 형태로 제공되는 컴퓨팅 스타일이다. 사용자들은 전문 지식이 없거나 제어할 줄 몰라도 인터넷으로부터 서비스를 이용할 수 있다. 정보가 인터넷 상의 서버에 영구적으로 저장되고 데스크탑 컴퓨터, 노트북, 휴대용 기기 등과 같은 클라이언트에는 일시적으로 보관된다. 이러한 클라우드 컴퓨팅에서 소프트웨어와 데이터는 서버에 저장된다. 클라우드 컴퓨팅은 웹 2.0, SaaS(software as a service)와 같이 최근 잘 알려진 기술 경향들과 연관성을 가지는 일반화된 개념이다. 이들 개념들의 공통점은 사용자들의 컴퓨팅 요구를 만족시키기 위해 인터넷을 이용한다는 사실이다. 이는 단순히 서버 등의 자원을 제공해 주면서 사용자가 디바이스에 제약없이 데이터에 접근할 수 있도록 해준다. 개인적인 용도의 파일을 저장하고 이를 여러 디바이스에서 공유하는 클라우드 서비스가 주목을 받고 있다. 본 논문에서는 Dropbox와 OAuth, PACloud를 통해 이와 같은 서비스를 구현할 수 있다. 또한 스레드 폴링을 이용하여 서버에 들어오는 여러 태스크들을 적절하게 처리할 수 있는 구현 기술을 제시하였다. 아울러 구현 기술을 설명하기 위해 소프트웨어 공학적인 여러 다이어그램을 제시하였다.

사물간의 효율적인 연결을 위한 사물인터넷 미들웨어 실험 평가 및 성능 향상 방법 (Experimental Evaluation and Flexible Performance Improvement of IoT Middleware for Efficient Connectivity)

  • 전수빈;이충산;한영탁;정인범
    • 정보처리학회논문지:컴퓨터 및 통신 시스템
    • /
    • 제6권9호
    • /
    • pp.385-396
    • /
    • 2017
  • IoT 환경에서 제한적인 디바이스들의 운영을 위한 많은 IoT 미들웨어들이 연구되었다. 우리는 센싱 디바이스 및 네트워크의 통합적인 운영을 위한 IoT 미들웨어인 MinT를 제안하였다. MinT는 센싱 및 네트워크 디바이스를 통합 관리할 수 있는 센서 추상화 계층, 완성도 높은 시스템 및 통신 계층을 지원한다. 또한 이를 통해 사물들은 이기종 네트워크간의 유연한 연결 및 효율적인 정보 공유를 할 수 있다. MinT의 시스템 계층은 신속한 정보처리를 위해 스레드 풀을 사용한다. 하지만 고정 스레드 크기를 사용하는 방법은 네트워크 지연 및 비효율적인 베터리 소비를 보여준다. 본 논문에서는 가변적으로 스레드 개수를 조정할 수 있는 향상된 스레드 풀 관리 방법을 제안 한다. 특히 수신되는 패킷 분석 및 처리, 재송신을 담당하는 Interaction Thread Pool그룹의 성능 향상을 목표로 한다. 본 논문에서는 실험을 통해 평균 요청 처리율이 평균 25% 증가한 것을 입증하였다. 결국 제안하는 방법을 통해 MinT는 IoT 환경에서 전송 지연 및 디바이스의 에너지 소비를 더 감소시킬 수 있다.