Monthly Archives: March 2019

[GPGPU Series 9] Memory Hierarchy on GPUs

GPU의 메모리 구조에 대해서 정리를 해보았다. 최근 GPU는 CPU와 비슷한 메모리 계층 구조를 가지고 있다.  GPGPU를 지원하는 초창기 GPU는 CPU와는 다소 다른 메모리 계층 구조를 가졌던 것으로 알려져 있다. 하지만 GPU를 General Purpose 연산 목적으로 많이 사용하면서 점차 CPU와 비슷한 메모리 계층 구조로 바뀌게 된 것 같다. 그림 1: CPU, GPU Memory 구조 (출처 1, 2)… Read More »

[Android/Linux] Big/Little Core 강제로 종료하기 (Disabling Big/Little Core)

요즘 출시되는 Android 핸드폰 (보드) 제품은 대부분 Big/Little CPU 구조를 가진다. Big/Little 코어 성능을 비교해 보고 싶어서 Core를 강제로 Disabling 하는 방법을 찾아서 정리해보았다 (출처 1). Android OS의 경우 Core를 강제로 종료하는 방법은 “/sys/devices/system/cpu/cpu/online”에 값을 0으로 변경해주면 된다. <N>은 CPU 번호를 의미한다. 보통 0~3번은 Little Core, 4~7번은 Big Core를 의미한다. File Path: /sys/devices/system/cpu/cpu<N>/online 추가로 chmod Command를… Read More »

[GPU] Multiple Render Targets (MRT)

그림1: Multiple Render Target 예제 그림 최근(?) GPU는 대부분 Multiple Render Targets (MRT) 기능을 지원한다. MRT 기능을 간단히 설명하면 한 번의 Fragment Shader 연산을 수행하여 여러 개의 Texture (Render Target Textures)을 생성하는 방법을 의미한다. 그림1은 MRT 기능을 사용하는 Shader 연산 순서도이다. MRT는 OpenGL 2.0과 Direct3D 9 부터 지원한다고 한다 (출처 1). 보통 MRT를 기능을 사용하여… Read More »