https://developer.apple.com/library/ios/documentation/Miscellaneous/Conceptual/MetalProgrammingGuide/Introduction/Introduction.html#//apple_ref/doc/uid/TP40014221
About Metal and This Guide
The Metal framework supports GPU-accelerated advanced 3D graphics rendering and data-parallel computation workloads. Metal provides a modern and streamlined API for fine-grained, low-level control of the organization, processing, and submission of graphics and computation commands, as well as the management of the associated data and resources for these commands. A primary goal of Metal is to minimize the CPU overhead incurred by executing GPU workloads.
At a Glance
This document describes the fundamental concepts of Metal: the command submission model, the memory management model, and the use of independently compiled code for graphics shader and data-parallel computation functions. The document then details how to use the Metal API to write an app.
You can find more details in the following chapters:
- Fundamental Metal Concepts briefly describes the main features of Metal.
- Command Organization and Execution Model explains how to create, commit, and submit commands to the GPU for execution.
- Resource Objects: Buffers and Textures discusses the management of device memory, including buffer and texture objects that represent GPU memory allocations.
- Functions and Libraries describes how Metal shading language code can be represented in a Metal app, and how Metal shading language code is loaded onto and executed by the GPU.
- Graphics Rendering: Render Command Encoder describes how to render 3D graphics, including how to distribute graphics operations across multiple threads.
- Data-Parallel Compute Processing: Compute Command Encoder explains how to perform data-parallel processing.
- Buffer and Texture Operations: Blit Command Encoder describes how to copy data between textures and buffers.
- Metal Tips and Techniques lists development tips, such as how to build libraries offline with compiled code.
Prerequisites
You should be familiar with the Objective-C language and experienced in programming with OpenGL, OpenCL, or similar APIs.
See Also
The Metal Framework Reference is a collection of documents that describes the interfaces in the Metal framework.
The Metal Shading Language Guide is a document that specifies the Metal shading language, which is used to write a graphics shader or a compute function that is used by a Metal app.
In addition, several sample code projects using Metal are available in the Apple Developer Library.