$\require{mediawiki-texvc}$

연합인증

연합인증 가입 기관의 연구자들은 소속기관의 인증정보(ID와 암호)를 이용해 다른 대학, 연구기관, 서비스 공급자의 다양한 온라인 자원과 연구 데이터를 이용할 수 있습니다.

이는 여행자가 자국에서 발행 받은 여권으로 세계 각국을 자유롭게 여행할 수 있는 것과 같습니다.

연합인증으로 이용이 가능한 서비스는 NTIS, DataON, Edison, Kafe, Webinar 등이 있습니다.

한번의 인증절차만으로 연합인증 가입 서비스에 추가 로그인 없이 이용이 가능합니다.

다만, 연합인증을 위해서는 최초 1회만 인증 절차가 필요합니다. (회원이 아닐 경우 회원 가입이 필요합니다.)

연합인증 절차는 다음과 같습니다.

최초이용시에는
ScienceON에 로그인 → 연합인증 서비스 접속 → 로그인 (본인 확인 또는 회원가입) → 서비스 이용

그 이후에는
ScienceON 로그인 → 연합인증 서비스 접속 → 서비스 이용

연합인증을 활용하시면 KISTI가 제공하는 다양한 서비스를 편리하게 이용하실 수 있습니다.

CUDA를 이용한 효과적인 GPU 광선추적 가속 알고리즘
An efficient acceleration algorithm of GPU ray tracing using CUDA 원문보기

한국HCI학회 2009년도 학술대회, 2009 Feb. 09, 2009년, pp.469 - 474  

지중현 (광주과학기술원 기전공학과) ,  윤동호 (광주과학기술원 기전공학과) ,  고광희 (광주과학기술원 기전공학과)

초록
AI-Helper 아이콘AI-Helper

본 논문은 CUDA를 이용하여 GPU에서의 최적화된 kd-tree 탐색구조 환경과 광선/삼각형의 교차검사 알고리즘을 통한 실시간의 광선추적 시스템을 제안한다. 기존의 GPU 기반 kd-tree 탐색 알고리즘은 대부분 스택이 없는 GPU 하드웨어의 특성상 임의의 단말노드에서 기하요소의 교차검사가 실패할 경우 상위노드로 상향식 탐색을 진행하기 때문에 노드에 대한 중복 방문이 반드시 필요하거나 혹은 불필요한 메모리의 적재가 필요하기 때문에 큰 장면에 대한 광선추적은 어렵게 된다. 본 논문에서 제안하는 알고리즘은 CPU 방식의 kd-tree 탐색과 비슷하게 동작하도록 stack을 CUDA 프레임워크를 이용하여 GPU의 지역메모리로 구현하였기 때문에 기존의 방법 등에서의 문제점을 해결하였다. 또한 탐색구조를 통해서 찾은 말단 삼각형들의 처리를 위해서 최신의 CPU 기반의 교차검사 알고리즘인 Plucker 좌표계 검사를 CUDA로 구현하여 병렬 가속시켰다. Plucker 검사는 기존의 무게중심 좌표 대신에 광선과 삼각형 edge의 관계를 이용하는 간단한 연산만을 이용하는 장점이 있다. 전체 시스템은 단일 커널로 구성되어 있으며 병렬처리를 위한 복잡한 동기화나 광선패킷의 도입 없이 간단하게 구현되었다. 결과적으로 본 논문의 실험은 기존 알고리즘 대비 제안하는 알고리즘이 약 2배의 성능 향상이 있음을 보여 준다.

Abstract AI-Helper 아이콘AI-Helper

This paper proposes an real time ray tracing system using optimized kd-tree traversal environment and ray/triangle intersection algorithm. The previous kd-tree traversal algorithms search for the upper nodes in a bottom-up manner. In a such way we need to revisit the already visited parent node or u...

AI 본문요약
AI-Helper 아이콘 AI-Helper

* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.

문제 정의

  • 본 논문에서는 CUDA를 이용해 지역 메모리에 스택을 구현하였고 그에 맞는 자료구조 및 가속화 방법을 제안하고 있다. 본 논문의 알고리즘은 별도의 coherency를 이용하는 광선패킷이나 특정한 하드웨어에 대한 자료구조를 요구하는 가속화 방법을 쓰지 않고 병렬 처리시에 발생하는 스레드간에 발생하는 빈번한 동기화를 필요로 하지 않는다.
  • 일반적으로 kd-tree같은 공간분할 기법이 가장 빠른 성능을 보여주고 있지만 근본적으로 기존 그래픽스 하드웨어에서와 GPGPU 플랫폼에서는 스택(stack)의 지원이 미약하고 병렬처리를 위한 SIMD(Single Instruction Multiple Data) 대응 및 프로그래밍이 어렵기 때문에 GPU를 통해 비교적 거대한 장면에 대해서 kd-tree를 이용하여 실시간으로 광선을 추적하는 것은 많은 한계가 있다. 본 논문은 광선추적의 핵심 모듈인 공간 가속구조와 광선/삼각형 교차검사의 가속을 위하여 CUDA를 이용한 알고리즘을 구현하였다.
본문요약 정보가 도움이 되었나요?

질의응답

핵심어 질문 논문에서 추출한 답변
CUDA 플랫폼에서 제공하는 NVIDA의 하드웨어 스펙에는 무엇이 있는가? CUDA 플랫폼에서 제공하는 NVIDA의 하드웨어 스펙에는 global, shared, local, register 메모리가 있다. 이중 shared 메모리가 가장 빠르고 한 블록안에 있는 모든 쓰레드들이 접근 가능하기 때문에 유용하게 쓰인다.
Plucker 검사의 장점은 무엇인가? 또한 탐색구조를 통해서 찾은 말단 삼각형들의 처리를 위해서 최신의 CPU 기반의 교차검사 알고리즘인 Plucker 좌표계 검사를 CUDA로 구현하여 병렬 가속시켰다. Plucker 검사는 기존의 무게중심 좌표 대신에 광선과 삼각형 edge의 관계를 이용하는 간단한 연산만을 이용하는 장점이 있다. 전체 시스템은 단일 커널로 구성되어 있으며 병렬처리를 위한 복잡한 동기화나 광선패킷의 도입 없이 간단하게 구현되었다.
CUDA 플랫폼에서 제공하는 NVIDA의 하드웨어 스펙 중 shared 메모리에 스택을 만들면 어떤 문제가 있는가? 이중 shared 메모리가 가장 빠르고 한 블록안에 있는 모든 쓰레드들이 접근 가능하기 때문에 유용하게 쓰인다. 그러나 한 블록당 16KB 밖에 되지않는 shared 메모리에 스택을 만들게 되면 가용범위에 문제가 발생하고, 다른 스레드들이 수시로 공유를 요청하고 갱신해버리는 경우가 생기므로 동기화가 필요하며 이 때 너무 많은 동기화 작업은 탐색의 효율성을 절감시키게 된다. 실험을 통해 shared 메모리에 스택을 만들 었을 때 G80 하드웨어의 경우 모든 쓰레드에게 할당된 메모리는 오직 42바이트 뿐이기 때문에 활용할 수 있는 트리의 깊이가 10 밖에 되지 않았다.
질의응답 정보가 도움이 되었나요?
섹션별 컨텐츠 바로가기

AI-Helper ※ AI-Helper는 오픈소스 모델을 사용합니다.

AI-Helper 아이콘
AI-Helper
안녕하세요, AI-Helper입니다. 좌측 "선택된 텍스트"에서 텍스트를 선택하여 요약, 번역, 용어설명을 실행하세요.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.

선택된 텍스트

맨위로