Recently, supercomputers have entered the era of exascale beyond petascale. Overcoming the exascale barrier, which is the biggest problem with a large number of computing nodes and energy efficiency, was possible by using GPUs for computation in artificial intelligence, machine learning, and various high-performance computations. As evidenced by this, seven out of the ten world’s highest performing supercomputers are heterogeneous computing systems using GPUs. Accordingly, we developed a tool that can easily and conveniently monitor multiple vendors GPUs to support heterogeneous computing systems that are widely used in artificial intelligence and high-performance computations.
The near real-time speckle masking reconstruction technique has been developed to accelerate the processing of solar images to achieve high resolutions for ground-based solar telescopes. However, the reconstruction of solar subimages in such a speckle reconstruction is very time-consuming. We design and implement a new parallel speckle masking reconstruction algorithm based on the Compute Unified Device Architecture (CUDA) on General Purpose Graphics Processing Units (GPGPU). Tests are performed to validate the correctness of our program on NVIDIA GPGPU. Details of several parallel reconstruction steps are presented, and the parallel implementation between various modules shows a significant speed increase compared to the previous serial implementations. In addition, we present a comparison of runtimes across serial programs, the OpenMP-based method, and the new parallel method. The new parallel method shows a clear advantage for large scale data processing, and a speedup of around 9 to 10 is achieved in reconstructing one solar subimage of 256×256 pixels. The speedup performance of the new parallel method exceeds that of OpenMP-based method overall. We conclude that the new parallel method would be of value, and contribute to real-time reconstruction of an entire solar image.
Three-dimensional(3D) display technique is widely used in our daily life. Especially, to product augmented game contents which can interact with users, it is necessary to get high quality resolution image data to reconstruct 3D model more exquisitely. In this paper, we tried to expand depth image captured by Kinect using various interpolation methods(nearest neighbor, bilinear, bicubic) to adapt it to the size of original Kinect color image. To measure the quality of expanded depth image compared to original depth image, we used PSNR(Peak Signal-to-noise ratio) index. Besides, we implemented GPU parallel processing algorithm with OpenCL to interpolate a large amount of image data rapidly. As a result of the experiment, a bicubic interpolation method made an accurate depth image although it had a long time.
GPU는 메모리 대역폭이 연산 속도를 결정하는 병목 지점이 된다. 즉, GPU 프로그래밍 시에는 불규칙적인 메모리 액세스나 다중 스레드들 사이에서의 서로 다른 명령 실행 분기가 발생하면 속도가 크게 저하되는 문제가 발생한다. 따라서 게임 엔진 충돌 처리용으로 사용되는 kd-tree와 같은 적응형 탐색(adaptive traverse) 기법은, 불규칙적인 메모리 액세스 및 서로 다른 명령 분기로 인해 지금까지 GPU 구조에 적합하지 않은 것으로 인식되어 왔다. 그러나 최근 NVIDIA의 Fermi 아키텍처의 등장과 함께 CPU에서처럼 GPU 다중 프로세서에도 캐시 메모리가 적용되고 있다. 본 논문에서는 이러한 새로운 GPU 아키텍처의 장점을 활용해서 충돌 처리 시간을 크게 줄일 수 있는 GPU 기반 kd-tree를 제안한다. 제안하는 GPU 기반 병렬 kd-tree는 체크 지점 65536 개에서 최근접 삼각형까지의 거리를 찾는 작업이 Fermi 아키텍처(캐시 적용) 기반에서 단일 코어 CPU 기반 kd-tree에 비해 평균 백 만 배 이상(1.0x106) 빨라졌으며, 이전 세대 Tesla 아키텍처(캐시 미적용) 기반 병렬 kd-tree에 비해서도 약 50 배 가까이 빠른 속도를 보였다.
일반적으로 게임 디자인 시에 웹과 같은 매체를 통해 구하거나 디자이너들이 디자인 툴로 제작한 3차원 기하 모델은 polygon soup 형태가 대부분이다. 따라서 이러한 polygon soup 모델은 일반적으로 완전한 매시로 가정해서 적용하는 여러 기법들을 적용할 수 없다. 이러한 문제를 해결하고 보다 매끈한 곡면을 얻기 위해서 MLS(Moving Least Squares) 방법을 점 단위가 아니라 삼각형 면 단위로 확장한 적분형 MLS 기법이 제안되었다. 그러나 이 기법은 본질적으로 전역(global) 계산의 한계로 인한 계산 속도의 한계가 불가피한 특징이 있었다. 본 논문에서는 분석적 해를 바탕으로 한 전역 계산 속도를 보다 가속화하기 위한 GPU 기반 병렬 기법을 제안하고 또한 기존 논문에서 충분히 논의하지 않았던 적분형 MLS 기법과 일반 MLS 기법의 차이점을 설명한다. 특히 GPU를 통한 가속 결과, 연산 정밀도의 감소없이 CPU 코어 1개로 계산하는 경우보다 평균 250배의 속도 향상을 얻을 수 있었다.
본 논문에서는 연기 애니메이션을 위한 GPU 기반의 펜앤잉크 렌더링 방법을 제안하였다. 제안된 방법은 광선 투사 방법을 이용하여 화면에 그려질 연기의 표면점을 추출하였다. 계산된 표면점에 대해 밝기값과 곡률을 계산하여 스트록의 방향과 스트록의 밀도를 정하였다. 각 스트록은 기하 쉐이더를 이용하여 사각형을 생성하여 스트록 텍스쳐를 매핑함으로써 렌더링하였다. 이때, 사각형의 모양을 곡률을 따라 변형함으로써 스트록이 곡률 방향을 따라 그려지도록 하였으며 텍스쳐에 그려질 스트록의 개수를 밝기값에 따라 정함으로써 스트록의 밀도를 조절하였다. 실험 결과 평균 초당 25 프레임의 속도로 연기 애니메이션에 대한 펜앤잉크 렌더링을 생성할 수 있었다.
본 논문에서는 굴절(refractive) 물체의 광학적 현상들을 실시간으로 표현하는 GPU(Graphics Processing Unit) 기반 렌 더링 알고리즘이 제안되었다. 일반적으로 굴절 물체에 대한 광학적 현상들을 렌더링할 때 포톤 매핑(Photon Mapping) 이 널리 쓰이지만, 포톤 매핑 방법은 계산량이 많기 때문에 게임 등과 같은 실시간 응용분야에는 적합하지 않다. 본 논문에서는 굴절 물체의 앞면, 뒷면의 깊이값의 차이와 굴절 레이(ray)를 이용해 탈출지점을 구하며, 탈출지점의 법선 벡터를 근사하여 빛이 굴절 물체를 통과하면서 발생하는 커스틱스(caustics)현상과 굴절현상을 렌더링한다. 굴절 물체의 반사(reflection) 현상은 프레넬 항(Fresnel term)을 근사(approximation)해서 효율적으로 표현하였다. 또한 HDRI(High Dynamic Range Image)로 환경맵을 구성하여 자연광이 굴절 물체를 통해 굴절되어 보이는 현상을 생성하였다.
스테레오 정합에 직렬 유전자 알고리즘 적용의 일반적인 문제를 해결하기 위한 두 가지 방법을 제안한다. 먼저, 메모리 소비와 탐색의 비효율성 문제를 줄이기 위한 간소화된 개체군기반 증가 학습전략을 채택하고, 넓은 영역의 일관성 있는 변이들을 얻기 위한 변이 연속성을 위해 이웃한 화소간의 거리를 제어하는 구조를 삽입하였다. 또한 저사양 하드웨어 환경에서 사용될 수 있는 확률벡터를 위해 프로그램이 가능한 하드웨어인 GPU에서 수행될 수 있는 새로운 병렬 모델을 제안한다. 제안된 알고리즘을 CPU와 GPU에서 실험을 통해 수행 및 검증하였다. 실험결과에서 제안된 알고리즘이 이완처리를 포함한 전통적인 BMA 방법과 이를 수정한 버전보다 실행속도 및 안정성에 있어 보다 우수한 성능을 보였으며, GPU를 활용을 위한 제안된 방식의 계산시간이 보다 큰 영상에서 매우 효과적임을 보여준다.
본 연구는 액체의 광학, 역학적인 특징에 대해 알아보고 컴퓨터 그래픽스에서 액체를 구현하는 방식과 함께 높이맵을 기반으로 한 액체표현을 목표로 하고 있다. 빛은 액체와 만났을 때 반사, 굴절, 흡수 현상이 일어난다. 액체는 불순물이 많고 점성이 높을수록 반사율이 높으며 액체의 굴절률은 스넬의 법칙(snell's law)을 이용하여 구할 수 있다. 역학적으로 액체는 임의의 크기로 전단응력을 받을 때, 연속적으로 변형하는 물질이라 정의 내릴 수 있으며 액체에 적용되는 기본적인 운동법칙들은 고체에 적용하는 운동법칙과 접근방법에서는 유사하다. 본 연구에서 환경 맵과 프레넬의 법칙을 이용한 반사 굴절을 구현하였으며 부드러운 액체의 표면을 생성하고 sin, cos곡선을 이용하여 유체의 높낮이를 자연스럽게 구현하였다.
실시간 그래픽스 응용에서 연체의 움직임을 효율적으로 생성하기 위해 다양한 방법이 제안되었다. 연 체 구성 요소들의 위상을 유지하기 위해서는 서로를 묶는 힘이 존재할 수밖에 없으며, 이는 강직도 (stiffness)로서 수치적분의 시간간격의 크기를 제한하고 효율성을 떨어트린다. 이를 해결하기 위해 시간간 격을 늘릴 수 있는 암시적 적분이 제안되었지만, 대규모 행렬이 포함된 선형시스템을 풀어야 해서 계산복 잡도가 크게 높아진다. 이 문제를 개선한 근사 기법들은 댐핑 효과의 증가와 정확성의 손실을 초래할 수 밖에 없다. 본 논문에서는 선형시스템을 풀지 않고도 안정성은 크게 높이기 위해 조화진동에 근거하여 스 프링 힘을 적분하고, 이를 근사 암시적 기법과 결합하여 안정성을 극대화 하는 방법을 제안한다. 이 기법 은 GPU를 통한 병렬화가 용이하여 거대한 규모를 가진 연체 객체의 움직임을 실시간에 생성할 수 있다.
볼륨 광선 투사법은 볼륨 데이터를 가시화하는 기법 중 고화질 영상을 만들어내는 기법이다. 하지만 일반적으로 볼륨 데이터는 매우 크기 때문에 렌더링 시간이 오래 걸리는 문제가 있다. 이를 보완하기 위하여 최근에는 GPU를 이용하여 볼륨 광선 투사법을 가속화하는 많은 기법들이 연구되고 있다. 본 논문에서는 볼륨 광선 투사법을 가속화하기 위한 GPU 기반의 옥트리 탐색을 통한 효과적인 빈 공간 도약 기법을 제안한다. 여기서는 최대-최소 옥트리를 생성하고 옥트리의 루트 노드부터 정점분할을 이용하여 빈 공간을 식별한다. 찾아낸 빈 공간을 삭제함으로써 볼륨 데이터에서 의미 있는 객체를 둘러싸는 바운딩 다면체를 최소화 시킨다. 최소화 된 바운딩 다면체에 대해서만 렌더링을 진행함으로써 기존의 볼륨 광선 투사법과 비교하여 빠른 시간에 동일한 결과물을 생성한다.
논문은 GPU를 이용한 무리 짓기에 대한 병렬 알고리즘을 제안한다. 이를 위하여 GPU의 병렬처리 구조로 CUDA를 사용하였으며, 그것의 특성 및 제한 요소들을 분석하였다. 이의 특성 및 제한 요소를 기초로 무리 짓기에서 가장 많은 비용을 요구하는 이웃 에이전트들을 찾는 것을 병렬화 함으로써 성능을 개선하였다. 제안된 알고리즘을 GTX 285상에서 구현하였고, 그것의 성능을 실험적으로 기존의 공간분할 알고리즘과 비교하였다. 비교의 결과는 제안된 알고리즘이 실행 시간 관점에서 최대 9배 정도 우수하다는 것을 보였다.