1. An apparatus for offloading execution of a function from a CPU to an accelerator engine, comprising: a CPU configured to interact with an application program to determine the function for offloading and locate data related to the function, wherein the data is stored on a secondary storage device external to the CPU; and an accelerator engine coupled to the CPU comprising a first direct memory access engine, wherein the accelerator engine is programmed by the CPU to execute the function, and wherein the CPU is further configured to program the first direct memory access engine to transfer data related to the function from the secondary storage device directly to the accelerator engine.