DOI QR코드

DOI QR Code

병렬 분산 컴퓨팅을 이용한 초다광원 3차원 물체의 홀로그램 고속 생성

Fast Hologram Generating of 3D Object with Super Multi-Light Source using Parallel Distributed Computing

  • 송중석 (한양대학교 컴퓨터소프트웨어학과) ;
  • 김창섭 (한양대학교 컴퓨터공학부) ;
  • 박종일 (한양대학교 컴퓨터공학부)
  • Song, Joongseok (Department of Computer Software, Hanyang University) ;
  • Kim, Changseob (Department of Computer Science and Engineering, Hanyang University) ;
  • Park, Jong-Il (Department of Computer Science and Engineering, Hanyang University)
  • 투고 : 2015.07.27
  • 심사 : 2015.09.23
  • 발행 : 2015.09.30

초록

컴퓨터 생성 홀로그램(CGH: computer-generated hologram) 기법은 일반적인 범용 컴퓨터(PC: personal computer)에서도 홀로그램을 쉽게 생성해주는 기술이다. CGH 알고리즘의 연산량은 생성하려는 홀로그램의 해상도 크기와 3D (three-dimensional) 물체의 광원 개수에 따라 결정되기 때문에, 초다광원 물체나 초고해상도 홀로그램을 생성하기 위해서는 방대한 양의 연산이 요구된다. 따라서 CGH 기법을 실용적으로 사용하기 위해서는 CGH 연산량을 줄이거나, 하드웨어의 연산 속도를 높이는 방법이 필요하다. 본 논문에서는 병렬 분산 컴퓨팅을 이용하여 초다광원 3차원 물체의 홀로그램을 고속으로 생성할 수 있는 시스템을 제안한다. 기존의 방법들은 주로 단일 PC를 이용하여 고속으로 CGH를 연산하는 방법을 사용했기 때문에 연산 능력을 증가시키는데 한계가 있었던 반면, 본 논문에서 제안하는 방법은 서버 PC가 일반적인 GPU가 장착되어 있는 다수의 클라이언트 PC들의 연산 능력을 효율적으로 사용하여 초다광원 물체에 대해 고속으로 CGH를 연산할 수 있다. 실험 결과, 제안하는 방법을 사용하면 157,771개의 광원을 갖는 초다광원 3차원 물체에 대해 1,5361,536 해상도를 갖는 홀로그램을 약 121ms로 생성할 수 있음을 확인할 수 있었다. 또한, 클라이언트 PC의 수를 증가시킬수록 디지털 홀로그램을 생성하는 시간이 줄어드는 것을 확인할 수 있었다.

The computer generated hologram (CGH) method is the technology which can generate a hologram by using only a personal computer (PC) commonly used. However, the CGH method requires a huge amount of calculational time for the 3D object with a super multi-light source or a high-definition hologram. Hence, some solutions are obviously necessary for reducing the computational complexity of a CGH algorithm or increasing the computing performance of hardware. In this paper, we propose a method which can generate a digital hologram of the 3D object with a super multi-light source using parallel distributed computing. The traditional methods has the limitation of improving CGH performance by using a single PC. However, the proposed method where a server PC efficiently uses the computing power of client PCs can quickly calculate the CGH method for 3D object with super multi-light source. In the experimental result, we verified that the proposed method can generate the digital hologram with 1,5361,536 resolution size of 3D object with 157,771 light source in 121 ms. In addition, in the proposed method, we verify that the proposed method can reduce generation time of a digital hologram in proportion to the number of client PCs.

키워드

Ⅰ. 서 론

