Performance Embeddings: A Similarity-based Approach to Automatic Performance Optimization