TECHARTNOMAD | TECHARTFLOWIO.COM

GRAPHICS PROGRAMMING

Essentials of Mobile hardware

jplee 2023. 8. 29. 00:26

꽤 오래전에 작성 했던 토픽인데 중국에서 근무 할 때 쓴 것이라 원문이 중국어다.

 

 

Essentials of Mobile hardware

与PC游戏开发不同的是,Mobile device的硬件种类繁多,差异较大。 对于我们而言,最重要的是积累开发Mobile device的经验。

leegoonz.blog

TECH ART FLOW IO 를 준비 하면서 티스토리도 만들었고 해서.... 국문으로 옮겨보려고 한다. 
아마 이 토픽은 2018년도쯤에 작성 했던 것으로 기억 된다. 벌써 2023년 이고 곧 2024년이 되어가니 그간의 변화를 감안해서 읽어보는게 좋지않을까 싶다.

 

본문

모바일 기기는 PC 게임 개발과 달리 하드웨어의 종류가 다양하고 차이가 큽니다.

단연코 모바일 기기 개발 경험을 쌓는 것이 가장 중요하다고 생각합니다.

예를 들어, 다양한 하드웨어 최적화, QA와 QT, 자동 빌드 시스템 등 개발 프로젝트 전체에 필수적인 기술부터 객체를 시각화 하는 렌더링 즉, 그림의 색감을 살리기 위한 다양한 셰이더 기법 등이 있습니다.

이 기사에서는 게임 기획자, 아티스트, 게임 그래픽 프로그래머, 게임 엔진 개발자가 갖추어야 할 지식을 소개합니다.

일반적인 AP 아키텍처


AP는 원래 모바일 임베디드 컴퓨팅을 위해 특별히 설계된 배터리 구동 CPU를 말하며, 초기에는 노트북/넷북/UMPC 및 PDA와 같은 휴대용 PC에 설치되었습니다. 오늘날 AP(애플리케이션 프로세서)는 스마트 기기의 SoC에 설치되어 모바일 프로세스의 대명사가 되었습니다.

AP는 운영체제와 애플리케이션을 실행하는 CPU와 GPU 코어를 포함하고 있으며, 주변 칩셋을 제어하는 기능을 가지고 있습니다 ▶일반적으로 AP는 CPU, 2D/3D 그래픽을 처리하는 GPU, ISP(이미지 신호 프로세서), 멀티포맷 비디오 코덱 오디오 및 음성 인식 처리를 담당하는 DSP, 그리고 각종 인터페이스 IP로 구성됩니다.

CPU는 운영체제와 중개 소프트웨어인 애플리케이션 SW를 실행하는 중앙 프로세서입니다. 현재 ARM의 Cortex-A 프로세서가 시장의 주류 제품입니다.

 

GPU는 OpenVG, OpenGL ES 등의 그래픽 언어와 라이브러리를 지원하며, 이매지네이션 테크놀로지스의 PowerVR과 ARM의 Mali가 대표적인 GPU IP 제품입니다. H.264, MPEG2, DivX, Xvid 등 다양한 멀티미디어 코덱의 동작을 지원하기 위해 전용 하드웨어 IP와 제어를 담당하는 프로세서와 병렬로 구동됩니다.

 

모바일 AP의 진화
먼저 모바일 그래픽의 변화의 원인을 이해하기 위해 함께 생각해 봅시다.

일반적으로 모바일 AP는 오늘날 우리가 사용하는 스마트 기기에 탑재된 통합 프로세서라고 생각합니다. 기기를 인체에 비유하면 모바일 AP는 뇌, 심장, 근육의 역할을 합니다.

2011년과 비교하면 2012년 스마트폰 하드웨어 제조사는 '전력 소비를 줄이면서 핵심 프로세스를 고속으로 구동할 수 있는가! . 따라서 모바일 AP 장치 설계에는 다양한 방법이 있으며 지금까지 2013 년까지 시장에서 기본적으로 인기가 있습니다. 

 

예를 들어, PC 그래픽 카드 가속기로 유명한 제조업체 인 NVIDIA는 모바일 AP 개발에 2 년 이상을 보냈으며 모바일 AP 기술 개발은 이정표 이며 이 기술도 빠르게 발전하고 있습니다. 모바일 AP 시장에서 세계 최대 점유율을 차지하고 있는 퀄컴도 2013년 중반 스냅드래곤 800을 시장에 선보이며 대중화했습니다.

