금속(API)

Metal (API)
메탈
Metal 2 Logo.png
Vainglory Halcyon Fold map.tif
애플은 모바일 멀티플레이어 온라인 배틀 아레나 게임인 뱅글로리를 사용해 2014년 9월 아이폰6 발표[1] 행사에서 메탈의 그래픽 능력을 시연했다.
개발자애플사
초기 릴리즈2014년 6월, 8년 전(2014-06)
안정된 릴리스
2019년 6월 3일, 3년 전(2019-06)
기입처음영 언어:C++14, 런타임/API: 목표-C
운영 체제iOS, iPadOS, macOS, tvOS
유형3D 그래픽스 및 컴퓨팅 API
면허증.전매의
웹 사이트developer.apple.com/metal/

Metal은 Apple이 만든 낮은 수준의 하드웨어 가속 3D 그래픽컴퓨팅 셰이더 API입니다.iOS8에서 첫선을 보인 메탈은 OpenGL과 OpenCL과 비슷한 기능을 하나의 API로 결합했다.iOS, iPadOS, macOStvOS에서 GPU 하드웨어에 대한 낮은 수준의 액세스를 제공함으로써 성능을 향상시키도록 의도되었습니다.Vulkan이나 DirectX 12와 같은 다른 플랫폼의 낮은 수준의 API와 비교할 수 있습니다.

Metal은 Swift, Objective-C 또는 C++17[2] 프로그래밍 언어를 사용하여 호출할 수 있는 객체 지향 API입니다.본격적인 GPU 실행은 Metal Shading Language를 통해 제어됩니다.Apple의 판촉 자료에 의하면, 「MSL[Metal Shading Language]는, 그래픽스 프로그램과 컴퓨팅 프로그램을 보다 긴밀하게 통합할 수 있는, 단일의 통합 언어입니다.MSL은 C++ 기반이기 때문에 익숙하고 [3]사용하기 쉽습니다.

특징들

Metal은 GPU에 대한 오버헤드가 낮은 액세스를 제공하는 것을 목적으로 합니다.명령어는 사전에 인코딩된 후 비동기 실행을 위해 GPU에 제출됩니다.응용 프로그램은 실행이 완료될 때까지 기다려야 하는 시기를 제어하기 때문에 응용 프로그램 개발자는 GPU에서 명령이 실행되는 동안 다른 명령을 인코딩하여 throughput을 높이거나 GPU 실행이 완료될 때까지 명시적으로 대기하여 전력을 절약할 수 있습니다.또, 커맨드 부호화는 CPU에 의존하지 않기 때문에, 애플리케이션은 각 CPU 스레드에 대해서 커맨드를 개별적으로 부호화할 수 있습니다.마지막으로 렌더링 상태는 사전에 계산되므로 GPU 드라이버는 명령을 실행하기 전에 렌더링 파이프라인을 구성하고 최적화하는 방법을 미리 알 수 있습니다.[4]

Metal은 컴퓨팅 셰이더를 사용하여 GPGPU 프로그래밍 기능을 향상시킵니다.Metal은 Clang 및 LLVM[5]사용하여 구현된 C++14 기반특정 음영 언어를 사용합니다.

메탈은 애플리케이션 개발자에게 메탈 리소스(버퍼, 텍스처)를 생성할 수 있는 유연성을 제공합니다.CPU, GPU 또는 둘 다에 리소스를 할당할 수 있으며 할당된 리소스를 업데이트 및 동기화하는 기능을 제공합니다.또한 Metal은 명령어인코더 수명 동안 리소스 상태를 강제할 수 있습니다.[6] [7]

MacOS에서 Metal은 애플리케이션 개발자에게 실행할 GPU를 지정할 수 있는 재량권을 제공합니다.애플리케이션 개발자는 CPU의 저전력 통합 GPU, (특정 MacBooks 및 Mac의) 개별 GPU 또는 Thunderbolt를 통해 연결된 외부 GPU 중 하나를 선택할 수 있습니다.애플리케이션 개발자는 GPU 명령어가 어떤 GPU에서 어떻게 실행되는지를 선호하며, 어떤 GPU가 어떤 명령어를 실행하는 것이 가장 효율적인지에 대한 제안을 제공합니다(장면을 렌더링하는 명령어는 개별 GPU에 의해 실행되며, 후 처리 및 표시는 통합 GPU에 의해 처리됩니다).[8]

메탈 퍼포먼스 셰이더

Metal Performance Shaders는 애플리케이션 개발자가 GPU 패밀리 고유의 기능을 유지 보수하는 작업을 줄일 수 있도록 고도로 최적화된 그래픽 기능 라이브러리입니다.[9] 다음과 같은 기능을 제공합니다.

  • 이미지 필터링 알고리즘
  • 뉴럴 네트워크 처리
  • 고급 연산
  • 레이 트레이스

