We present Tangram, a programming system for writing performance-portable programs. The language enables programmers to write computation and composition codelets, supported by tuning knobs and primitives for expressing data parallelism and work decomposition. The compiler and runtime use a set of techniques such as hierarchical composition, coarsening, data placement, tuning, and runtime selection based on input characteristics and micro-profiling. The resulting performance is competitive with optimized vendor libraries.
['Li Wen Chang', 'Izzat El Hajj', 'Hee Seok Kim', 'Juan Gómez-Luna', 'Abdul Dakkak', 'Wen Mei W Hwu']
A programming system for future proofing performance critical libraries