This document provides a programmer's reference manual for HSAIL, which is a virtual instruction set architecture and intermediate language for heterogeneous computing. It describes the HSAIL programming model, including grids, work-groups, and work-items. It also covers memory types, wavefronts, and programming for scalable data-parallel applications. The document is intended for developers implementing the HSA architecture.