모바일 게임을 개발하다 보면 삼성 갤럭시 S4의 국내 버전(한국어 버전)에 사용되는 모바일 AP와 해외 버전에 사용되는 모바일 AP가 다르다는 것을 알 수 있습니다.

삼성 갤럭시 S4 국내 버전(한국 버전)은 삼성의 자체 엑시노스(ARM 코어텍스 + ARM 말리 그래픽 프로세서 콤보)를 사용하는 반면, 해외 및 LTEA 버전은 퀄컴의 스냅드래곤 800을 사용합니다. 그래픽 처리에서 텍스처, 두 가지 압축 텍스처가 다른 방식으로 압축되므로 텍스처 메모리 압축에서 두 가지 액세스 속도, 용량 및 이미지 채널 유형이 다른 점은 깊이 연구 할 가치가 있습니다.

나중에 캐릭터나 배경을 디자인할 때 알파 채널 머티리얼(특히 pixel discard 처리에 대한 수많은 if...)을 사용하지 않는 이유를 알 수 있습니다.

글의 도입부에서 언급했듯이 아이폰과 아이패드는 Arm 코어텍스 + PowerVR로 구성된 모바일 AP를 사용하고 있습니다.


이매지네이션의 PowerVR 그래픽 처리 칩이 사용하는 렌더링 알고리즘은 스몰 티엘 기반 렌더링 방식입니다. (ARM의 말리 GPU도 스몰 타일 기반 렌더링 방식을 사용합니다). 가장 빠른 처리속도의 PowerVR 그래픽 칩을 사용하기 때문에 AppleDevice에서 게임 그래픽이 빠르게 실행됩니다. 또한 Apple이 차세대 메탈 그래픽 라이브러리를 사용하는 것도 큰 장점입니다.

 

타일 기반 디퍼드 렌더링은 나중에 자세히 설명합니다.
2013년, 렌더링 엔진 개발에 주력하는 회사인 Leadwerks Software는 GDC(게임 개발자 컨퍼런스)에서 새로운 iPad로 디퍼드 렌더링을 시연했습니다.


이런 배경에서 필자(필자)는 데브클랜의 모바일 게임 스튜디오 부서에서 근무하던 2011년경에 개발했던 캐주얼 디펜스 게임을 기반으로 팀원 중 한 명과 함께 간단한 그래픽 프로토타입을 만들기 시작했습니다.

예상대로 차세대 모바일 그래픽을 위한 프로토타입이 만들어졌고, 결과는 좋았습니다.

2011년 무렵은 모바일 게임 시장이 개발자를 중심으로 급성장하던 초기 단계였습니다.

당시 가장 인기 있었던 게임은 '앵그리버드'였습니다. 그래서 당시에는 앵그리 버드의 2D 스타일을 따르는 게임이 많았습니다.

2011년 초에는 안드로이드 기반 모바일 기기의 세계 시장 점유율이 높지 않았습니다.

아이폰 3GS가 출시된 이후 2012년 아이폰 4가 출시될 때까지 사용자와 개발자 모두 모바일 기기의 하드웨어에 주목하기 시작했습니다. 3D 게임을 개발하는 회사들이 스마트폰 게임을 공식적으로 개발하기 시작했고, 그 후 iPAD1이 출시되었습니다. 그때까지만 해도 모바일 AP에 주목하는 사람은 많지 않았습니다.

모바일 첨단 기술의 끊임없는 발전 ...

3D 게임 개발이라는 주제를 다루고 있는 만큼, 이 주제와 관련된 GPU 환경의 향후 동향에 대해 조금 알아보겠습니다.

Imagination tech PowerVR Ray traced soft shadow

 

PowerVR의 타일 기반 렌더링

NVIDIA 또는 ATI GPU와 달리 "PowerVR" 시리즈의 렌더링 엔진은 Z 버퍼를 사용하지 않습니다.

최근 새롭게 등장한 Z 버퍼의 원리는 버퍼가 다각형의 각 픽셀과 관찰자 사이의 거리를 기록하여 다각형의 표시 순서가 흐트러지더라도 표시할 여러 다각형의 위치 관계를 판단하여 올바르게 표시할 수 있도록 하는 것으로, Z 버퍼는 필수 불가결한 구조라고 할 수 있습니다.