최근 들어 3D TV(three-dimensional television)가 대중적으로 널리 보급되고, 3D 영상 물의 점진적 증가로 인해, 입체 영상은 미디어 컨텐츠의 하나로 굳건히 자리 잡고 있다. 이에 따라, 입체 영상을 궁극적으로 표현할 수 있는 홀로그래피(holography)에 대한 관심도 서서히 커지고 있다. 홀로그래피는 실제 공간에 있는 물체에 대한 3차원 정보를 광학계 장치(optical system)를 이용하여 특수한 필름에 기록하고, 3차원 정보가 기록된 필름으로부터 물체의 3차원 영상을 복원하는 기술을 의미한다. 이 과정에서 생성된 필름을 홀로그램(hologram)이라고 부른다. 광학계 장치를 이용한 홀로그램 생성은 많은 단점들이 있는데[1], 첫째는 광학계 장치의 민감성이다. 그림 1에 나와 있듯이, 광학계 장치는 레이저 광원, 거울, 광 분리기 등의 많은 광학 장치들로 구성되어 있는데 물리적인 진동이나 주변의 조명 환경에 많은 영향을 받을 수 있어 홀로그램을 생성할 때 이에 대한 통제가 반드시 수반되어야 한다. 둘째는 광학계 장치의 고비용 문제다. 광학계 장치는 상당히 고가인 경우가 많고 이를 제어하기 위한 광학 지식 또한 필수적으로 요구된다. 이렇듯, 광학계 장치를 이용한 홀로그램 생성은 실용적으로 사용하는데 다소 제약이 많다. 이러한 문제들을 해결하기 위해, 1966년, Brown과 Lohmann이 일반적으로 사용되는 PC(personal computer)를 이용하여 홀로그램을 생성할 수 있는 컴퓨터 생성 홀로그램(CGH: computer-generated hologram)기법을 제안하였다[2]. 이 방법은 기존의 광학계 장치와 광학 변수들을 수학적으로 모델링 하여 고가의 광학계 장치 없이 컴퓨터만 사용하여 홀로그램을 생성할 수 있다. 이렇게 만들어진 홀로그램을 디지털 홀로그램(digital hologram)이라고 부른다. 하지만 이 방법은 알고리즘의 특성상 방대한 양의 연산량을 요구하기 때문에, 디지털 홀로그램을 생성하는데 많은 시간이 소모되어 실용적으로 사용하는데 한계가 있다. 이러한 문제를 해결하기 위해 국내외에서 고속 CGH 연산에 대한 많은 연구들이 진행되고 있다[2-5]. 고속 CGH 연산을 위한 연구는 크게 GPU(graphic processing unit)를 사용하는 방법과 FPGA(field programmable gate array)를 사용하는 방법으로 나눌 수 있다. FPGA의 경우, 방대한 양의 연산을 고속으로 처리할 수 있다는 장점이 있으나, 한번 구현하면 수정이 어렵고, 구현 비용이 많이 든다는 단점이 있다[3]. 반면에, GPU를 사용하는 방법은 FPGA를 이용한 방법과 같이 방대한 양의 연산을 고속으로 처리할 수 있다는 장점을 갖춤과 동시에, 구현 및 수정이 자유롭고 집에서 사용되는 일반 PC의 GPU를 사용하므로 구현 비용이 FPGA에 비해 상대적으로 낮다는 장점이 있다.

그림 1.홀로그램의 기록과 복원 Fig. 1. The recording and reconstruction of the hologram

일본의 Chiba대에서는 GPU를 사용하여 HD(high-definition)급 해상도를 갖는 홀로그램을 고속으로 생성하는 기술을 제안한 바 있고[4], 한국의 한양대에서는 다수의 GPU를 사용하여 HD급 해상도를 갖는 홀로그램을 고속 생성하는 기술을 제안하였다[5]. 이러한 방법들은 고속으로 홀로그램을 생성할 수는 있으나, 광원의 개수가 1,000개일 경우에 해당하기 때문에 수십만 개 이상의 초다광원을 갖는 3차원 물체에 대해서는 홀로그램을 고속으로 생성하기 힘들다. 최근에 제작되는 영상 컨테츠들의 해상도는 최소 HD급 이상의 고해상도를 갖추고 있기 때문에 훗날 HD 급 홀로그램 영상 컨텐츠를 제작하기 위해서는 초다광원 3차원 물체에 대해 고속으로 CGH를 연산할 수 있는 시스템이 필요하다. 한양대에서 제안한 기술의 경우, 다수의 GPU를 이용하여 고속으로 CGH를 생성할 수 있으나, PC 한 대에 설치할 수 있는 GPU의 개수가 제한적이기 때문에 초다광원 3차원 물체를 고속으로 생성하는데 한계가 있고, 또한 GPU의 개수를 늘린다 하더라도 GPU 간 동기화 문제로 인해 연산의 효율성이 계속 떨어지게 된다. 하지만 일반적인 GPU가 장착되어 있는 다수의 PC의 연산 능력들을 활용할 수 있다면 CGH 연산 능력은 크게 증대될 수 있다. 본 논문에서는 일반적인 GPU가 장착되어 있는 다수의 PC를 네트워크 통신을 통해 연결하고 서버 PC에서 이들의 연산 능력을 효율적으로 사용하여 초다광원 3차원 물체에 대해 고속으로 CGH를 연산할 수 있는 시스템을 제안한다.

