1. A method comprising: writing input data to a first cache line of a cache shared by a processor and an accelerator, wherein the input data is ready to be operated on by the accelerator; writing instructions to one or more cache lines, the one or more cache lines designated as a queue for the accelerator, wherein the instructions indicate a first operation to be performed by the accelerator and a virtual pointer to the input data in the cache; determining, by the processor, that output data of the accelerator is ready to be consumed, the output data being located at the first cache line or at an additional cache line of the cache, wherein the first cache line or the additional cache line comprises a set first flag that indicates the first cache line or the additional cache line was modified by the accelerator and that prevents the output data from being removed from the first cache line or the additional cache line until the output data is read by the processor; reading and processing the output data from the first cache line or the additional cache line by the processor; and responsive to processing the output data: removing the first flag from the first cache line or the additional cache line; and setting a second flag in the first cache line or the additional cache line, wherein the second flag marks the first cache line or the additional cache line as being least recently used.