역사

Metal은 2014년 6월 2일부터 Apple A7 [10]이상이 탑재된 iOS 장치에서, 2015년 6월 8일부터 OS X El [11]Capitan탑재된 Mac(2012년 모델 이상)에서 사용할 수 있습니다.

2017년 6월 5일 WWDC에서 애플은 MacOS High Sierra, iOS 11tvOS 11에서 지원하는 Metal의 두 번째 버전을 발표했습니다.Metal 2는 Metal과 다른 API가 아니며 동일한 하드웨어에서 지원됩니다.Metal 2는 Xcode에서의 보다 효율적프로파일링과 디버깅, 고속 머신러닝, CPU 워크로드 저감, MacOS에서의 가상현실 지원,[12] 특히 Apple A11 GPU의 사양을 실현합니다.

2020년 WWDC에서 애플은 Mac에서 애플 실리콘으로의 이행을 발표했습니다.Apple Silicon을 사용하는 Mac은 이전에 MacOS와 iOS에서 사용 가능했던 기능을 조합한 Apple GPU를 탑재하고 Apple GPU의 [13]TBDR(타일 기반 지연 렌더링) 아키텍처에 맞춘 기능을 활용할 수 있습니다.

2022년 WWDC에서 애플은 MacOS Ventura, iOS 16, iPadOS 16이 지원하는 메탈(Metal 3)의 세 번째 버전을 발표했습니다.Metal FX 업스케일링 프레임워크는 고성능 업스케일링과 안티에이리어싱을 [14]통해 복잡한 장면을 프레임당 짧은 시간에 렌더링합니다.

지원되는 GPU

Metal API의 첫 번째 버전과 두 번째 버전은 [15]다음과 같은 하드웨어와 소프트웨어를 지원합니다.

Metal API의 세 번째 버전은 다음과 같은 하드웨어와 소프트웨어를 지원합니다.

도입

애플에 따르면 2017년 [16]6월 현재 14만8000개 이상의 어플리케이션이 메탈을 직접 사용하고 있으며 170만 개가 높은 수준의 프레임워크를 통해 사용하고 있다.