본 논문의 구성은 다음과 같다. 2장에서는 CGH에 대해 서술하고 있고, 3장에서는 GPU 기반 CGH 연산에 대해 설명하고 있다. 4장에서는 본 논문에서 제안하는 방법에 대해 설명하고 있으며, 5장에서는 본 논문의 실험 결과를 나타내고 있다. 마지막으로 6장에서는 본 논문의 결론을 맺고 있다.

 

Ⅱ. 컴퓨터 생성 홀로그램(CGH)

일반적인 홀로그램은 그림 1과 같이 광학계 장치를 통해 생성될 수 있다. 생성 과정은 다음과 같다. 먼저 레이저 광원에서 빔(beam)이 나오고 이 빔은 광 분리기를 통해 두 방향으로 나뉘게 된다. 하나의 빔은 홀로그램으로 만들고자 하는 물체에 조사되고, 다른 빔은 필름 방향으로 직접 조사된다. 이때 물체에 조사되는 빔을 물체파(object wave)라고 하며 이 빔은 물체에 조사된 후 다시 필름 쪽으로 재조사된다. 광원에서 필름으로 바로 조사되는 빔은 기준파(reference wave)라고 한다. 필름 방향으로 물체파와 기준파가 조사되면서 두 빔이 만나게 되는데 이때 빛의 간섭(interference)현상에 의해 간섭무늬(interference pattern)가 발생한다. 이때 발생되는 간섭무늬는 필름에 그대로 기록이 되고, 간섭무늬가 기록된 이 필름을 홀로그램이라 부른다. 생성된 홀로그램에 생성시 사용했던 기준파를 다시 그대로 조사해주면 물체의 상이 그대로 나타나게 된다. 위와 같은 홀로그램 생성 과정 중, 물리적인 진동이 발생하거나 주변 광원의 영향을 직간접적으로 받게 된다면 광학계에 의해 간섭무늬가 바뀌게 되므로 물체의 홀로그램을 정상적으로 생성할 수가 없다. 그러므로 본 논문에서는 Brown과 Lohmann이 제안한 CGH 기법을 사용하여 디지털 홀로그램을 생성한다. CGH 기법은 기존의 광학계 장치와 광학 변수들을 수학적으로 모델링하여 일반적인 PC로도 홀로그램을 생성할 수 있게 해주는 방법으로 식 (1)과 같이 나타낼 수 있다[2].

표 1.CGH 광학계 파라미터 Table 1. CGH Optics Parameter

식 (1)을 통하여, 3차원 물체의 각 광원의 위치로부터, 생성하려는 홀로그램의 각 화소에 도달하는 거리 값에 따라 계산되는 빛의 강도 값들을 누적하여 디지털 홀로그램의 각 화소 값을 결정할 수 있다. 즉, 물체의 각 광원마다 홀로그램 해상도 크기의 간섭무늬가 한 장씩 생성되고 광원의 개수만큼 생성된 간섭무늬들을 하나로 누적하면 디지털 홀로그램이 생성된다. 그림 2는 CGH를 이용한 홀로그램 생성에 대해 나타내고 있다. 일반적으로 깊이 영상이 x, y, z의 3차원 정보를 담고 있고, CGH 연산 과정에서는 3차원 객체의 깊이 영상에서 z값이 ‘0’이 아닌 화소를 광원이라고 가정한다. 그림 2에서 볼 수 있듯이, 물체의 각 광원마다 CGH 연산을 통해 간섭무늬를 한 장씩 생성하고, 이들을 하나로 누적하여 디지털 홀로그램을 생성한다.

그림 2.컴퓨터 생성 홀로그램의 생성 과정 Fig. 2. The process of generating of computer-generated-hologram

 