"PowerVR은 Z 버퍼를 사용하지 않고 타일 기반 지연 렌더링(TBDR) 방식을 사용하는데, 이 방식은 폴리곤 내부의 점 위치를 반복적으로 판단하지 않아도 된다는 가장 큰 장점이 있습니다. '타일 기반 지연 렌더링(TBDR)' 방식의 가장 큰 장점은 폴리곤 내부의 점 위치를 반복적으로 판단하지 않아 효율성이 향상된다는 점입니다.

"타일 기반 렌더링(TBDR)"은 렌더링할 화면을 타일로 나누고 각 타일은 한 번만 렌더링합니다. 타일 크기의 기본 설정은 16×16픽셀(픽셀)이며, GPU 설정에 따라 변경할 수 있습니다.

그래픽 애플리케이션(게임 엔진 등)에서 화면을 렌더링하는 명령을 입력하면 버텍스 셰이더가 명령을 읽고 처리하여 다각형의 어느 부분이 어떤 타일에 해당하는지 파악합니다(다각형에 해당하는 타일이 둘 이상 있을 수 있다는 점을 고려).

이 때 새로 추가된 다각형이 이미 타일로 분할된 다각형에 의해 차단된 경우 차단된 다각형을 삭제해야 합니다. (이미 타일로 분할된 다각형이 반투명해도 상관없습니다).

장면에 필요한 모든 폴리곤을 추가한 후 렌더링을 시작합니다.

렌더링은 모든 타일에서 동시에 이루어지며, GPU 코어의 파이프라인이 복수인 경우 한 번에 렌더링되는 타일 수가 증가합니다.

이제 타일의 픽셀 렌더링을 살펴보겠습니다.

픽셀 단위로 배열된 여러 다각형 중 시각적으로 가장 가까운 다각형의 픽셀만 픽셀 셰이더에서 음영 처리한 후 출력하여 렌더링합니다. 반투명 폴리곤의 경우 픽셀 셰이더가 그 뒤에 있는 폴리곤을 다시 섀도잉해야 하므로 작업량이 증가합니다. "PowerVR"도 마찬가지입니다.

폴리곤을 타일로 분할한 다음 기본 처리를 타일 단위로 수행합니다. 버텍스 조명과 픽셀 조명은 나중에 처리하도록 남겨둡니다. 따라서 이를 "타일 기반 지연 렌더링"이라고 합니다.

"PowerVR 아키텍처의 장점은 무엇인가요?

오른쪽 이미지는 PowerVR SGX5 시리즈의 내부 블록 구조를 보여줍니다.

"Vertex Data Master"는 폴리곤의 버텍스 데이터를 관리하는 블록이고, "Coarse Grain Scheduler(CGS)"는 추후 유니버설 셰이더 유닛을 관리하는 블록이며, "Universal Scalable Shader Engine(USSE)"은 명령의 시작이나 발령을 관리하는 블록입니다. '거친 그레인 스케줄러(CGS)'는 추후 유니버설 셰이더 유닛을 관리하는 블록이고, '유니버설 스케일러블 셰이더 엔진(USSE)'은 시작 또는 해제 명령을 관리하는 블록입니다.

'타일링 코프로세서'는 화면 축으로 변환되는 폴리곤의 타일 분할을 관리하고 픽셀 렌더링을 위한 준비를 합니다.

'픽셀 데이터 마스터'는 실제 픽셀 렌더링과 관련된 데이터를 수집하는 블록입니다. 'CGS'와 'USE' 이후 범용 셰이더 유닛이 사용되며 픽셀 셰이딩 프로세스가 수행됩니다. '텍스처링 코프로세서'는 텍스처링 유닛을 관리하는 블록이며, '픽셀 코프로세서'는 출력 픽셀 값을 수집합니다.

"TBDR의 장점

Z 버퍼가 없어 메모리 사용량이 높습니다.

Z 버퍼에 액세스하지 않아 오버헤드 감소

렌더링 순서에 대해 걱정할 필요가 없으며 반투명으로 자동 처리됩니다.

1부와 2부는 전력 소비가 적습니다. "PowerVR"의 절전 성능으로 인해 최근 휴대용 장치 및 임베디드 장치의 절전 기능이 향상되었습니다.

