EPIC (Computing)
Explicitly Parallel Instruction Computing — Intel and HP's VLIW-derived design philosophy underlying IA-64 / Itanium, adding predication, speculation, and instruction templates so a smart compiler could statically schedule parallelism. The compilers never quite arrived.
EPIC (Explicitly Parallel Instruction Computing) is a processor design philosophy jointly developed by Intel and Hewlett-Packard in the 1990s as the foundation for the IA-64 / Itanium architecture. It is a refinement of VLIW (Very Long Instruction Word) that adds features intended to make static scheduling more practical: instruction templates that group operations into bundles, predication that lets the compiler convert short branches into conditionally-executed straight-line code, and speculative loads that hoist memory reads above branches with hardware-supported recovery if the speculation was wrong. The central premise of EPIC is that a sufficiently smart compiler can identify and encode instruction-level parallelism better than runtime hardware can — eliminating the need for expensive out-of-order execution logic. In practice this proved enormously difficult. Branch behavior, cache behavior, and memory aliasing are runtime properties that compilers can only approximate, and the Itanium toolchain never reached the performance EPIC's designers had projected. Out-of-order x86 superscalar designs kept the dynamic-scheduling advantage that EPIC was meant to eliminate. EPIC is sometimes described as 'VLIW with safety nets.' The lessons from its failure — that compilers lack runtime information no matter how much static analysis they do — shaped subsequent thinking about where to draw the line between hardware and software scheduling. EPIC concepts live on in some DSP and GPU designs where workloads are predictable enough for static scheduling to pay off.