Ⅲ. GPU 기반 CGH 연산

CGH 기법은 식 (1)과 그림 2에서 볼 수 있듯이, 3차원 객체의 광원의 개수와 생성하려는 디지털 홀로그램의 해상도 크기를 곱한 값만큼, CGH 연산을 반복 수행해야 한다. 예를 들어, 200200 개의 광원을 갖는 3차원 객체에 대해서 1,9201,080 크기의 홀로그램을 생성한다면, 82,944,000,000(약 830억)번의 CGH 연산을 수행해야 한다. 그러므로 실용적으로 홀로그램을 사용하기 위해서는 이런 방대한 양의 연산을 고속으로 처리할 수 있는 기법이나 시스템이 필요하다. 일반적으로 PC를 이용한 알고리즘 연산은 CPU(central processing unit)를 사용하는데, 그림 3과 같이 CPU는 연산을 담당하는 연산 코어의 수가 적어 한 번에 많은 양의 연산을 처리할 수 없다. 반면, GPU의 경우 연산 코어의 수가 CPU에 비해 상대적으로 많기 때문에 동시에 많은 양의 연산을 처리할 수가 있다. 이러한 GPU의 장점 때문에 GPU를 이용하여 고속으로 CGH를 연산하는 연구들이 많이 진행되어 왔다[4,5]. GPU를 이용해 CGH를 연산하는 흐름은 그림 4와 같다.

그림 3.CPU와 GPU의 구조적 차이 Fig. 3. The structural difference between CPU and GPU

그림 4.GPU를 이용한 CGH 연산 흐름도 Fig. 4. The flowchart of CGH calculation using GPU

본 논문에서는 GPU를 다루기 위한 플랫폼으로 CUDA (computer unified device architecture)를 사용하고 있다. CUDA는 그림 4에서 볼 수 있듯이, Host와 Device로 작업 부분이 나뉘는데 Host에서는 주로 처리할 데이터를 정의하고 정의된 데이터를 kernel로 전송한다. kernel은 주로 GPU의 멀티 코어를 이용하여 알고리즘을 고속으로 연산하는 역할을 맡는다. GPU를 이용한 CGH의 순서는 다음과 같다. Host 단에서 먼저 3차원 물체의 광원 정보들로 이루어진 룩업테이블(LUT: look-up table)을 생성한다. 생성된 룩업테이블은 실수형 데이터로 구성되어 있으며, 이는 고속으로 CGH를 연산하기 위해 GPU의 kernel로 전송된다. kernel은 전송받은 광원 데이터를 GPU를 통해 고속 CGH 연산을 수행한다. kernel에 의해 연산된 결과는 다시 Host로 전송되어 홀로그램이 생성된다. 그림 5는 GPU를 이용하는 CGH 연산이 어떻게 수행되는지 나타내고 있다.

그림 5.GPU를 이용한 CGH 연산 Fig. 5. The CGH calculation using GPU

3차원 객체의 각 광원마다 CGH 연산을 통해 홀로그램의 각 화소 값을 생성한다. 이때, CUDA에서 Grid와 Block 단위로 작업들을 그룹으로 묶으면, 다수의 코어를 이용해 그룹 단위로 한 번에 연산한다. 그림 5에서 볼 수 있듯이, CGH는 병렬성을 갖고 있는 알고리즘이기 때문에 CUDA와 같은 병렬처리 플랫폼을 사용하는 것이 매우 효과적이다. CUDA는 코어의 개수가 많으면 많을수록, 한 번에 연산할 수 있는 작업량이 많아지기 때문에, 본 논문에서는 다수의 GPU를 통해 코어의 개수를 늘리고 이를 이용하여 CGH를 고속으로 연산하는 방법을 사용하였다[5]. 그림 6은 다수의 GPU를 사용하여 CGH를 연산하는 기법을 나타낸다. 과정은 다음과 같다. 우선, 3차원 객체 영상에서 광원 정보를 실수형 룩업테이블에 저장한 후, 형성된 룩업테이블은 GPU의 개수에 맞게 균등하게 분할된다. 분할된 룩업테이블은 각 GPU의 메모리에 할당되고, CUDA는 할당된 룩업테이블을 이용하여 각 GPU에서 고속으로 CGH를 연산한다. 이 과정을 통해 GPU에서는 간섭무늬가 각각 한 장씩 생성되고, 생성된 간섭무늬들을 하나로 누적하면 디지털 홀로그램이 생성된다.

