Use a WeakKeyDictionary for program_executor_cache to avoid keeping CL contexts alive - #671
Merged
WeakKeyDictionary for program_executor_cache to avoid keeping CL contexts alive - #671