일반 GPU에 비해 렌더링 전 연산량이 많습니다. 그러나 "메모리에 자주 액세스하는 것보다 낫다"는 일반적인 의견에 따라 "PowerVR"은이 아키텍처를 계속 사용하고 최적화 할 것입니다.

 

 

GPU(그래픽 프로세서) 아키텍처의 역사

위에서 CPU와 GPU 사이의 전송은 그래픽 드라이버 소프트웨어에 의해 수행된다는 것을 배웠고, 다음에는 GPU 하드웨어 자체의 구성에 대해 알아보겠습니다.

유명한 게임 엔진 언리얼 엔진 (언리얼 엔진) 에픽 게임즈의 PC 게임용 언리얼 창은 1998년에 발표되었습니다. 당시에는 아직 소프트웨어 렌더링 시대였기 때문에 좌표 변환 행렬 계산은 CPU에서 수행되었습니다.

1999년 엔비디아는 지포스 256 그래픽 카드를 출시했는데, 하드웨어가 T&L(트랜스폼 & 라이팅), 행렬 계산, 곱하기 누적 연산 등 고정 함수를 하드웨어에서 구현하기 때문에 이때부터 3D PC 게임 좌표 변환은 GPU에서 구현하게 됩니다! 2000 년대에는 싱글 플레이어 콘솔에서

독립형 콘솔에서는 2000년에 출시된 소니 플레이스테이션2에서 이미 CPU 이모션 엔진의 벡터 연산 유닛에 지오메트리 처리가 구현되었고, 2001년에 출시된 닌텐도 게임큐브에서는 GPU 플리퍼에 하드웨어 T&L이 구현되었습니다.

2000년에 Microsoft는 Windows용 그래픽 API인 DirectX 8을 출시했습니다.

DirectX 8은 고정된 기능이 아니라 소프트웨어 파이프라인이 있는 하드웨어 셰이더로, 프로그래머블 셰이더 아키텍처가 있는 GPU라면 사용자가 직접 작성할 수 있습니다.

셰이더에는 지오메트리를 처리하는 버텍스 셰이더와 픽셀을 처리하는 픽셀 셰이더의 두 가지 유형이 있으며, 각각 내부에 개별 하드웨어 블록이 구현되어 있습니다.

OpenGL/OpenGL-ES에서는 DirectX에서 픽셀 셰이더라는 용어를 프래그먼트 셰이더라고 부릅니다.

2001년, 운영 체제 윈도우 XP와 엔비디아 GPU 지포스 3는 다이렉트X 8을 지원하는 버전으로 출시되었습니다.

같은 해 마이크로소프트의 단일 콘솔 게임기 'X박스'는 커스터마이징과 프로그래머블 셰이더를 지원하는 지포스 3와 함께 출시되었습니다.

렌더링은 3D 입체감을 표현하기 위해 음영이라는 모델링 현상에 의해 물체에 그림자와 조명 효과를 부여하는 과정입니다.

렌더링 결과에 영향을 미치는 조명 및 그림자 처리와 같은 많은 프로세스가 있기 때문에 셰이딩이라는 용어는 GPU를 사용한 렌더링의 일반적인 성능을 지칭하는 현대적 용어로 사용됩니다.

GPU 하드웨어 셰이더에서 실행되는 프로그램을 셰이더 프로그램이라고 부르기도 하고 셰이더라고 간단히 부르기도 합니다.

그 후 2005년에 출시된 마이크로소프트의 X박스 360에 사용된 ATI GPU 제노스는 유니파이드 셰이더를 사용했는데, 이는 큰 혁신이었습니다.

통합 셰이더는 동일한 하드웨어로 셰이더 프로세스에서 동시에 버텍스 셰이더와 픽셀 셰이더 양면을 처리하는 동시에 각 처리 단계와 각 게임 특성에 따라 각 처리 부하에 적합한 리소스 할당을 변경하여 셰이더 프로세스 측에서로드 밸런스를 유지할 수 있습니다.

이 통합 셰이더 프로세스는 5 개의 요소가있는 스트림 처리 장치로 구현됩니다 VLIW (매우 긴 명령어) ISA.

5개의 요소는 벡터4 및 매트릭스4x4 연산을 위한 XYZW의 4개 유닛과 초월 함수, 형태 변환 처리를 위한 T 유닛으로, 이를 VLIW5라고 합니다.

