1. A method for performing a data manipulation function, the method comprising: receiving, by a processor, a request from an application to perform the data manipulation function; based on determining that a specialized hardware device configured to perform the data manipulation function is available, determining if executing the request on the specialized hardware device is viable; based on determining that t executing the request on the specialized hardware device is viable, executing the request on the specialized hardware device.