Moved to reusing one ComputeProvider in different modules due to impossibility of creating more than three different CPs.
Implemented naive hashing search with input substring hashes in private work item memory.
Implemented previous algorithm with copying the hashes and lengths of templates to local work group memory.