통합 셰이더의 지원 이후 대규모 병렬 컴퓨터의 개념이 명확해지고 분기 예측이 강화되었으며 그래픽 처리에 머물지 않기 위해 GPGPU 처리에 GPU를 사용하기 시작했습니다.

이러한 추세는 현재까지 이어져 휴대폰에 사용되는 최신 GPU 모델마다 유니파이드 쉐이더를 채택하고 있으며, 현재 대표적인 GPU 아키텍처(개발사)는 다음과 같습니다:

- 말리/미드가드(ARM)

- Adreno

- Tegra

- PowerVR

 

최신 모델들은 모두 OpenGL ES 3.1을 지원하며, 최신 Mali 모델들은 VLIW5가 아닌 많이 사용하지 않는 T-unit을 생략하고 이 부분을 다른 곳에 할당하여 처리 속도를 높인 VLIW4를 사용하고 있습니다. 또한 최신 모델인 아드레노, 테그라, 파워VR은 VLIW를 사용하지 않고 일반 CPU ISA에 가까운 스칼라 프로세서를 사용하는데, 스칼라 프로세서는 벡터 연산을 위한 SoA 형태가 아니기 때문에 일반적인 AoS 형태의 데이터 처리에도 매우 빠릅니다.

셰이더 프로그램이 복잡해지면서 벡터 연산 이외의 처리량 증가에 대응하기 위해 만들어진 것입니다.

GPU 코어이지만 실제로 휴대폰에 탑재되는 것은 GPU뿐만 아니라 통신 모뎀과 CPU와 통신하는 기타 관련 부품을 하나의 칩에 포함하는 SoC (시스템 온 칩)입니다. 애플 A8, 퀄컴 스냅드래곤, 엔비디아 테그라 등은 ARM으로부터 라이선스를 얻어 SoC에 CPU 칩을 포함시켰습니다. SoC.

휴대폰 GPU의 다이 사이즈(반도체 칩 면적) 휴대폰 폼 팩터의 크기가 매우 작기 때문에 PC용 데스크톱 GPU보다 훨씬 작고 성능도 훨씬 떨어집니다. 하지만 휴대폰 GPU의 다이 사이즈는 점차 커지고 있으며, FLOPS로 표현되는 부동 소수점 연산 성능으로 보면 아이폰 6의 GPU는 아이폰 5의 GPU보다 4배 이상 높아져 매우 빠른 성능 향상을 보이고 있습니다. 어떤 하드웨어를 대상으로 하느냐에 따라 최적화가 완전히 달라지는 것처럼, 모바일 소프트웨어를 개발할 때도 출시 대상이 어떤 시장인지에 대한 신중한 고려가 필요합니다.

시스템 메모리 공간도 점점 더 커지고 있지만 GPU 성능의 증가가 화면 해상도의 증가에 비례하지 않는 것처럼 메모리 공간은 여전히 희소 자원입니다.

게다가 SoC 밖에서 멀고 느린 시스템 메모리 접근은 버스(경로, 버스)를 통해 이뤄지는데, 이는 CPU와 GPU가 소비하는 전력과 발열량과 비슷하고, 배터리 소모량과 Soc의 온도 조절 기능에 따라 성능 저하의 원인이 될 수 있어 시스템 메모리 접근은 최대한 최소화하고 있습니다.

유니파이드 쉐이딩 클러스터, USC) 컬렉션의 핵심인 파워VR 시리즈7XT의 내부 구조를 살펴보겠습니다. 스칼라 컴퓨팅 엔진인 USC는 부동소수점 타입의 단정밀도 부동소수점(FP16)을 일반적으로 사용하지만 더블 타입의 배정밀도 부동소수점(FP32)도 지원합니다. ALU (산술 논리 장치)로서 GPU 전체의 프로세서 코어 수가 최대 512 개로 증가했습니다.

휴대폰 GPU로서 PowerVR은 전통적으로 소위 TBDR(타일 기반 디퍼드 렌더링) 방식이 특징입니다.

뷰포트 변환 후 화면을 작은 타일(빈)로 나누고, 1타일 내 인접 영역에 속하는 지오메트리 세트와 관련된 포인터를 GPU 칩의 작고 빠른 전용 메모리로 전송하여 픽셀을 처리한 후 그 결과를 시스템 메모리의 프레임 버퍼에 기록하는 방식입니다. 오브젝트의 앞/뒤 관계를 계산하고 과부하에 따라 불필요한 픽셀 셰이더 처리를 제거하고 디퍼드 렌더링을 실행합니다.