그림 6.다중 GPU 기반 CGH 연산 흐름도 Fig. 6. The flowchart of the CGH calculation using multiple-GPUs

 

Ⅳ. 병렬 분산 컴퓨팅을 이용한 CGH 연산 시스템

기존의 다중 GPU 기반 CGH 기법은 약 2,000개의 광원에 대해서 HD급 홀로그램을 실시간으로 연산할 수 있다[5]. 하지만, 광원이 10만 개 이상인 초다광원 객체에 대해서는 기존 방법으로는 고속 연산이 어렵다. 한 대의 일반 PC에서 GPU의 개수를 지속적으로 늘리는 것은 물리적인 한계가 있으며, CGH의 고속 연산을 위해서 고성능 GPU를 다수 구매하여 PC에 장착하는 것 또한 고비용을 요구한다는 단점이 있다. 그러므로 본 논문에서는 이러한 문제를 해결할 수 있는 병렬 분산 컴퓨팅 기반의 CGH 연산 시스템을 제안한다. 제안하는 시스템은 한 개의 서버 PC와 다수의 클라이언트 PC들로 구성되어 있으며, 이들 PC들은 TCP/IP(transmission control protocol/ internet protocol) 네트워크로 연결되어 있다[6]. 그림 7은 제안하는 시스템의 구성을 나타내고 있다.

그림 7.병렬 분산 컴퓨팅 기반의 CGH 연산 시스템 흐름도 Fig. 7. The flowchart of the parallel distributed computing-based CGH calculation system

그림 7에서 볼 수 있듯이, 서버 PC에서는 3차원 객체로부터 광원 정보를 수집하고, 이를 룩업테이블에 할당한다. 광원 정보가 할당된 룩업테이블은 각 클라이언트 PC의 연산 능력에 맞게 분할되고, 분할된 룩업테이블을 각 클라이언트 PC에 전송한다. 클라이언트 PC들은 3장에서 설명하고 있는 다중 GPU 기반 CGH 연산 기법으로 구현이 되어 있으며[5], 이들은 할당받은 룩업테이블을 이용해 CGH 연산을 수행한다. CGH 연산을 통해 생성된 간섭무늬들은 다시 서버 PC로 전송되고, 서버 PC에서는 이들을 하나로 누적하여 디지털 홀로그램을 생성하게 된다. 제안하는 방법의 장점은 다음과 같다. 첫째, 서버 PC는 고성능 GPU가 필요 없다. 그림 7에서 볼 수 있듯이, 서버 PC에서는 광원 정보의 수집, 광원 정보 LUT의 생성 및 분할, 클라이언트 PC와의 정보 송수신, 디지털 홀로그램 생성의 역할을 주로 담당하기 때문에, GPU를 이용하는 작업이 없다. 따라서 서버 PC가 클라이언트 PC들과 네트워크 연결이 되어 있으면 GPU가 없어도 고속으로 CGH 연산을 수행할 수 있다. 둘째, CGH 연산 능력을 계속 증가시킬 수 있다. 제안하는 시스템은 서버 PC와 클라이언트 PC들 간에 동적 연결을 기반으로 구성이 되어있기 때문에[7], 이론적으로 클라이언트 PC의 수를 계속 증가시킬 수 있다. 그러므로 CGH 연산 능력 역시 클라이언트 PC 수에 따라 향상될 수 있다. 셋째, 제안하는 시스템은 서버 PC와 클라이언트 PC의 물리적 거리를 전혀 고려하지 않는다. 제안하는 시스템은 TCP/IP 네트워크를 기반으로 구성되어 있기 때문에 같은 네트워크에 연결되어 있다면 PC들 간의 물리적 거리는 고려하지 않아도 된다. 넷째, 제안하는 시스템은 클라이언트 PC들의 다양한 연산 능력에 대해 적응적으로 대처할 수 있다. 각 클라이언트 PC에 장착되어 있는 GPU들의 성능은 모두 다를 수 있기 때문에, 클라이언트 PC들의 CGH 연산 시간의 차이를 최소화하기 위해서는, 서버 PC가 클라이언트 PC들의 연산 능력들을 파악하고 이에 따라 광원 정보를 적응적으로 할당할 수 있는 기술이 필요하다. 제안하는 시스템은 이러한 기술을 알고리즘으로 구현하였다.

