optimized hash_search with coalesced memory access, multi-threading, shared memory, and prefetch, all in psm.cu