본문으로 이동

온디바이스 AI 진화를 위한 Arm SME2 기반의 CPU 성능 향상

  • 메일

여러 컴퓨팅 리소스를 활용한 유연한 온디바이스 AI 생태계의 필요성 

온디바이스 AI는 최근 모바일 컴퓨팅 환경에서 핵심적인 화두로 부상하고 있다. 모바일 기기 내에서 직접 AI를 구동하는 방식은 강력한 NPU의 등장과 함께 빠르게 확산되었으나, 실제로 운용되는 AI 애플리케이션을 살펴보면 목적과 처리해야 할 데이터의 특성에 따라 CPU, GPU, NPU 등 다양한 컴퓨팅 리소스를 혼합하여 활용하는 구조가 일반적이다.

여전히 많은 AI 애플리케이션이 CPU를 기반으로 동작하고 있으며, CPU 기반 처리의 장점은 프로그램 개발의 용이성, 폭넓은 소프트웨어 호환성, 그리고 오프로딩 오버헤드를 줄일 수 있다는 점이다. 그러나 기존 CPU 아키텍처는 머신러닝 연산에서 요구되는 대규모 병렬 연산을 효율적으로 처리하기에는 구조적인 한계를 지닌다.

이러한 한계를 보완하기 위해 제안된 기술이 SME2(Scalable Matrix Extension 2)이다. SME2는 기존 모바일 CPU의 Arm 명령어 집합에 포함된 확장 ISA¹로, 행렬 연산을 효과적으로 가속할 수 있도록 설계되었다. 이를 통해 CPU가 지닌 프로그래밍 유연성을 유지하면서도, 온디바이스 AI에 필요한 연산 성능을 확보할 수 있는 기반이 마련되었다.

이와 관련해 Arm은 Exynos 2600에 적용된 SME2의 의미를 다음과 같이 설명하고 있다.

“온디바이스 AI가 모바일 경험의 핵심으로 자리 잡으면서, 효율성과 응답성은 점점 더 중요한 요소가 되고 있습니다. Exynos 2600에 적용된 Arm 컴퓨트 서브시스템 기반의 SME2는 C1-Ultra 및 C1-Pro CPU를 통해 구현되어 CPU 기반 AI의 가능성을 확장하며, 가속기로의 오프로딩 과정에서 발생하는 지연을 줄여 짧고 인터랙티브하며 실시간성이 중요한 AI 워크로드에 적합한 환경을 제공합니다. 이를 통해 개발자는 전력 및 열 제약이 엄격한 조건에서도 AI 기능을 시스템 전반에 보다 유연하게 배치할 수 있습니다. Arm은 앞으로도 삼성과의 긴밀한 협력을 통해 CPU 중심 AI 생태계의 확장을 지속해 나갈 것입니다.”

— Stefan Rosinger, 시니어 디렉터, 프로덕트 매니지먼트, Arm

 

CPU에서 머신러닝 처리를 가속화하기 위한 SME2 명령어와 SME2 유닛 구조

SME2가 제안된 배경을 이해하기 위해, 먼저 CPU 기반 머신러닝 처리의 구조적 특성을 살펴볼 필요가 있다. CPU는 본래 높은 성능보다 제어 중심의 프로그래밍에 최적화된 구조로 설계되어 있어, 대규모 데이터를 동시에 처리하는 연산에는 적합하지 않다. 이러한 한계를 보완하기 위해 데이터 병렬성을 활용하는 SIMD² 명령어가 도입되었으나, 레지스터 폭의 제약으로 인해 병렬 처리 가능한 데이터의 양에는 여전히 한계가 존재한다.

한편, AI 애플리케이션의 연산 특성을 살펴보면, 핵심적인 연산은 GEMM³ 연산으로 대표되는 행렬 곱셈 연산이다. 이러한 연산은 동일한 연산을 대규모 데이터에 반복 적용하는 특성을 가지며, 이를 효율적으로 처리하기 위해서는 많은 데이터를 한 번에 담을 수 있는 대형 레지스터와 각 요소의 곱셈을 병렬로 수행할 수 있는 다수의 곱셈 연산 하드웨어가 요구된다. 그러나 기존 SIMD 기반 구조만으로는 이러한 요구를 충분히 충족하기 어렵다.

이러한 배경에서 제안된 명령어 집합이 SME2이다. SME2는 CPU의 프로그래밍 유연성을 유지하면서도 대규모 행렬 연산을 보다 효율적으로 수행할 수 있도록 설계된 확장 ISA이며, 이를 실제로 실행하기 위해 구현된 하드웨어 컴포넌트가 SME2 유닛이다.

