Metal 개발자 도구

Xcode의 Metal 디버거와 Instruments의 Metal System Trace를 비롯한 강력하고 광범위한 도구 세트를 사용하여 Metal 앱을 생성, 디버깅 및 프로파일링하세요.

세계적인 수준의 디버깅

Xcode에는 Metal 앱 디버깅을 위한 포괄적인 고급 도구 모음이 포함되어 있습니다. Metal 디버거를 사용하면 사용 중인 모든 리소스뿐만 아니라 렌더링, 컴퓨팅 및 머신 러닝 파이프라인 전체를 검사할 수 있습니다. Metal 4에 대한 새로운 지원 덕분에 인코더 단계 동기화부터 머신 러닝 네트워크 내 중간 텐서까지, 한층 더 광범위한 영역에서 디버깅하고 문제를 해결합니다.

방법 알아보기

종속성 스캔

종속성 뷰어에서는 Metal 워크로드의 구조를 그래픽으로 표현하고 리소스, 패스, 동기화 프리미티브, 그리고 버텍스와 프래그먼트 같은 개별 인코더 단계 간의 관계를 확인할 수 있습니다.

더 알아보기

메모리 사용량 최적화

Metal 디버거에는 Metal 메모리 사용량에 대한 종합적인 보고서가 포함되어 있어 Metal 앱의 메모리 사용량을 최적화하고 줄일 수 있습니다.

더 알아보기

Moana Island Scene, Copyright 2017-2022 Disney Enterprises, Inc. 모든 권리 보유.

리소스 검사

버퍼, 텍스처, 텐서와 같은 객체, 레이 트레이싱 가속 구조를 비롯하여 Metal 앱에서 사용하는 많은 리소스를 검사할 수 있습니다.

더 알아보기

셰이더 디버그

셰이더 디버거를 사용하면 셰이더 실행 중에 원하는 지점으로 이동하여 변수 값을 검사하고 셰이더 코드의 문제를 디버깅할 수 있습니다. 셰이더 코드를 편집하고 변경 사항을 다시 로드하여 수정 여부를 확인할 수 있습니다.

더 알아보기

머신 러닝 관련 정보

새로운 머신 러닝 네트워크 디버거를 사용하여 Metal 4 머신 러닝 인코더의 문제를 디버깅할 수 있습니다. 네트워크가 Apple Silicon에서의 실행을 위해 어떻게 최적화되는지 시각화한 다음, 네트워크에서 원하는 연산으로 이동하여 중간 텐서 내에서 예상치 못한 값을 찾습니다.

Metal 4 머신 러닝과 그래픽 결합하기

최적화된 네트워크 보기

연산이 실행을 위해 어떻게 최적화되는지 시각화하고, 어떤 연산이 GPU에서 함께 스티칭되거나 Neural Engine에 오프로드되는지 확인할 수 있습니다. 스티칭된 연산은 최적화된 단일 Metal 셰이더로 융합되므로 중간 메모리 오버헤드가 발생하지 않습니다.

중간 값 디버깅하기

머신 러닝 네트워크 디버거는 머신 러닝 네트워크의 모든 지점에서 연산을 평가할 수 있어, GPU에서 실행되는 모든 연산의 입력 또는 출력에서 예상치 못한 중간 값을 디버깅하는 데 도움이 됩니다.

자동 런타임 유효성 검사

Metal에는 강력한 런타임 진단 도구 세트가 내장되어 있어 Metal 앱이 올바르게 실행되고 있는지 확인할 수 있습니다. Xcode는 소스 코드 내에서 오류의 위치를 바로 보여 주므로 버그를 발생 전에 미리 파악하는 데 도움이 됩니다.

API 사용 확인

Metal을 통해 API를 올바르게 사용하고 있는지 확인할 수 있습니다. 예를 들어 텍스처에 실수로 잘못된 플래그를 설정한 경우 Metal이 이를 알려 줍니다.

더 알아보기

셰이더 확인

또한 Metal은 셰이더가 범위를 벗어난 버퍼에 접근하는 등의 잘못된 작업을 수행하지 않도록 방지해 줍니다. 셰이더 코드 Xcode에 문제가 있는 경우 셰이더 소스 코드 내부에서 문제가 있는 위치를 보여 줍니다.

더 알아보기

Metal 최대한 활용하기

Xcode에는 고급 툴 세트가 함께 제공되므로 Metal 앱이 Apple 하드웨어에서 부드러운 렌더링과 놀라운 성능을 일관되게 구현하도록 할 수 있습니다.

실시간 성능 모니터링

Metal Performance HUD로 Metal 앱에서 주요 그래픽 통계를 직접 모니터링하여 성능 문제를 쉽게 발견할 수 있으며 Xcode 또는 Instruments에서 캡처할 최적의 범위를 찾을 수 있습니다.

더 알아보기

전체 시스템 분석

Instruments의 Metal System Trace 템플릿은 CPU, GPU 및 Metal 앱의 메모리 사용량에 대한 병렬 작업을 시각적 타임라인으로 보여 줍니다.

더 알아보기

카운터를 사용하여 성능 향상

Xcode의 성능 타임라인에는 동시에 실행되는 다양한 패스 및 스테이지가 하드웨어 카운터와 함께 표시됩니다. 겹치지 않는 GPU 작업을 관찰하여 과잉 직렬화를 발견할 수 있습니다.

더 알아보기

셰이더 실행 추적하기

Xcode의 성능 히트 맵을 사용하면 포괄적인 성능 지표를 시각화하여 값이 큰 픽셀 또는 컴퓨팅 스레드를 쉽게 발견할 수 있습니다. 그런 다음 SIMD 그룹을 선택하여 함수 호출, 루프 반복, 활성 스레드를 포함한 전체 실행 기록을 볼 수 있습니다.

더 알아보기

셰이더 최적화

Metal 디버거는 셰이더 함수 비용을 시각화하고, 셰이더 소스 내의 인라인 통계를 보여 주므로 코드를 손쉽게 최적화할 수 있습니다. 셰이더를 편집하고 다시 로드하여 성능을 비교할 수도 있습니다.

더 알아보기

Metal 셰이더 컨버터와의 호환성

종합 Metal 개발자 도구 제품군은 Metal 셰이더 컨버터와 완벽하게 호환됩니다. 컴파일할 때 프로젝트가 디버그 정보를 포함하도록 준비하고 나면 Metal로부터 실행 시간 검증 오류를 받아 볼 수 있습니다. Metal 디버거는 변환된 셰이더의 디버깅 및 프로파일링도 지원합니다.

방법 알아보기

시작하기

macOS용 Metal 개발자 도구

Xcode를 다운로드하여 Metal 개발자 도구의 전체 모음을 사용해 보세요. Metal API 및 셰이더 사용량을 검증하고, Metal 디버거로 Metal 앱을 디버깅 및 프로파일링하고, Instruments의 Metal System Trace를 통해 시스템 성능을 분석하세요.

더 알아보기

Windows용 Metal 개발자 도구

개발자가 iOS, macOS, tvOS에 배포할 Metal 셰이더 프로그램과 애셋을 빌드할 수 있도록 지원하는 Windows 호스팅 도구, 헤더, 라이브러리 모음을 다운로드하세요.

지금 다운로드하기