PC용 데스크톱 GPU의 타일 할당 방식을 채택하는 대신 간단한 IMR(즉시 모드 렌더링) 방식이 사용됩니다.

메모리 대역폭 전략으로 하드웨어 지원 압축 포맷을 사용하는 것도 효과는 좋지만, PowerVR은 자체 텍스처 압축 포맷인 PVRTC를 지원합니다.

안드로이드 디바이스의 주류인 말리 또는 아드레노 GPU는 디퍼드 렌더링 TBR(타일 기반 렌더링)에 추가해서만 달성할 수 있었습니다.

이제 모바일 기기는 1080P 이상이 표준이 되었고, 해상도와 PC 환경이 크게 다르지 않으며, 픽셀 셰이더 처리량도 증가했습니다.

타일 기반 렌더링은 버텍스 수가 많아질수록 타일 오버헤드가 증가하기 때문에 버텍스 처리가 병목현상이 발생하지 않도록 버텍스 수를 조절해야 한다는 단점이 있습니다. 또한 렌더링 시 프레임 버퍼와 복수의 렌더링 타겟에 대한 접근을 시도해야 하는 경우 중간 상태를 시스템 메모리에 저장해야 하기 때문에 심각한 성능 문제가 발생할 수 있습니다.

로우 레벨 그래픽 API.

안드로이드는 다양한 제조사의 GPU를 사용하기 때문에 특정 GPU 모델의 기능이나 확장 기능에 의존하여 최적화하려면 GPU 모델에 따라 별도의 대응책이 필요합니다. 또한 GPU마다 느리다, 빠르다 등 다양한 특성에 대한 특정 명령어가 존재하기 때문에 해당 최저 공통분모(최하위 분모)에 의존하는 것만으로는 부족하고, 대부분의 모델에서 실제 테스트를 꼼꼼히 해봐야 게임 실행이 성능에 영향을 미치지 않는지, 문제가 발견되면 개별적으로 대처해야 합니다.

안드로이드 5.0에서는 표준 API로 안드로이드 익스텐션 팩(AEP)이 제공되며, OpenGL ES 3.2에서도 관련 기능을 사용할 수 있습니다.

OpenGL ES 3.2는 안드로이드 6.0 이상을 지원합니다.

IOS의 경우, Apple 기기는 PowerVR GPU만 사용하므로 구형 모델을 제외하면 싱글플레이어 콘솔 개발에 사용되는 특정 하드웨어에 가까운 성능을 기대할 수 있습니다.

예를 들어 Xcode의 프로파일러 인스트루먼트에서 타일러 활용이라는 프로젝트에서 TBDR이 어떻게 사용되는지 확인할 수 있습니다.

IOS 버전으로 빌드할 때 Unity에서 IL2CPP를 활성화하고 생성된 Xcode로 Instruments를 사용하면 함수의 심볼 이름이 C++ 코드로 변환되어 IL2CPP에 따라 적용되며, Xcode 프로젝트 옵션에서 디즘 심볼 파일을 생성하는 옵션을 활성화하면 다음을 사용하여 일정량의 TBDR을 구현할 수 있습니다. Instruments를 사용하면 어느 정도의 프로파일링을 구현할 수 있습니다.

또한 IOS는 iPhone 5S부터 독립형 저차 그래픽 API인 Metal에 대한 지원을 OpenGL ES 3.0에 추가했습니다.

그러나 OpenGL ES 장치의 작동은 앱에서 제어되지 않으며, Metal은 효율성과 그래픽 처리의 빠른 속도를 추구합니다.

-그래픽 드라이버가 수행하는 일부 처리를 앱에서 어느 정도 제어할 수 있게 되어 원하지 않는 처리는 앱에서 자체적으로 판단하여 생략할 수 있게 되었습니다.

-명령 대기열은 멀티 스레드에 대응하여 멀티 코어 CPU 작동 속도를 향상시키고 CPU 병목 현상을 완화합니다.

또한 셰이더 프로그램 녹화를 위한 셰이딩 언어로 C++11 기반의 Metal 셰이딩 언어가 사용됩니다.