1. 서버 PC와 클라이언트 PC들 간의 동적 연결

제안하는 시스템은 그림 7과 같이 하나의 서버 PC와 다수의 클라이언트 PC들로 구성되어 있다. 클라이언트 PC의 수는 동적으로 계속 증가시킬 수 있는데, 그림 8과 같은 구조를 갖고 있다. 서버 PC에서는 Main 스레드에서 일단 Listen 스레드를 생성하고, Listen 스레드를 이용해 통신 포트를 개방한다. 클라이언트 PC들은 개방된 포트를 통해 서버의 스레드들과 연결하여 서버 PC와 통신한다. 새로운 클라이언트 PC가 추가될 때마다 Listen 스레드에서는 새로운 스레드를 생성하고, 새로 생성된 스레드에 새로 추가된 클라이언트 PC와 통신할 때 필요한 정보들을 전송한다. 서버 PC는 Main 스레드를 통해 알고리즘을 수행하기 위한 command를 각 스레드들에게 전송할 수 있다.

그림 8.서버 PC와 클라이언트 PC간의 통신 구조 Fig. 8. The structure of communication between server PC and client PCs

2. 서버 PC의 광원 분배 과정

그림 9는 서버 PC와 클라이언트 PC간의 통신 흐름을 나타내고 있다. 통신은 미리 정의된 규칙에 따라 수행된다. 클라이언트 PC가 서버 PC에 연결되면, 클라이언트 PC는 자신의 정보를 서버 PC로 전송한다. 그 이후, 클라이언트 PC는 서버 PC로부터 command를 받아 이를 수행한다. 초다광원 객체에 대해 CGH 연산을 수행하기 전, 제일 먼저 광원 정보들을 각 클라이언트 PC들에 분산 전송을 해야 하는데, 다중 GPU 기반 CGH 기법에서는 광원 정보를 균등 분산한 것과는 달리 각 클라이언트 PC들의 연산 능력에 따라 차등 분산을 해야 한다. 연산 능력이 더 뛰어난 클라이언트 PC에 더 많은 양의 광원 정보를 할당하고, 연산 능력이 다소 낮은 클라이언트 PC에는 적은 양의 광원 정보를 할당하여, 전체 클라이언트 PC들의 CGH 연산 시간의 차이를 최소화하는 과정이 필요하다. 이를 위해 서버 PC에서는 Test command를 통해 동일한 양의 광원 정보를 모든 클라이언트 PC들에 전송하고, 각 클라이언트 PC에서는 이를 수신하여 CGH 연산을 수행한다. 각 클라이언트 PC에서는 CGH 연산에 걸린 시간을 측정하고 이 시간 정보를 다시 서버 PC로 전송한다. 그러면, 서버 PC에서는 전송 받은 CGH 연산 시간들을 이용하여 각 클라이언트 PC의 연산 능력을 계산한다. 식 (2), (3)은 각 클라이언트 PC의 연산 능력을 계산하는 과정을 나타낸다.

그림 9.서버 PC와 클라이언트 PC들 간의 통신 흐름도 Fig. 9. The flowchart of communication between a sever PC and client PCs

식 (2)에서 ti는 각 클라이언트 PC가 Test command를 통해 전송받은 동일한 양의 광원에 대해 CGH 연산을 수행하는데 소요된 시간을 의미하고, pi는 각 클라이언트 pc의 CGH 연산 능력을 의미한다. i는 클라이언트 PC들의 index를 의미한다. 식 (3)에서 L은 객체의 광원 총 수를 의미하고, Li는 각 클라이언트 PC에 할당하는 광원 정보 양을 나타낸다. 위 식을 통해, 서버 PC가 각 클라이언트 PC마다 연산 능력에 맞는 광원 정보 양을 할당함으로써, 전체 클라이언트 PC의 CGH 연산 시간의 차이를 최소화시킬 수 있다.

3. 클라이언트 PC의 CGH 연산과 간섭 패턴들의 누적

