Position: Machine Learning Compiler Optimization Engineer
Company: EigenMethod
Experience required: 1y
English level: intermediate

Work as part of a team creating optimized compiler transformations and tuned libraries that take advantage of the latest LLVM and MLIR compiler infrastructure. Become part of the AMD development team and broader open-source community to analyze, develop, test and upstream improvements that make AMD the best platform for machine learning applications   

Preferred Experience: 
•Excellent C/C++ programming and software design skills including debugging, performance analysis and test design 
•Strong background with compiler optimizations or extended experience with LLVM compiler framework. 
•Experience with and passion of any of the following is a plus – machine learning, parallel programming (HIP, CUDA, OpenCL), high-performance and massively parallel systems, processor and computer architecture 
•Ability to work independently, define project goals and scope, and lead your own development effort 
•Knowledge of GPU computing and basic understanding of Deep Learning is an advantage 
Academic Credentials: 
•Bachelor's, Master's, or PhD or equivalent experience in Computer Science, Computer Engineering, or related field 

Key Responsibilities: 
•Work on compiler technologies to optimize transformation of high-level machine learning operations into tuned ISA code for AMD GPUs. 
•Work jointly with library developers to adopt and use these compiler technologies to enable library development. 
•Work together with open-source maintainers to have your changes adopted 
•Benchmark, analyze, and optimize performance of key machine learning applications and participate in the co-design across AMD’s ML hardware and software stack 
•Develop high-performance run-time ML engine 
•Work closely with ML engineers to discover the hardware and software requirements of current and future ML applications 
•Work in a distributed compute setting to optimize for both scale-up (multi-GPU) and scale-out (multi-node) systems 
•Apply your knowledge of software engineering standard methodologies