제목 개발자(macOS 버전) 게임 엔진 MacOS 출시일(OpenGL) 금속 기반 출시 날짜 금속 서포트 노트
EVE 온라인 CCP 게임 없음 2021년 10월 14일
문명 VI 애스퍼 미디어 지식 2016년 10월 24일 2019년 4월[citation needed] 5일 이후 메탈 서포트
배트맨: 아캄시티 Feral Interactive 언리얼 엔진 3 2013년 10월 18일 2019년 2월 21일부터 v1.2를[citation needed] 사용한 메탈 지원
도타 2 밸브 소스 2 2013년 7월 18일 MoltenVK는 2018년 [17]2월 26일에 발표되었습니다.2018년 [18]5월 31일부터 이 옵션을 사용할 수 있게 되었다.
퀘이크 II id 소프트웨어 Quake II 엔진 2019년 2월 9일 MontenVK를 사용하는 포트가 vkQuake2로 [19]출시되었습니다.
툼 레이더 Feral Interactive 기초 엔진 2014년 1월 17일 2019년 7월[citation needed] v1.2의 메탈 서포트
툼레이더의 부활 Feral Interactive 기초 엔진 2018년 4월 12일
무덤 습격자의 그림자 Feral Interactive 기초 엔진 2019
F1 2016 Feral Interactive EGO 엔진 4.0 2017년 4월 6일
인생은 이상해 2 Feral Interactive 언리얼 엔진 4 2019
인생은 이상하다:폭풍 전 Feral Interactive 유니티 엔진 2018년 9월 13일
신성:원죄 II 엘베릴 디비티 엔진 2 2019년 1월 31일
발두르의 문 3 엘베릴 Divinity Engine 4.0 TBA 2020년 10월[citation needed] 6일 이후 얼리 액세스 메탈 지원
컴퍼니 오브 히어로즈 2 Feral Interactive 에센스 엔진 3 2015년 1월 21일 2018년 10월[citation needed] 19일 이후 메탈 서포트
히트맨 Feral Interactive 글레이셔 2 2017년 6월 20일
시드 마이어의 철도! Feral Interactive 가메브료 2012년 11월 1일 2018년 12월[citation needed] 18일 이후 메탈 서포트
워해머 40,000: 던 오브 워 III Feral Interactive 에센스 엔진 4 2017년 6월 9일
토탈 워: 로마 리마스터드 Feral Interactive TW 엔진 2 2021년 4월 29일
총 전쟁:삼국지 Feral Interactive TW 엔진 3 2019년 5월 23일
토탈 워: 워해머 Feral Interactive TW 엔진 3 2017년 4월 19일
토탈 워: 워해머 II Feral Interactive TW 엔진 3 2018년 11월 20일
토탈 워 사가:브리타니아의 왕좌 Feral Interactive TW 엔진 3 2018년 5월 24일
토탈 워 사가:트로이 Feral Interactive TW 엔진 3 2020년 8월 13일
중세 II: 토탈 워 Feral Interactive TW 엔진 2 2015년 12월 17일 2018년 10월[citation needed] 25일 이후 메탈 서포트
엠파이어: 토탈 워 Feral Interactive TW 엔진 3 2009년 3월 4일 2019년 12월[citation needed] 16일 이후 메탈 서포트
나폴레옹:토탈 워 Feral Interactive TW 엔진 3 2013년 7월 2일 2019년 10월 25일부터 v1.2를[citation needed] 사용한 메탈 지원
토탈 워: 쇼군 2 Feral Interactive TW 엔진 3 2014년 7월 31일 2019년 10월[citation needed] 4일 이후 메탈 서포트
토탈 워: 쇼군 2: 사무라이의 몰락 Feral Interactive TW 엔진 3 2014년 12월 18일 2019년 10월[citation needed] 4일 이후 메탈 서포트
바이오쇼크 리마스터드 Feral Interactive 언리얼 엔진 2.5 2017년 8월 22일
바이오쇼크 2 리마스터드 Feral Interactive 언리얼 엔진 2.5 2020년 10월 22일
F1 2017 Feral Interactive EGO 엔진 4.0 2017년 8월 25일
데우스 엑스: 인류 분열 Feral Interactive 여명 엔진 2017년 12월 12일
DiRT 랠리 Feral Interactive EGO 엔진 2.5 2017년 11월 16일
탄도 오버킬 Aquiris 게임 스튜디오 유니티 엔진 5 2017년 3월 28일
배틀테크 헤어브레인 스킴 유니티 엔진 5 2018년 4월 24일
마피아 III 애스퍼 미디어 일루전 엔진 2017년 5월 11일
월드 오브 워크래프트 블리자드 엔터테인먼트 WoW 엔진 2004년 11월 23일 2016년 8월부터[citation needed] 메탈 서포트
스타크래프트 블리자드 엔터테인먼트 개량형 워크래프트 II 엔진 2001년 11월 20일 2020년 7월 2일부터 v1.23.5를[citation needed] 사용한 메탈 지원
스타크래프트 II 블리자드 엔터테인먼트 SC2 엔진 2010년 7월 27일 2017년 1월[citation needed] 24일 이후 베타판 메탈 지원
히어로즈 오브 더 스톰 블리자드 엔터테인먼트 SC2 엔진 2015년 6월 2일 2017년 1월 24일 이후 베타판 메탈 지원(2017년 11월[20] 29일 ~ ?)[citation needed]
포트나이트 에픽 게임즈 언리얼 엔진 4 2017년 7월 25일
돌출 시안의 세계 언리얼 엔진 4 2017년 3월 29일
에버스페이스 우럭 언리얼 엔진 4 2017년 5월 26일
아크: 서바이벌 에볼루션 Studio 와일드카드 언리얼 엔진 4 2017년 8월 29일
옵서버 블로버 팀 언리얼 엔진 4 2017년 10월 24일
언리얼 토너먼트 에픽 게임즈 언리얼 엔진 4 취소된 2017년 1월부터[citation needed] 메탈 서포트
재투입했다 도미니크 그리쇼퍼 언리얼 엔진 4 2016년 9월 5일
시구정촌: 스카이라인 패러독스 인터랙티브 유니티 엔진 5 2015년 3월 10일 2017년 5월[citation needed] 18일 이후 메탈 서포트
유니버스 샌드박스 거군 유니티 엔진 5 TBA 2017년 6월부터[citation needed] 베타판 메탈 지원
워 썬더 가이진 엔터테인먼트 다고르 엔진 4 2012년 11월 1일 메탈 서포트는 2017년 5월 24일 추가(2018년 ?월에 폐지, 2020년 [citation needed]8월 27일 재도입)
위트니스 더클라 Thekla 엔진 2017년 3월 8일
마이크로머신 월드 시리즈 가상 프로그래밍 유니티 엔진 5 2017년 6월 30일
가디언즈 오브 갤럭시:텔테일 시리즈 텔테일 게임 Telltelltail Tool(표시 도구) 2017년 4월 18일
배트맨: 더 에너미 위인 텔테일 게임 Telltelltail Tool(표시 도구) 2017년 8월 8일
마인크래프트: 스토리 모드 - 시즌 2 텔테일 게임 Telltelltail Tool(표시 도구) 2017년 7월 11일
ARMA 3 가상 프로그래밍 실제 가상화 TBA 2017년 9월[citation needed] 17일 이후 베타판 메탈 지원
MXGP3 가상 프로그래밍 언리얼 엔진 4 2018년 11월 23일
자갈 가상 프로그래밍 언리얼 엔진 4 2019년 1월 20일
X-Plane 11 라미나리서치 없음 2017년 5월 30일 2020년 4월[21] 2일 이후 베타판 메탈 지원
헤드랜더 더블 파인 프로덕션 불상 기관 2016년 11월 18일
심즈 4 맥시스 스마트 심 2015년 2월 17일 메탈 서포트 2019년[citation needed] 11월 12일 추가
엘더 스크롤 온라인 제니맥스 온라인 스튜디오 없음 2014년 4월 4일 2018년 10월 22일 OpenGL 렌더러가 패치 4.2.5에서 MontenVK 래퍼(Vulkan API 호출을 Metal로 변환)를 통해 Vulkan으로 대체됨
스카이: 칠드런 오브 더 라이트 그 게임 회사 없음 2019년 7월 18일 Native Metal 지원은 2017년 11월 글로벌 라이브 이전부터 추가되었습니다.