서버 PC에서는 Target command를 통해, 디지털 홀로그램으로 만들고자 하는 초다광원 객체의 광원 정보를 각 클라이언트 PC에 식 (2),(3)을 이용하여 적응적으로 분산 전송하고, 각 클라이언트 PC에서는 이를 이용해 CGH 연산을 수행한다. 각 클라이언트 PC에서 생성한 간섭무늬들은 다시 서버 PC로 전송되고, 이 무늬들은 하나로 누적되어 디지털 홀로그램을 생성한다. 다수의 클라이언트 PC들이 간섭무늬들을 서버 PC로 전송할 때 동시에 접근하게 되는 경우가 발생하게 되는데, 이 영역이 크리티컬 섹션이 되므로 병목현상이 발생할 수 있다[8]. 그러므로 이를 방지하기 위해서 스레드 제어가 필수적인데, 제안하는 방법은 간섭무늬들을 수신하는 시간이 전부 다르기 때문에 이러한 별도의 제어가 필요가 없다.

 

Ⅴ. 실험 결과

본 논문에서는 크게 두 가지 실험을 실시하였다. 하나는 클라이언트 PC를 증가시킬수록 CGH 연산 시간이 어떻게 변화하는지에 대한 실험이고, 다른 하나는 초다광원 객체에 대해 디지털 홀로그램을 생성할 때, 제안하는 방법과 기존 방법 (다중 GPU 기반 CGH 연산)의 CGH 연산 시간을 비교하는 실험이다. 표 2는 실험에 사용한 클라이언트 PC들의 GPU의 스펙을 나타낸 것이다. 서버 PC의 경우 intel i7-3820, 3.8GHz의 CPU와 GTX TITAN 2대의 GPU가 장착되어 있고, 32GB의 램이 설치되어 있다.

표 2.클라이언트 PC들의 GPU 모델 Table 2. The GPU model of the client PCs

본 실험에서 사용한 클라이언트 PC들은 CUDA를 사용할 수 있는 NVIDIA 사의 GTX GPU series들이 장착되어 있다. 6번 클라이언트 PC 같은 경우 GTX 590 두 대가 장착이 되어 있다. 서버 PC와 클라이언트 PC용 프로그램을 각각 C/C++로 구현하였으며, 이를 위해 OpenCV 2.4.10 라이브러리와 CUDA 6.5 플랫폼을 사용하였다.

1. 클라이언트 PC 수에 따른 CGH 연산 시간

본 실험에서는 34,092개의 광원을 갖는 3차원 객체에 대해 1,5361,536 해상도를 갖는 디지털 홀로그램을 생성하였으며, 표 2의 인덱스의 순서에 따라 실험을 진행하였다. 한 대를 실험할 때는 1번 클라이언트 PC에 대해서만 실험을 진행하고, 두 대를 실험할 때는 1번과 2번 클라이언트 PC에 대해서 실험을 진행하고, 세 대를 실험할 때는 1번부터 3번까지 클라이언트 PC들에 대해 실험을 진행하였다. 이런 방법으로 총 여덟 대까지 증가시키며 실험을 수행하였으며 그 결과는 표 3과 그림 10과 같다.

표 3.클라이언트 PC의 수에 따른 CGH 연산 시간 Table 3. The CGH calculation time according to the number of client PCs

그림 10.클라이언트 PC와 CGH 연산 시간과의 관계 Fig. 10. The correlation between the number of client PCs and CGH calculation time

실험 결과, 제안하는 시스템에서 클라이언트 PC의 수를 증가시킬수록 CGH 연산 시간이 비례하여 감소하는 것을 확인할 수 있었다. 하지만, 표 3에서 볼 수 있듯이, 클라이언트 PC의 수가 증가할수록 연산 결과의 수신시간(the average reception time)이 늘어나는 것을 볼 수 있었다. 표 3의 수신시간의 경우, 각 클라이언트 PC의 수신시간들의 평균으로 계산하였다.

2. 기존 방법과의 제안하는 방법 간의 초다광원 객체에 대한 CGH 연산 시간 비교