유니티에서는 빌드 설정의 플레이어 설정에서 IOS 설정에서 Metal API를 선택할 수 있는데, 이전 모델인 iPhone 5S에서는 사용할 수 없었습니다. 따라서 앱 개발 시 Metal을 사용하는 코드를 포팅할 필요가 없습니다.

안드로이드도 메탈과 마찬가지로 저수준 그래픽 API를 제공하고 있습니다. 모바일 기기의 저수준 그래픽 API를 표준화할 계획인 크로노스 그룹은 독립형 AMD 저수준 그래픽 API 맨틀을 기반으로 한 벌칸 API를 출시할 예정이라고 발표했으며, 안드로이드 역시 OpenGL ES와 같은 표준 규격에 벌칸을 채택할 예정입니다.

이기종 시스템 아키텍처(HSA)

동일한 속성을 가진 칩을 단일 프로세서(멀티코어 프로세서 CUP 또는 GPU)에 통합하는 것을 동종 통합이라고 하며, 반대로 완전히 다른 속성을 가진 두 개의 칩을 단일 프로세서에 통합하는 것을 이기종 통합이라고 합니다.

여기서 말하는 동종 통합은 멀티코어 프로세싱이고 이기종 통합은 HSA입니다.

HSA는 이기종 CPU와 GPU를 하나의 연산자로 간주하여 추상화 계층구조를 생성하므로 CPU와 GPU 간의 데이터 트래픽이 필요하지 않습니다. 즉, HSA는 CPU와 GPU를 단일 칩에 통합하고 둘 사이의 긴밀한 연결을 추구하는 것입니다.

GPU가 계속 발전함에 따라 다른 새로운 컴퓨팅 장치로 사용하려고 시도하고, 그 이후부터는 문제를 식별하고 해결하는 끊임없는 과정입니다. 간단히 말해, 이 아키텍처는 이전보다 훨씬 더 쉽게 GPGPU를 사용할 수 있게 해줍니다.

이제 소니 엑스페리아 Z4와 같은 모델에 사용되는 SOC인 퀄컴 스냅드래곤 810의 내부 데이터 흐름을 참조하여 CPU와 GPU를 포함한 전체 시스템 아키텍처를 살펴보겠습니다.

64비트 멀티코어 CPU는 시스템 메모리의 양쪽에서 지오메트리, 매핑 및 셰이더를 참조하도록 구조화된 Adreno GPU와 통신합니다.

PC에는 CPU와 GPU가 각각 전용 메모리를 가지고 있지만, 싱글 플레이어 콘솔과 모바일 기기에는 일반적으로 통합 메모리 아키텍처(UMA)에서 CPU와 GPU가 모두 액세스할 수 있는 단일 시스템 메모리가 있습니다.

단일 메모리 버스는 전력 소비와 메모리 칩 배선 면적 모두에 유리합니다.

UMA의 장점은 메모리 칩이 아무리 작아도 메모리 공간을 효율적으로 사용할 수 있다는 것입니다.

CPU 메모리가 적게 사용되면 GPU는 상대적으로 더 많은 메모리를 사용할 수 있습니다. 동시에 UMA의 단점은 CPU와 GPU가 서로 메모리 대역폭 도메인을 차지하여 서로의 처리를 방해 할 수 있다는 것입니다.

또한 UMA가 아닌 경우 CPU와 GPU가 서로 다른 유형의 메모리 칩을 사용하는 경우 CPU는 지연 시간이 짧은 메모리 칩을 사용하고 GPU는 광대역 메모리 칩을 사용하며 프로세서에 따라 자신에게 맞는 작업 부하를 선택하면 처리 효율을 향상시킬 수 있지만 UMA와 같은 상황은 타협 할 수 없습니다. 예를 들어 대역폭이 우선 순위 인 경우 UMA가 형성되고 지연 시간의 상대적 증가를 숨기려면 CPU의 병렬 처리 능력을 높이거나 더 많은 캐시를 설치해야합니다.

같은 단점을 가지고 있지만 UMA가 핸드헬드에서도 사용되는 이유는 메모리 칩의 종류를 줄이고 비용을 낮출 수 있다는 장점 외에도 CPU와 GPU로 구성된 이기종 프로세서인 소위 이기종 시스템 아키텍처에 의해 프로그래밍되고 제어되어 CPU만으로는 처리할 수 없는 병렬 컴퓨팅 워크로드를 처리하도록 설계된 시스템 아키텍처에 매우 적합하기 때문입니다. 이 시스템 아키텍처는 CPU만으로는 처리할 수 없는 병렬 컴퓨팅 워크로드를 처리하는 데 적합합니다.