SME2 연산
Figure 1. SME2 연산
SME2 연산
Figure 1. SME2 연산

 

SME2 유닛은 모든 CPU 코어에서 동일한 소프트웨어를 실행할 수 있도록 CPU 클러스터 내에서 공유되는 구조로 설계되었다. 각 CPU 코어에 대규모 레지스터와 곱셈기를 모두 포함할 경우, 실리콘 면적 증가가 과도해지기 때문에 SME2 유닛을 별도의 블록으로 분리하고 여러 CPU가 이를 공유하는 방식이 채택되었다.

소프트웨어 스레드는 각 CPU 코어에서 실행되며, SME2 명령어를 만나면 해당 연산을 SME2 유닛으로 전달해 수행하는 구조이다. 이를 위해 SME2 유닛 내부에는 여러 CPU로부터 전달되는 명령 스트림을 처리할 수 있는 컨텍스트 저장 구조가 마련되어 있다. 여러 CPU 코어를 포함하는 DSU⁴는 데이터와 명령어를 SME2 유닛으로 전달하기 위한 링 기반 전송 구조를 갖추고 있으며, L3 캐시를 포함해 SME2 유닛에 필요한 데이터 스트림을 원활하게 공급할 수 있도록 설계되었다. 이러한 구조를 통해 하드웨어 면적 증가를 최소화하면서도, 모든 CPU가 동일한 소프트웨어를 실행할 수 있는 호환성이 확보되었다.

SME2 유닛 기반 CPU 클러스터 아키텍처
Figure 2. SME2 유닛 기반 CPU 클러스터 아키텍처
SME2 유닛 기반 CPU 클러스터 아키텍처
Figure 2. SME2 유닛 기반 CPU 클러스터 아키텍처

 

이와 같은 공유형 구조를 전제로, SME2 유닛의 내부 구성은 기능에 따라 크게 세 가지 블록으로 구분된다. 먼저 CPU 코어로부터 전달된 명령어를 디코딩하고 제어 신호를 생성하며, 레지스터 뱅크를 포함하는 VPU가 있다. 다음으로 실제 행렬 연산을 수행하는 Matmul 유닛이 AI 워크로드의 핵심 연산을 담당한다. 그리고 레지스터 뱅크의 데이터를 읽거나 저장하고 L1 캐시를 포함하는 Memsys가 있으며, 여러 CPU로부터 전달되는 컨텍스트를 관리하기 위한 구조 역시 Memsys에 포함되어 있다.

SME2 유닛 다이어그램
Figure 3. SME2 유닛 다이어그램
SME2 유닛 다이어그램
Figure 3. SME2 유닛 다이어그램

 

유연하고 확장성 높은 온디바이스 AI 솔루션 구축

이번 아티클에서는 CPU 기반 AI 성능 향상을 위한 SME2와 이를 수행하는 SME2 유닛의 구조를 살펴보았다. SME2 유닛을 채택함으로써 오브젝트 디텍션과 같은 대표적인 AI 기능은 SME2를 지원하지 않는 전 세대 CPU 대비 최대 약 70% 수준의 성능 향상을 보였으며, 이를 바탕으로 온디바이스 AI에 활용되는 모델의 특성과 사용 환경 등에 따라 CPU, GPU, NPU 등 프로세서 내 다양한 컴퓨팅 자원을 보다 유연하게 조합할 수 있는 기반이 마련되었다. 이러한 구조는 단일 가속기에 의존하지 않는 AI 처리 방식을 가능하게 하며, 궁극적으로 사용자 경험 전반의 품질을 높이는 핵심 요소로 작용할 것으로 기대된다. 또한 Arm의 ISA를 바탕으로 다양한 서드파티 애플리케이션과의 호환성을 확보함으로써, 삼성은 온디바이스 AI의 활용 범위와 생태계를 지속적으로 확장해 나갈 수 있을 것이다.

 

* 표시된 이미지는 예시용으로만 제공되며, 제품 자체 또는 해당 제품과 함께 촬영된 이미지를 정확하게 재현하지 않을 수 있습니다. 모든 이미지는 디지털 방식으로 편집, 수정 또는 보정되었습니다.
 
* 모든 제품 사양은 내부 테스트 결과를 반영하며 사용자의 시스템 구성에 따라 변동이 있을 수 있습니다. 실제 성능은 사용 조건과 환경에 따라 다를 수 있습니다. 

1) Instruction Set Architecture (명령어 집합 구조)

2) Single Instruction, Multiple Data (단일 명령어 다중 데이터 처리 구조)

3) General Matrix–Matrix Multiplication (일반 행렬 간 곱셈 연산)

4) DynamiQ Shared Unit (DynamiQ 공유 유닛)