메탈 (API)
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
Metal은 Apple이 개발한 저수준 그래픽스 API로, 2014년 iOS 기기에서 처음 도입되었으며, 이후 macOS에서도 지원된다. Metal은 GPU에 직접 접근하여 낮은 오버헤드로 성능을 향상시키는 것을 목표로 하며, 셰이더 언어를 사용하고 C/C++ 지원을 추가했다. Metal은 여러 버전을 거치며 기능을 개선해왔으며, MetalFX 업스케일링 프레임워크 및 메시 셰이더 지원 등 새로운 기능을 도입했다. Metal은 macOS, iOS, iPadOS 등 다양한 운영체제에서 지원되며, 다양한 게임 및 애플리케이션에서 활용되고 있다.
더 읽어볼만한 페이지
- 3차원 그래픽스 API - WebGL
WebGL은 웹 브라우저에서 3차원 그래픽을 렌더링하기 위한 API이며, OpenGL ES를 기반으로 개발되어 다양한 웹 브라우저와 모바일 환경에서 지원된다. - 3차원 그래픽스 API - Direct3D
Direct3D는 마이크로소프트가 개발한 3차원 그래픽스 API로, 그래픽 하드웨어 가속을 지원하며 렌더링 파이프라인을 통해 데이터를 화면의 이미지로 변환하며, 윈도우 운영체제 및 다른 플랫폼에서도 사용 가능하다. - 2014년 도입된 제품 - MX 리눅스
MX 리눅스는 MEPIS 커뮤니티와 antiX 개발자들이 협력하여 개발한 데비안 기반의 리눅스 배포판으로, 사용자 중심의 MX 도구 모음과 시스템 백업 및 복구 기능인 MX 스냅샷을 제공하며 Xfce, KDE Plasma, Fluxbox 등 다양한 데스크톱 환경과 최신 하드웨어 지원 AHS 버전을 제공한다. - 2014년 도입된 제품 - 삼성 기어 라이브
삼성 기어 라이브는 삼성전자가 출시한 안드로이드 웨어 스마트워치로, 방진 방수 기능과 스테인리스 스틸 외관, 사용자 교체 가능한 스트랩을 특징으로 구글 나우 연동, 음성 명령 인식, 알림 기능을 제공했으나, 디스플레이, 충전 방식, 기본 스트랩 등에서 비판을 받았다. - 그래픽 라이브러리 - Direct2D
Direct2D는 마이크로소프트에서 개발한 2D 그래픽 API로, 낮은 수준의 추상화, 고품질 텍스트 렌더링, 안티앨리어싱, 하드웨어 가속, 높은 DPI 지원 등의 특징을 가지며 다양한 분야에서 활용된다. - 그래픽 라이브러리 - WinG
WinG는 윈도우 3.x의 그래픽 성능 향상을 위해 개발된 기술로, DirectX로 발전하는 기반이 되었으며 한국 게임 산업에도 영향을 미쳤다.
2. 역사
Metal은 2014년 6월 2일부터 Apple A7 이상 칩을 탑재한 iOS 기기에서 사용 가능하게 되었다.[9] 이후 2015년 6월 8일부터는 OS X El Capitan을 실행하는 Mac (2012년 모델 이상)에서도 지원되기 시작했다.[10]
(내용 없음)
2017년 6월 5일 WWDC에서 애플은 Metal의 두 번째 버전인 Metal 2를 발표했다. 이는 macOS High Sierra, iOS 11, tvOS 11에서 지원된다. Metal 2는 기존 Metal과 별개의 API가 아니며 동일한 하드웨어에서 구동된다. 주요 개선점으로는 Xcode에서의 효율적인 프로파일링 및 디버깅 기능 향상, 가속화된 머신 러닝 지원, CPU 부하 감소, macOS에서의 가상 현실 지원, 그리고 Apple A11 GPU의 특정 기능 활용 등이 있다.[11]
2020년 WWDC에서는 Mac 컴퓨터가 기존 인텔 칩에서 자체 설계한 Apple silicon으로 전환될 계획이 발표되었다. Apple silicon을 탑재한 Mac은 macOS와 iOS에서 사용되던 그래픽 처리 기능을 통합한 Apple GPU를 특징으로 하며, 타일 기반 지연 렌더링 (TBDR) 아키텍처에 최적화된 기능을 활용할 수 있게 되었다.[12]
2022년 WWDC에서는 Metal의 세 번째 버전인 Metal 3가 공개되었다. 이는 macOS Ventura, iOS 16, iPadOS 16의 출시와 함께 도입되었다. Metal 3는 MetalFX 업스케일링 프레임워크를 도입하여 고성능 업스케일링과 안티앨리어싱을 지원하며, 메시 셰이더 지원을 통해 복잡한 장면을 더 짧은 시간에 렌더링할 수 있게 되었다.[13] 또한 Metal API에서 C/C++ 언어를 사용할 수 있게 되었다.[14]
3. 특징
3. 1. 성능 향상
메탈은 OpenGL과 비교했을 때 여러 측면에서 더 나은 성능을 제공한다.[31][33] 주요 이유는 다음과 같다.
이러한 특징 덕분에 GPU 명령 실행에 필요한 CPU 작업량이 줄어든다. 결과적으로 CPU는 다른 연산에 자원을 더 할당할 수 있게 되어 전반적인 시스템 성능 향상으로 이어진다.
메탈은 GPU에 낮은 오버헤드로 접근하는 것을 목표로 한다. 명령어는 미리 인코딩된 후 비동기적으로 실행하기 위해 GPU에 제출된다. 개발자는 실행 완료 시점을 제어할 수 있어, GPU에서 명령이 실행되는 동안 다른 명령을 인코딩하거나, GPU 실행 완료를 명시적으로 기다려 처리량을 늘리거나 전력 소모를 줄일 수 있다. 또한, 명령어 인코딩은 CPU 코어에 독립적이므로, 애플리케이션은 각 CPU 스레드에서 개별적으로 명령어를 인코딩할 수 있다. 렌더링 상태 역시 사전에 미리 계산되므로, GPU 드라이버는 명령어 실행 전에 렌더 파이프라인을 어떻게 구성하고 최적화할지 미리 알 수 있다.
메탈은 GPGPU 프로그래밍 기능을 컴퓨트 셰이더를 통해 개선한다. 메탈은 C++14를 기반으로 하는 자체 셰이딩 언어를 사용하며, 이는 Clang과 LLVM을 통해 구현된다.
개발자는 메탈을 사용하여 버퍼나 텍스처와 같은 리소스를 생성할 수 있다. 이 리소스들은 CPU, GPU 또는 양쪽에 모두 할당될 수 있으며, 할당된 리소스를 업데이트하고 동기화하는 기능도 제공된다. 또한, 명령어 인코더의 수명 동안 리소스 상태를 관리할 수 있다.
macOS 환경에서 메탈은 개발자에게 실행할 GPU를 선택할 수 있는 유연성을 제공한다. 개발자는 CPU의 저전력 통합 GPU, 별도의 고성능 GPU(일부 MacBook 및 Mac 모델), 또는 Thunderbolt를 통해 연결된 외부 GPU 중에서 선택할 수 있다. 또한, 어떤 GPU에서 특정 명령어를 실행할지에 대한 선호도를 지정하거나, 특정 작업(예: 장면 렌더링은 고성능 GPU, 후처리 및 디스플레이는 통합 GPU)에 가장 효율적인 GPU를 제안받을 수도 있다.
3. 2. Metal Performance Shaders
Metal Performance Shaders는 애플리케이션 개발자가 훌륭한 성능을 달성하고 동시에 GPU 제품군별 함수 유지 관리에 대한 작업을 줄일 수 있도록 지원하는 고도로 최적화된 그래픽 함수 라이브러리이다.[8] 주요 기능은 다음과 같다.
3. 3. 기타 특징
Metal은 GPU에 낮은 오버헤드로 접근하는 것을 목표로 한다. 명령은 미리 인코딩된 후 비동기적으로 실행하기 위해 GPU에 제출된다. 애플리케이션은 실행 완료 시점을 제어할 수 있어, 개발자는 GPU에서 명령이 실행되는 동안 다른 명령을 인코딩하거나, GPU 실행이 완료될 때까지 기다려 처리량을 늘리거나 전력을 절약할 수 있다. 또한, 명령 인코딩은 CPU에 독립적이므로 애플리케이션은 각 CPU 스레드에서 독립적으로 명령을 인코딩할 수 있다. 렌더 상태는 미리 계산되어 GPU 드라이버가 명령 실행 전에 렌더 파이프라인을 구성하고 최적화하는 방법을 미리 알 수 있게 한다.
Metal은 GPGPU 프로그래밍 기능을 컴퓨트 셰이더를 사용하여 개선한다. C++14를 기반으로 하는 특정 셰이딩 언어를 사용하며, 이는 Clang 및 LLVM을 통해 구현된다.
Metal은 개발자가 버퍼, 텍스처와 같은 Metal 리소스를 생성할 수 있게 한다. 이 리소스는 CPU, GPU 또는 둘 다에 할당될 수 있으며, 할당된 리소스를 업데이트하고 동기화하는 기능을 제공한다. 또한 명령 인코더의 수명 동안 리소스 상태를 적용할 수 있다.
macOS 환경에서 Metal은 개발자에게 실행할 GPU를 지정할 수 있는 유연성을 제공한다. 개발자는 CPU의 저전력 통합 GPU, 별도의 개별 GPU(특정 MacBook 및 Mac 모델), 또는 Thunderbolt를 통해 연결된 외부 GPU 중에서 선택할 수 있다. 또한 개발자는 특정 명령을 실행하는 데 어떤 GPU가 가장 효율적인지에 대한 선호도를 설정하고 제안을 받을 수 있다. 예를 들어, 장면 렌더링 명령은 개별 GPU에서 실행하고, 후처리 및 디스플레이는 통합 GPU에서 처리하는 방식이 가능하다.
4. 지원 환경
애플의 Metal API는 특정 하드웨어 및 소프트웨어 환경에서 작동하도록 설계되었다. 초기 Metal은 iOS 8 및 Apple A7 SoC 이후 버전을 탑재한 iOS 기기에서 처음 도입되었으며,[30] 이후 OS X 10.11 El Capitan부터 특정 인텔, AMD, NVIDIA GPU를 탑재한 Mac 컴퓨터에서도 지원되기 시작했다.[15]
Metal은 버전 업데이트를 거치며 지원 범위를 확장해왔다. Metal 2는 iOS 11 및 macOS 10.13 이상 운영체제에서 지원되며, 기존 Metal 지원 하드웨어에서 호환성을 유지했다. 최신 버전인 Metal 3는 iOS 16, iPadOS 16, macOS 13 이상 운영체제와 함께, A13 Bionic 칩 이상을 탑재한 아이폰 및 아이패드, 그리고 Apple 실리콘 또는 특정 인텔 및 AMD GPU를 탑재한 Mac에서 작동한다.[16][28]
4. 1. Metal (1세대)
애플이 WWDC 2014에서 발표한 그래픽 API로, iOS 8에서 처음 도입되었다.[30] macOS에서의 Metal 지원은 WWDC 2015에서 발표되었으며, OS X El Capitan부터 지원하기 시작했다.[15] 초기의 Metal은 특정 하드웨어 및 소프트웨어 조합에서만 사용 가능했으며,[15] OS X El Capitan을 지원하는 모든 Mac 컴퓨터가 Metal을 지원하는 것은 아니었다.Metal 1세대를 지원하는 하드웨어 및 소프트웨어는 다음과 같다.[15]
4. 2. Metal 2
2017년 6월 5일 WWDC에서 애플은 Metal의 두 번째 버전인 Metal 2를 발표했다. 이는 macOS High Sierra, iOS 11 및 tvOS 11에서 지원한다. Metal 2는 기존 Metal과 별개의 API가 아니며, 동일한 하드웨어에서 지원된다. Metal 2는 Xcode에서의 효율적인 프로파일링 및 디버깅 기능 향상, 가속화된 머신 러닝 처리, 더 낮은 CPU 사용량, macOS에서의 가상 현실 지원, 그리고 특히 Apple A11 GPU의 특정 기능 활용 등을 가능하게 했다.[11]Metal 2 API는 다음 하드웨어 및 소프트웨어를 지원한다.
2017년 10월 시점에서 Metal 및 Metal 2를 지원하는 Mac 컴퓨터는 다음과 같다[29]:
- iMac (Late 2012 이후 모델)
- MacBook (Early 2015 이후 모델)
- MacBook Pro (Mid 2012 이후 모델)
- MacBook Air (Mid 2012 이후 모델)
- Mac mini (Late 2012 이후 모델)
- Mac Pro (Late 2013 이후 모델)
- Mac Pro (Mid 2010 이후 모델 중 Metal 지원 GPU 탑재 기기: Nvidia Kepler 아키텍처 이후 또는 AMD GCN 아키텍처 이후)
4. 3. Metal 3
2022년 WWDC에서 애플은 Metal의 세 번째 버전인 Metal 3를 발표했다. 이는 macOS Ventura, iOS 16, iPadOS 16의 출시와 함께 데뷔했다.[13] Metal 3는 다음과 같은 주요 기능을 도입했다.- MetalFX 업스케일링 프레임워크: 고성능 업스케일링과 안티앨리어싱 기술을 제공한다.[13]
- 메시 셰이더 지원: 복잡한 장면을 프레임당 더 짧은 시간에 렌더링할 수 있도록 돕는다.[13]
- C/C++ 지원: Metal API에서 C/C++ 언어를 사용할 수 있게 되었다.[14]
Metal 3를 지원하는 하드웨어 및 소프트웨어는 다음과 같다.[16][28]
5. 도입 현황
애플에 따르면 2017년 6월 기준으로 148,000개 이상의 애플리케이션이 메탈을 직접 사용하며, 170만 개 이상의 애플리케이션이 상위 프레임워크를 통해 메탈을 사용하고 있다.[17] macOS 환경에서 메탈을 지원하는 게임 목록은 아래 하위 섹션에서 자세히 다룬다.
5. 1. Metal 지원 게임 (macOS)
애플에 따르면 2017년 6월 기준으로 148,000개 이상의 애플리케이션이 Metal을 직접 사용하고, 170만 개가 상위 프레임워크를 통해 사용하고 있다.[17] Metal을 사용하여 렌더링하는 macOS 게임은 아래와 같다.
참조
[1]
웹사이트
Getting started with Metal-CPP - Metal
https://developer.ap[...]
[2]
웹사이트
Metal Shading Language Specification
https://developer.ap[...]
Apple Inc.
[3]
웹사이트
Setting Up a Command Structure
https://developer.ap[...]
Apple Inc.
[4]
웹사이트
Metal Shading Language Guide
https://developer.ap[...]
2014-09-08
[5]
웹사이트
Setting Resource Storage Mode
https://developer.ap[...]
Apple Inc.
[6]
웹사이트
Synchronizing a Managed Resource
https://developer.ap[...]
Apple Inc.
[7]
웹사이트
GPU Selection in macOS
https://developer.ap[...]
Apple Inc.
[8]
웹사이트
Metal Performance Shaders
https://developer.ap[...]
[9]
웹사이트
Apple gets heavy with gaming, announces Metal development platform
https://arstechnica.[...]
Condé Nast
2014-06-02
[10]
웹사이트
Apple Announces OS X El Capitan with Refined Experience & Improved Performance
https://www.apple.co[...]
Apple
2015-06-08
[11]
웹사이트
Metal 2
https://developer.ap[...]
Apple
2017-11-20
[12]
웹사이트
Bring your Metal app to Apple Silicon Macs
https://developer.ap[...]
2020-07-13
[13]
웹사이트
Discover Metal 3
https://developer.ap[...]
2022-06-24
[14]
웹사이트
Program Metal in C++ with metal-cpp
https://developer.ap[...]
2022-09-10
[15]
웹사이트
Apple Turns Its Back On Customers And NVIDIA With macOS Mojave
https://www.forbes.c[...]
2018-12-11
[16]
웹사이트
Metal feature set tables
https://developer.ap[...]
Apple
[17]
웹사이트
WWDC 2017 Platforms State of the Union
https://developer.ap[...]
Apple Inc.
[18]
뉴스
Vulkan Applications Enabled on Apple Platforms
https://www.khronos.[...]
Khronos Group Press Release
2021-02-24
[19]
웹사이트
Initial Vulkan Performance On macOS With Dota 2 Is Looking Very Good
https://www.phoronix[...]
Phoronix
2018-06-01
[20]
웹사이트
HEROES OF THE STORM BALANCE PATCH NOTES — NOVEMBER 29, 2017
https://news.blizzar[...]
2017-11-29
[21]
Tweet
vkQuake2 gets MacOS support
2019-02-09
[22]
웹사이트
X-Plane 11.50 Public Beta 1: Vulkan and Metal Are Here
https://developer.x-[...]
2020-04-02
[23]
웹사이트
Metal Shading Language Guide
https://developer.ap[...]
アップル
2014-09-17
[24]
웹사이트
西川善司の3DGE:Appleのゲーム向けAPI「Metal 3」は,DirectX 12 Ultimateに一層近づいた
https://www.4gamer.n[...]
2023-06-21
[25]
웹사이트
Technologies for Game Developers
https://developer.ap[...]
2023-06-21
[26]
웹사이트
Metal shader converter - Metal
https://developer.ap[...]
2023-06-21
[27]
웹사이트
Apple、WindowsゲームをMacに移植する「Game Porting Tool」リリース
https://www.itmedia.[...]
2023-06-21
[28]
웹사이트
Discover Metal 3 - WWDC22 - Videos
https://developer.ap[...]
2023-06-21
[29]
웹사이트
Metal に対応している Mac コンピュータの一覧
https://support.appl[...]
アップル
2017-10-10
[30]
문서
【西田宗千佳のRandomTracking】WWDC 2014 開発環境編:「機器の外の魅力」で戦う準備を進めるアップル - AV Watch
https://av.watch.imp[...]
[31]
웹사이트
Unity - Unity Japan Official Blog – Metal, iOS 8 の新グラフィクス API
http://japan.unity3d[...]
Unity Technologies Japan G.K.
2014-07-04
[32]
웹인용
Metal Shading Language Guide
https://developer.ap[...]
2014-09-08
[33]
문서
http://blogs.unity3d[...]
[34]
웹인용
WWDC 2017 Platforms State of the Union
https://developer.ap[...]
[35]
뉴스
Vulkan Support Is Finally Coming to Apple's macOS & iOS to Make Games Run Faster
http://news.softpedi[...]
2018-02-28
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com