전력 소모 증가와 칩 내부 온도 증가라는 문제점들로 인해 동작 주파수 증대를 통해 CPU의 성능을 향상시키는 기법은 점차 한계에 다다르고 있다. 이와 같은 상황에서, CPU의 작업량을 줄여주는 GPU를 활용하는 것은 컴퓨터 시스템의 성능을 향상시키기 위해 사용되는 대표적인 방안 중 하나이다. GPU는 그래픽 작업을 위해 개발된 프로세서로 기존에는 그래픽 작업들만을 전담으로 처리하여 왔지만, CUDA와 같이 GPU 자원을 쉽게 활용할 수 있는 기술이 점차 개발됨에 따라서 GPU를 범용 연산에 활용함으로써 고성능 컴퓨터 시스템을 구현하는 기법이 주목을 받고 있다. 본 논문에서는 다양한 응용프로그램들을 수행하는 경우에 CPU와 GPU가 동시에 활용되는 고성능 컴퓨터 시스템을 목표로, 시스템에서 발생하는 온도와 에너지 효율성을 상세하게 분석하고자 한다. 이를 통해, CPU와 GPU가 동시에 활용되는 컴퓨터 시스템에서 향후 발생 가능한 온도와 에너지 소비 측면에서의 문제점들을 제시하고자 한다. 온도 분석 결과를 살펴보면, GPU를 이용하여 응용프로그램을 수행하는 경우에는 CPU와 GPU의 온도가 동시에 모두 상승하는 것을 할 수 있다. 이와 달리, CPU를 이용하여 응용프로그램을 수행하는 경우에는 GPU의 온도는 거의 변화가 없이 유지되고, CPU의 온도만이 지속적으로 상승한다. 에너지 효율성 측면에서 살펴보면, GPU를 이용하는 것이 CPU를 이용하는 것과 비교하여 동일한 응용프로그램을 수행하는데 있어서 더 적은 에너지를 소비한다. 하지만, GPU는 CPU에 비해 더 많은 전력을 소모하기 때문에 1Wh의 에너지당 발생하는 온도는 CPU에 비해 GPU에서 훨씬 높게 나타난다.
전력 소모 증가와 칩 내부 온도 증가라는 문제점들로 인해 동작 주파수 증대를 통해 CPU의 성능을 향상시키는 기법은 점차 한계에 다다르고 있다. 이와 같은 상황에서, CPU의 작업량을 줄여주는 GPU를 활용하는 것은 컴퓨터 시스템의 성능을 향상시키기 위해 사용되는 대표적인 방안 중 하나이다. GPU는 그래픽 작업을 위해 개발된 프로세서로 기존에는 그래픽 작업들만을 전담으로 처리하여 왔지만, CUDA와 같이 GPU 자원을 쉽게 활용할 수 있는 기술이 점차 개발됨에 따라서 GPU를 범용 연산에 활용함으로써 고성능 컴퓨터 시스템을 구현하는 기법이 주목을 받고 있다. 본 논문에서는 다양한 응용프로그램들을 수행하는 경우에 CPU와 GPU가 동시에 활용되는 고성능 컴퓨터 시스템을 목표로, 시스템에서 발생하는 온도와 에너지 효율성을 상세하게 분석하고자 한다. 이를 통해, CPU와 GPU가 동시에 활용되는 컴퓨터 시스템에서 향후 발생 가능한 온도와 에너지 소비 측면에서의 문제점들을 제시하고자 한다. 온도 분석 결과를 살펴보면, GPU를 이용하여 응용프로그램을 수행하는 경우에는 CPU와 GPU의 온도가 동시에 모두 상승하는 것을 할 수 있다. 이와 달리, CPU를 이용하여 응용프로그램을 수행하는 경우에는 GPU의 온도는 거의 변화가 없이 유지되고, CPU의 온도만이 지속적으로 상승한다. 에너지 효율성 측면에서 살펴보면, GPU를 이용하는 것이 CPU를 이용하는 것과 비교하여 동일한 응용프로그램을 수행하는데 있어서 더 적은 에너지를 소비한다. 하지만, GPU는 CPU에 비해 더 많은 전력을 소모하기 때문에 1Wh의 에너지당 발생하는 온도는 CPU에 비해 GPU에서 훨씬 높게 나타난다.
As the clock frequency increases, CPU performance improves continuously. However, power and thermal problems in the CPU become more serious as the clock frequency increases. For this reason, utilizing the GPU to reduce the workload of the CPU becomes one of the most popular methods in recent high-pe...
As the clock frequency increases, CPU performance improves continuously. However, power and thermal problems in the CPU become more serious as the clock frequency increases. For this reason, utilizing the GPU to reduce the workload of the CPU becomes one of the most popular methods in recent high-performance computer systems. The GPU is a specialized processor originally designed for graphics processing. Recently, the technologies such as CUDA which utilize the GPU resources more easily become popular, leading to the improved performance of the computer system by utilizing the CPU and GPU simultaneously in executing various kinds of applications. In this work, we analyze the temperature and the energy efficiency of the computer system where the CPU and the GPU are utilized simultaneously, to figure out the possible problems in upcoming high-performance computer systems. According to our experimentation results, the temperature of both CPU and GPU increase when the application is executed on the GPU. When the application is executed on the CPU, CPU temperature increases whereas GPU temperature remains unchanged. The computer system shows better energy efficiency by utilizing the GPU compared to the CPU, because the throughput of the GPU is much higher than that of the CPU. However, the temperature of the system tends to be increased more easily when the application is executed on the GPU, because the GPU consumes more power than the CPU.
As the clock frequency increases, CPU performance improves continuously. However, power and thermal problems in the CPU become more serious as the clock frequency increases. For this reason, utilizing the GPU to reduce the workload of the CPU becomes one of the most popular methods in recent high-performance computer systems. The GPU is a specialized processor originally designed for graphics processing. Recently, the technologies such as CUDA which utilize the GPU resources more easily become popular, leading to the improved performance of the computer system by utilizing the CPU and GPU simultaneously in executing various kinds of applications. In this work, we analyze the temperature and the energy efficiency of the computer system where the CPU and the GPU are utilized simultaneously, to figure out the possible problems in upcoming high-performance computer systems. According to our experimentation results, the temperature of both CPU and GPU increase when the application is executed on the GPU. When the application is executed on the CPU, CPU temperature increases whereas GPU temperature remains unchanged. The computer system shows better energy efficiency by utilizing the GPU compared to the CPU, because the throughput of the GPU is much higher than that of the CPU. However, the temperature of the system tends to be increased more easily when the application is executed on the GPU, because the GPU consumes more power than the CPU.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
본 논문에서는 온도와 에너지 효율성 이외에, 에너지 소비에 따른 프로세서의 온도 상승률 또한 분석하고자 한다. 앞선 실험 결과에서 온도 상승 폭과 전력 소모량 모두 CPU가 GPU에 비해서 높다는 것을 확인한 바 있다.
CPU와 GPU를 모두 사용하는 컴퓨터 시스템에서는 성능뿐만 아니라, CPU와 GPU의 사용에 따른 온도 변화와 에너지 효율성 또한 고려되어야 할 요소이다. 본 논문에서는 응용프로그램을 수행하는 프로세서의 종류에 따른 프로세서의 온도와 에너지 효율성을 분석하였다. 온도 분석 결과, GPU를 이용하여 프로그램을 수행하는 경우에는 CPU를 배제하고 GPU 단독으로 동작할 수 없기 때문에 두 프로세서의 온도가 모두 상승하게 된다.
우리는 본 절에서 앞서 언급한 5가지의 프로그램을 CPU와 GPU에서 각각 수행하는 경우의 온도 패턴을 살펴보고자 한다. 그림 6은 CPU에서 응용 프로그램을 수행하는 경우의 온도 패턴을 보여주며, 그림 7은 GPU에서 응용 프로그램을 수행하는 경우의 온도 패턴을 보여주고 있다.
CPU 뿐만 아니라 GPGPU의 경쟁력 확보를 위해서도 저전력, 저온도 연구는 반드시 진행되어야 할 것으로 판단된다. 이에 따라, 본 논문에서는 저전력, 저온도 GPGPU 시스템을 개발하는 데 있어 기반 자료로 활용될 수 있도록 응용프로그램들을 CPU와 GPU를 활용하여 각각 수행하는 다양한 경우에 대해 시스템의 전력 효율성 및 온도를 분석하고자 한다. 이하 본 논문의 구성은 다음과 같다.
제안 방법
그림 4에서 보이는 바와 같이, 실험에서는 벤치마크 프로그램들을 CUDA를 활용하여 CPU와 GPU에서 각각 수행하고, 이에 따른 시스템의 온도 및 에너지 효율성을 측정한다. 실시간으로 CPU와 GPU의 온도를 측정하기 위하여 리눅스환경 하에서 CPU의 온도 정보를 포함한 다양한 상태 정보를 제공하는 Im-sensor 유틸리티와 GPU의 현재 온도 정보를 출력해주는 Nvclock 프로그램을 매 초마다 주기적으로 수행한다[23].
벤치마크 프로그램으로는 NVIDIA 홈페이지에서 CUDA를 이용해 구현되어 있는 많은 종류의 CUDA SDK 프로그램 중 3개의 프로그램(Matrix Transpose, Separable Convolution, Histogram)과 Parboil 벤치마크들 중 2개(CUTCP, SAD)를 선택하여 수행한다[21-22]. 벤치마크 프로그램에 대한 상세한 설명은 표 4에 기술한다.
대상 데이터
본 논문의 실험 대상 CPU인 Intel Core2 Duo는 인텔에서 출시한 x86 구조의 마이크로프로세서로 높은 주파수를 통한 성능 향상 보다는 다중 명령어 수행을 제공함으로써 성능 및전력 효율성을 향상시키고 발열 문제를 해결하는 구조를 기반으로 설계된 제품이다. 실험 대상 GPU인 NVIDIA Geforce 8500GT는 통합형 셰이더를 적용한 제품으로 16개의 셰이더를 통합하여 하나의 스트리밍 프로세서로 구성하고 연산 종류에 따라 픽셀과 버텍스 작업을 동적으로 셰이더에 분배하여 작업을 수행한다. 내부 텍스처 처리 성능을 향상시키기 위해서는 텍스처 주소와 필터링 유닛을 각각 8개씩 가지고 있다.
성능/효과
CPU와 GPU의 연산 처리 능력을 비교하는 그림 1에서 보이는 바와 같이, CPU의 성능 향상 폭에 비해 GPU의 성능 향상 폭이 월등하게 높다는 것을 확인 할 수 있다. CPU와 GPU의 연산처리 능력이 크게 차이가 나는 원인은 CPU에는 내부 코어의 개수가 몇 개에 불과한 반면, GPU는 수십 ~ 수백 개의 코어들을 집적하고 있다는 것에 기인한 바가 크다.
즉, GPU에서 작업을 처리하는 동안 CPU 또한 작업을 수행하기 때문에 CPU의 온도 또한 상승한다. 결과적으로 프로그램을 수행하는 있어서 CPU를 활용하는 경우는 CPU의 온도만 상승하지만, GPU를 활용하는 경우에는 CPU 또한 작업을 수행하므로 CPU와 GPU의 온도가 모두 상승하게 되는 것을 알 수 있다.
온도 분석 결과, GPU를 이용하여 프로그램을 수행하는 경우에는 CPU를 배제하고 GPU 단독으로 동작할 수 없기 때문에 두 프로세서의 온도가 모두 상승하게 된다. 그리고 CPU를 이용하여 작업을 수행하는 경우에는 GPU의 온도는 거의 변화가 없이 유지되는 반면 CPU의 온도는 프로그램의 특성에 따라서 상승하게 되는 것을 확인할 수 있었다. 에너지 효율성 측면에 서는 에너지가 수행 시간에 비례하기 때문에 빠른 처리 속도를 보이는 GPU를 이용하는 것이 더 적은 에너지를 소비해 동일한 작업을 완료하는 것을 확인할 수 있었다.
CPU의 온도를 분석해 보면, 프로그램이 수행되는 동안에 CPU의 온도는 지속적으로 상승(transpose: 22℃, histogram: 20℃, convolution: 28℃, sad: 20℃, cutcp: 18℃)한다. 본 논문에서는 듀얼 코어를 사용하는데, 첫 번째 코어(C1)의 온도가 두 번째 코어(C2)의 온도에 비해 많이 상승(transpose: 11℃, histogram: 14℃, convolution: 16℃, sad: 15℃, cutcp: 12℃)하는 것을 볼 수 있다. CPU 내부의 코어들 사이의 업무 분배가 동일하게 이루어지지 못하는 것이 C1과 C2의 온도 상승 폭이 상이하게 나타나는 원인으로 분석된다.
달리 말하면, convolution의 경우 병렬성이 매우 높기 때문에 수행시간이 1,321초에서 43초로 감소율이 매우 높은 반면, histogram은 병렬성이 낮기 때문에 CPU 대신 GPU를 활용하더라도 201초에서 127초로 수행시간 감소율이 매우 낮다. 실험 결과에서 보이는 자원 소비율의 변화에 따르면 병렬성이 높아 GPU에 보다 적합한 벤치마크 프로그램은 convolution, transpose, cutcp, sad 그리고 histogram 임을 알 수 있다.
본 논문에서는 온도와 에너지 효율성 이외에, 에너지 소비에 따른 프로세서의 온도 상승률 또한 분석하고자 한다. 앞선 실험 결과에서 온도 상승 폭과 전력 소모량 모두 CPU가 GPU에 비해서 높다는 것을 확인한 바 있다. 그러므로 에너지당 온도 상승률은 쉽게 예상할 수 없으며 온도 제어를 위한 연구에서 중요한 데이터로 활용 될 것으로 예상된다.
그리고 CPU를 이용하여 작업을 수행하는 경우에는 GPU의 온도는 거의 변화가 없이 유지되는 반면 CPU의 온도는 프로그램의 특성에 따라서 상승하게 되는 것을 확인할 수 있었다. 에너지 효율성 측면에 서는 에너지가 수행 시간에 비례하기 때문에 빠른 처리 속도를 보이는 GPU를 이용하는 것이 더 적은 에너지를 소비해 동일한 작업을 완료하는 것을 확인할 수 있었다. 하지만, 1Wh의 에너지당 발생하는 온도는 더 적은 에너지를 소비하는 GPU가 CPU에 비해서 높게 발생한다.
GPU를 이용하여 응용프로그램을 수행 하면 적은 에너지를 소모하고 온도 상승 폭이 낮았기 때문에 에너지당 온도 상승률이 CPU와 그리 큰 차이를 보이지 않을 것으로 판단하였다. 하지만, 원인을 분석한 결과 GPU는 훨씬 많은 연산을 처리하기 때문에 단위 시간당 전력 소모율이 CPU에 비해 월등하게 높아 에너지당 온도 상승률 또한 상대적으로 매우 높음을 알 수 있다. 달리 말하면, 같은 에너지를 소모하는 경우 GPU는 CPU에 비해서 훨씬 높은 온도가 발생할 것이다.
후속연구
앞서 기술한 바와 같이, 고성능 마이크로프로세서를 설계하는 경우 전력 소모를 감소시키고 열섬 현상을 완화시키는 저전력, 저온도 연구는 주된 이슈가 되고 있다. CPU 뿐만 아니라 GPGPU의 경쟁력 확보를 위해서도 저전력, 저온도 연구는 반드시 진행되어야 할 것으로 판단된다. 이에 따라, 본 논문에서는 저전력, 저온도 GPGPU 시스템을 개발하는 데 있어 기반 자료로 활용될 수 있도록 응용프로그램들을 CPU와 GPU를 활용하여 각각 수행하는 다양한 경우에 대해 시스템의 전력 효율성 및 온도를 분석하고자 한다.
앞선 실험 결과에서 온도 상승 폭과 전력 소모량 모두 CPU가 GPU에 비해서 높다는 것을 확인한 바 있다. 그러므로 에너지당 온도 상승률은 쉽게 예상할 수 없으며 온도 제어를 위한 연구에서 중요한 데이터로 활용 될 것으로 예상된다.
온도 제어 회로는 온도를 감소하기 위하여 성능을 저하시킨 다는 단점이 존재하기 때문에 적절한 온도 제어가 필요하다고 판단된다. 본 논문에서 수행한 온도 분석 내용을 활용한다면 보다 적절하게 온도를 제어할 수 있으리라 기대된다.
수행되어야 하는 작업을 CPU 또는 GPU에 효율적으로 할당하기 위한 기존의 연구들을 살펴보면, 가능한 GPU에 업무를 할당하는 기법, 보다 빨리 작업을 완료할 수 있는 처리장치에 할당하는 기법, 기존의 작업을 먼저 완료한 처리장치에 할당하는 기법 등 주로 성능만을 고려한 역할분담 기법을 제안하고 있다[24]. 본 논문에서 제시된 실험 결과를 활용하여 CPU와 GPU의 처리 비율 최적화 방안을 제시한다면, 수행되어야 하는 작업을 CPU 또는 GPU에 할당하는 경우, CPU와 GPU의 현재 상태(성능, 에너지, 에너지당 온도 상승률 등)와 할당된 작업이 CPU와 GPU에서 수행되는 경우 예상되는 상태를 동시에 다각적으로 고려하여 시스템의 효율성을 최적화할 수 있도록 업무를 분배하는 것이 바람직할 것으로 판단된다.
하지만, 1Wh의 에너지당 발생하는 온도는 더 적은 에너지를 소비하는 GPU가 CPU에 비해서 높게 발생한다. 이와 같은 본 논문의 분석 결과를 활용하여 CPU와 GPU를 적절히 선택하여 연산을 처리한다면 컴퓨팅 시스템의 효율성 측면에서 최적의 결과를 얻을 수 있을 것으로 기대된다.
질의응답
핵심어
질문
논문에서 추출한 답변
싱글코어 마이크로프로세서의 성능을 향상시키는 방법이 한계에 이른 이유는?
싱글코어 마이크로프로세서에서는 성능을 향상시키기 위해 주로 동작 주파수를 높이는 방법을 사용한다. 하지만, 공정기술의 발달에 따라 단위 면적에 집적되는 트랜지스터의 수가 급속도로 증가되면서 높은 전력 소모와 칩에서 발생하는 온도 문제로 인해 마이크로프로세서의 동작 주파수를 높이는 것은 한계에 이르고 있다. 이와 같은 상황에서, 마이크로프로세서의 성능을 향상시키기 위해 연구자들은 새로운 패러다임인 멀티코어 프로세서 구조를 제안하게 되었다.
GPU는 무엇을 전담으로 처리하는가?
이와 같은 상황에서, CPU의 작업량을 줄여주는 GPU를 활용하는 것은 컴퓨터 시스템의 성능을 향상시키기 위해 사용되는 대표적인 방안 중 하나이다. GPU는 그래픽 작업을 위해 개발된 프로세서로 기존에는 그래픽 작업들만을 전담으로 처리하여 왔지만, CUDA와 같이 GPU 자원을 쉽게 활용할 수 있는 기술이 점차 개발됨에 따라서 GPU를 범용 연산에 활용함으로써 고성능 컴퓨터 시스템을 구현하는 기법이 주목을 받고 있다. 본 논문에서는 다양한 응용프로그램들을 수행하는 경우에 CPU와 GPU가 동시에 활용되는 고성능 컴퓨터 시스템을 목표로, 시스템에서 발생하는 온도와 에너지 효율성을 상세하게 분석하고자 한다.
싱글코어 마이크로프로세서 성능을 향상시키기 위해 어떤 방법을 사용하는가?
싱글코어 마이크로프로세서에서는 성능을 향상시키기 위해 주로 동작 주파수를 높이는 방법을 사용한다. 하지만, 공정기술의 발달에 따라 단위 면적에 집적되는 트랜지스터의 수가 급속도로 증가되면서 높은 전력 소모와 칩에서 발생하는 온도 문제로 인해 마이크로프로세서의 동작 주파수를 높이는 것은 한계에 이르고 있다.
참고문헌 (24)
M. B. Taylor, J. Psota, A. Saraf, N. Shnidman, V. Strumpen, M. Frank, S. Amarasinghe, A. Agarwal, W. Lee, J. Miller, D. Wentzlaff, I. Bratt, B. Greenwald, H. Hoffmann, P. Johnson, and J. Kim, "Evaluation of the raw microprocessor: An exposed-wire-delay architecture for ilp and streams," In Proceedings of International Symposium on Computer Architecture, pp. 2-13, 2004.
P. Kongetira, K. Aingaran, and K. Olukotun, "Niagara: A 32-way multithreaded sparc processor," IEEE Micro, Vol. 25, Issue. 2, pp. 21-25, Mar.-Apr., 2005.
T. Akenine-Moller, E. Haines, and N. Hoffman, "Real-Time Rendering(2nd edition)," AK PETERS, 2002.
K. Gray, "The Microsoft DirectX 9 Programmable Graphics Pipeline," Microsoft Press, 2003.
B. He, K. Yang, R. Fang, M. Lu, N. Govindaraju, Q. Luo, and P. Sander, "Relational joins on graphics processors," In Proceedings of International Conference on Special Interest Group on Management Of Data, pp. 511-524, 2008.
I. Buck, "Gpu computing with nvidia cuda," In Proceedings of International Conference on Special Interest Group on Computer Graphics and Interactive Techniques(SIGGRAPH), pp. 6, 2007.
GPGPU, Available at http://gpgpu.org
NVIDIA CUDATM Programming Guide Version 2.3.1, Nvidia Corporation, 2009.
A. Ghuloum, E. Sprangle, J. Fang, G. Wu, and X. Zhou, "Ct: A flexible parallel programming model for tera-scale architectures," White paper, Intel Corporation, 2007.
Technical Overview, ATI Stream Computing, AMD Inc., 2009.
OpenCL, Available at http://www.khronos.org/opencl/
J. H. Choi, J. H. Kong, E. Y. Chung, and S. W. Chung, "A Dual Integer Register File Structure for Temperature-Aware Microprocessors," Journal of KISS A Computer System and Theory, Vol. 35, No. 11-12, pp.540-551, Dec., 2008.
J. H. Kong, and S. W. Chung, "Recent Thermal Management Techniques for Microprocessors," Communications of KIISE, Vol. 27, No. 11, pp. 72-79, Nov., 2009.
F. Pollack, "New Microarchitecture Challenges in the Coming Generations of CMOS Process Technologies," International Symposium on Microarchitecture keynote speech, 1999.
P. Dadvar, and K. Skadron, "Potential thermal security risks," In Proceedings of the IEEE/ASME Semiconductor Thermal Measurement, Modeling, and Management Symposium(SEMI-THERM), pp. 229-234, 2005.
J. H. Jeong, "Heat-radiant and Cooling Device of Central Processing Unit and Peripheral devices," Journal of Korea Intellectual Patent Society, Vol. 8, No. 4, pp. 33-43, Dec., 2006.
J. D. Owens, D. Luebke, N. Govindaraju, M. Harris, J. Kruger, A. E. Lefohn, and T. J. Purcell, "A Survey of General-Purpose Computation on Graphics Hardware," Euro-graphics 2005, State of the Art Reports, pp. 21-51, 2005.
J. Kruger and R. Westermann, "Linear algebra operators for gpu implementation of numerical algorithms," ACM Transactions on Graphics, Vol. 22, No. 3, pp. 908-916, Jul., 2003.
N. K. Govindaraju, B. Lloyd, W. Wang, M. Lin, and D. Manocha, "Fast computation of database operations using graphics processors," In Proceedings of International Conference on Special Interest Group on Computer Graphics and Interactive Techniques(SIGGRAPH), pp. 215-226, 2004.
W. Liu, B. Schmidt, G. Voss, and W. Muller-Wittig, "Streaming algorithms for biological sequence alignment on gpus," IEEE Transactions on Parallel and Distributed Systems, Vol. 18, No. 9, pp. 1270-1281, 2007.
NVIDIA SDK, Available at http://developer.download.NVIDIA.com/compute/cuda/sdk/website/samples.html
Parboil Benchmark suite, Available at http://impact.crhc.illinois.edu/parboil.php
NVClock, Available at http://www.linuxhardware.org/nvclock/
V. Jimenez, L. Vilanova, I. Gelado, M. Gil, G. Fursin and N. Navarro, "Predictive runtime code scheduling for heterogeneous architectures," In Proceedings of the 4th International Conference on High Performance Embedded Architectures and Compilers, pp.19-33 , 2009
※ AI-Helper는 부적절한 답변을 할 수 있습니다.