범용 병렬 처리와 관련하여 이기종 컴퓨팅을 위해 특별히 OpenCL이라는 API가 출시되었습니다.

게임의 경우 CPU에서 이뤄지던 물리 연산과 인공지능 처리를 GPU에서도 할 수 있게 됐고, CPU와 CPU가 서로 통신하고 정보를 공유할 수 있게 되면서 이기종 아키텍처의 장점이 점차 가시화되고 있습니다. 이기종 아키텍처의 장점은 비단 게임에 국한된 것이 아니라 일반 소프트웨어뿐만 아니라 모바일 기기에서도 동일하게 적용되고 있으며, 이미지 처리, 오디오 처리, 물리 처리 등 고용량 데이터 처리에 대한 수요가 증가하고 있어 앞으로는 이기종 컴퓨팅으로 최적화하는 것이 트렌드가 될 것입니다.

 

중국 모바일 디바이스 사용자의 특성

http://www.getui.com/data-report/index.html

사실 이 기사를 작성 한 시점이 2018년도 이기 때문에 2023년 현재의 중국 모바일 디바이스 사용자 특성을 100 프로 반영할 수 없어 보인다.

 

스마트폰 푸시 서비스를 전문으로 하는 중국 기업 퍼스널 푸시(Personal Push)는 수집한 빅데이터를 분석하여 고객에게 중국 안드로이드 시장에서 필요한 업계 보고서를 제공합니다. 실제로 많은 전문 시장 조사 회사에서도 중국 스마트폰 시장 분석을 제공하고 있지만, 퍼스널 푸시에서 제공하는 보고서는 다양한 기기별 사용자 특성에 대한 심층적인 분석을 제공합니다. 특히 스타트업의 경우 올바른 시장 데이터를 확보하는 것이 중요합니다.

"퍼스널 푸시는 타사 푸시 서비스 시장 점유율 90% 이상을 차지하며 스마트폰용 푸시 서비스를 개발하는 가장 전문적인 회사"라고 주장합니다. "퍼스널푸시는 다양한 데이터를 수집할 수 있는 안드로이드 및 iOS 푸시 SDK를 제공하고 있으며, 이를 통해 생산량, 판매량 등의 거시적인 정보보다 사용자의 습관, 주요 사용 앱 제품 등에 대한 실질적인 정보를 얻을 수 있어 버티컬 마켓을 개발하고자 하는 스타트업에게 더욱 유용합니다. 따라서 버티컬 마켓을 개척하고자 하는 스타트업에게 매우 유용한 정보라고 할 수 있습니다.

아래 내용은 5월 21일 테크노드 홈페이지에 게재된 뉴스를 참고하여 작성되었으며, 실시간 분석 정보는 '개별 푸시' 플랫폼에서 확인할 수 있습니다.

스마트폰: 샤오미의 레드미 시리즈가 모멘텀을 얻고 천만 대를 출하하다

관련 정보에 따르면 2015년 2월부터 4월까지 중국 안드로이드 휴대폰 시장에서 샤오미의 스마트폰 시리즈가 빠르게 발전했습니다. 올해 2 월 중국 시장 점유율에서 밀레의 붉은 쌀 휴대폰이 1 위, 2 위, 3 위는 MI3와 MI2S입니다. 3 월과 4 월 상위 3 위 순위는 변동이 없었으며 4 ~ 10 위 순위 변동도 크지 않습니다.

또한 '퍼스널 푸시'플랫폼을 통해 다양한 스마트 폰의 시장 점유율을 알 수있을뿐만 아니라 각 모델의 사용자 연령대도 알 수 있습니다.

"2015년 2월, 샤오미의 Redmi는 중국 안드로이드 시장에서 6.12%의 점유율을 차지했으며, 18-24세 연령대의 사용자가 전체의 85.26%를 차지했습니다."

중국 안드로이드 스마트폰 시장에서 70% 이상의 사용자가 안드로이드 운영 체제 버전 4.2.2 이상을 사용하고 있습니다."