「 」를 참조해 주세요.

  • Direct3DDirectX 12는 저레벨 API를 도입
  • 맨틀 – AMD의 저레벨 API
  • Vulkan – Open의 오버헤드가 낮은 후계자GL
  • MoltenVK - Metal API 상에서 Vulkan 소프트웨어를 실행하는 소프트웨어 호환성 라이브러리
  • 웹 GPU

레퍼런스

  1. ^ McWhertor, Michael (September 9, 2014). "This is the game Apple used to show off iPhone 6". Polygon. Vox Media. Archived from the original on September 11, 2014. Retrieved September 9, 2014.
  2. ^ "Getting started with Metal-CPP - Metal".
  3. ^ Apple Inc. "Metal Shading Language Specification" (PDF).
  4. ^ "Setting Up a Command Structure". Apple Inc.
  5. ^ "Metal Shading Language Guide". September 8, 2014. Retrieved September 10, 2014.
  6. ^ Apple Inc. "Setting Resource Storage Mode".
  7. ^ "Synchronizing a Managed Resource". Apple Inc.
  8. ^ "GPU Selection in macOS". Apple Inc.
  9. ^ "Metal Performance Shaders".
  10. ^ Machkovech, Same (June 2, 2014). "Apple gets heavy with gaming, announces Metal development platform". Ars Technica. Condé Nast.
  11. ^ Smith, Colin; Meza, Starlayne (June 8, 2015). "Apple Announces OS X El Capitan with Refined Experience & Improved Performance". Newsroom. San Francisco: Apple.
  12. ^ "Archived copy of the Metal homepage, November 2017". Apple Developer. Apple. November 20, 2017. Archived from the original on November 20, 2017 – via Wayback Machine.{{cite web}}: CS1 maint: bot: 원래 URL 상태를 알 수 없습니다(링크).
  13. ^ "Bring your Metal app to Apple Silicon Macs". developer.apple.com. Retrieved July 13, 2020.
  14. ^ "Discover Metal 3". developer.apple.com. Retrieved June 24, 2022.
  15. ^ Chiappetta, Marco (December 11, 2018). "Apple Turns Its Back On Customers And NVIDIA With macOS Mojave". Forbes.
  16. ^ Apple Inc. "WWDC 2017 Platforms State of the Union".
  17. ^ "Vulkan Applications Enabled on Apple Platforms". Khronos Group Press Release. Retrieved February 24, 2021.
  18. ^ Larabel, Michael (June 1, 2018). "Initial Vulkan Performance On macOS With Dota 2 Is Looking Very Good". Phoronix. Retrieved June 5, 2018.
  19. ^ Kondrak, Krzysztof [@k_kondrak] (February 9, 2019). "vkQuake2 gets MacOS support" (Tweet). Retrieved February 9, 2019 – via Twitter.
  20. ^ "HEROES OF THE STORM BALANCE PATCH NOTES — NOVEMBER 29, 2017". news.blizzard.com. November 29, 2017.
  21. ^ "X-Plane 11.50 Public Beta 1: Vulkan and Metal Are Here". X-Plane Developer. April 2, 2020. Retrieved April 2, 2020.

외부 링크