본 실험에서는 실험 1보다 많은 157,771(약 16만)개의 광원을 갖는 3차원 객체에 대해 1,5361,536 해상도를 갖는 디지털 홀로그램을 생성하였으며, 제안하는 시스템은 클라이언트 PC 여덟 대를 갖고 실험하였으며, 기존의 방법은 다중 GPU 기반 CGH 연산을 수행하는데 클라이언트 PC 6번을 갖고 실험을 하였다. 표 4는 실험 결과를 나타낸다.

표 4.기존 방법과 제안하는 방법 간의 초다광원 CGH 연산 시간 비교 Table 4. The comparison of CGH calculation time on super multi-light sources between traditional method and proposed method

기존 방법은 초다광원 객체의 홀로그램 생성시간이 3,379ms가 소요되는 반면, 제안하는 방법은 122ms가 소요되는 것을 확인할 수 있었다. 본 실험을 통해, 제안하는 방법이 기존 방법에 비해 약 28배 더 빠르게 초다광원 홀로그램을 생성하는 것을 확인할 수 있었다.

 

Ⅵ. 결 론

본 논문에서는 수십만 개의 광원을 갖는 초다광원 객체에 대한 디지털 홀로그램을 고속으로 생성할 수 있는 시스템을 제안하였다. 실험 결과, 제안하는 방법에서 클라이언트 PC의 수를 증가시킬수록 CGH 연산 시간을 줄일 수 있는 것을 확인할 수 있었고, 따라서 기존 방법에 비해 제안하는 방법이 초다광원 객체의 홀로그램을 생성하는데 더 효율적이라는 것을 확인할 수 있다. 하지만, 각 클라이언트 PC에서 간섭무늬들을 수신하는데 걸리는 시간이 클라이언트 PC의 수에 비례하여 증가되는 것을 확인할 수 있었다. 그 이유는 라우터(router)와 같은 네트워크 장비의 성능에 따라 수신 속도가 좌우되기 때문인데, 이러한 문제는 고가의 네트워크 장비를 사용하거나, 시간에 따른 자연스러운 통신망 기술의 발달을 통해 해결될 수 있다. 현재 제안하는 시스템은 NVIDIA사의 GTX GPU series에서만 동작할 수 있게 CUDA 플랫폼으로 구현되어 있으나, 앞으로는 모든 종류의 GPU에서 동작할 수 있도록 현재의 클라이언트 프로그램을 OpenCL 플랫폼 기반으로 구현할 계획이다.

참고문헌

  1. W. H. Ryu and M. H. Jeong, “A study on three-dimensional computer generated holograms by 3-D coordinates transformation”, Applied Optical Society of Korea, volume 17, pp. 525-531, December 2006
  2. B. R. Brown and A. W. Lohmann, “Complex spatial filtering with binary masks”, Applied Optics, vol. 5, pp. 967-969, 1966. https://doi.org/10.1364/AO.5.000967
  3. T. Shimobaba and T. Ito, “An efficient computational method suitable for hardware of computer-generated hologram with phase computation by addition”, Comput. Phys. Commun., vol. 138, No. 1, pp. 44-52, 2001. https://doi.org/10.1016/S0010-4655(01)00189-8
  4. T. Shimobaba, T. Ito, N. Masuda, Y, Ichihashi, and N. Takada, “Fast calculation of computer-generated-hologram on AMD HD5000 series GPU and OpenCL”, Optics Express, vol. 18, No. 10, pp. 9955-9960, May, 2010. https://doi.org/10.1364/OE.18.009955
  5. J. Song, J. Park, H. Park, and J.-I. Park, “Real-time generation of high definition resolution digital holograms by using multiple graphic processing units,” Opt. Eng. 52, 015803, 2013. https://doi.org/10.1117/1.OE.52.1.015803
  6. J. Song, C. Kim, J.-I. Park, "Digital Hologram Generating of 3D Object with Super-multi-light-source,“ 2015 Korean Society of Broadcast Engineers Summer Conference, 2015.
  7. C. Kim, J. Song, D, J.-I. Park, "Implementation of computer- generated hologram using TCP network communication,“ 2015 Korean Society of Broadcast Engineers Summer Conference, 2015.
  8. E. Dijkstra. "Solution of a Problem in Concurrent Programming Control", Communications of the ACM, volume 8, pp. 569, 1965. https://doi.org/10.1145/365559.365617