Device Driver / Machine Learning / Compiler Software Engineer

Location: Markham, CA

Company: Advanced Micro Devices

Apply now

Apply for Job

What you do at AMD changes everything 





AMD's Core Software Team (MacOS Platform) develops and maintains the MacOS client and kernel device drivers for compute APIs such as OpenCL and Metal, supporting AMD Radeon graphics hardware.  Our team is looking for an experienced software engineer to develop, maintain, and support MacOS Machine Learning CoreML API on AMD GPUs.


The successful candidate will utilize their knowledge of machine learning to design and develop tools that profile the performance of our GPUs, and subsequently be able to analyze the data to drive improvements.  Through analysis, the candidate will help drive performance improvements at the SW driver stack, and the GPU execution level.  The ideal candidate will leverage outstanding cross-component, independent problem-solving skills, and work with other Compute / Machine Learning teams at AMD.


The ideal candidate will also have compiler experience and can help support AMD's OpenCL compiler stack for Mac OS X, as well as help with the newer Metal compiler stack.  The selected candidate will have the flexibility to bridge compiler and driver development, have ownership of the OpenCL compiler code base and maintain it with a high degree of quality and attention to detail.


The successful candidate will thrive in a dynamic environment, be a strong team player with demonstrated initiative who is passionate about developing leading-edge products.


Key Responsibilities:


* Support, design and develop AMD specific machine learning software in the context of MacOS CoreML and Metal Performance Shaders APIs with a focus on performance.

* Profiling and analysis to identify and resolve performance issues.

* Excellent communications skills to report status and actions on high-visibility investigations to varied audience, from engineering to executive, and to engage with customer.

* Enhancing and maintaining sophisticated production-level GPU drivers, with a focus on ML.

* Maintain sophisticated production-level OpenCL compilers and enhance existing OpenCL drivers.

* Troubleshoot compiler issues, review proposed solutions with the team and customer, and independently implement code changes while maintaining a high quality bar.

* Collaborating closely with various engineering teams to implement features and debug issues within the GPU-specific driver.

* Designing, prototyping, and evaluating new performance tools.

* Contributing to all phases of software development life cycle including requirements gathering, scoping, design, implementation, test, bug fixing and documentation.

* Validating GPU MI/ML features and performance for new hardware generations.




* BASc/BSc (or greater) in Computer Science or Computer Engineering.

* Excellent technical communication, interpersonal and teamwork skills.

* Excellent programming skills with demonstrated experience in C/C++.

* Outstanding independent cross-functional problem solving and debugging skills.


Required Skills:


* 3-5 years demonstrated software engineering experience (or advanced education equivalent).

* Experience in machine learning systems, algorithms, frameworks, libraries.

* Knowledge of GPU architecture and parallel computing concepts.

* Good foundational understanding of operating system concepts, memory management, concurrency and multi-threading.

* Fast learner, adaptable, self-starter who can work both independently and collaborate well within dynamic team environment.

* Experience delivering production quality, maintainable code on schedule, particularly in a larger software organization.

* Experience with complex software systems and architectures.

* Strong understanding of Object Oriented design principles.


Preferred Skills:


* Professional experience in compiler development strongly preferred, especially in LLVM backend implementation.

* Ability to read and debug IL/ISA.

* Experience in GPU programming, and/or parallel and asynchronous processing using APIs such as Metal, OpenCL, CUDA, HIP, OpenGL, DirectX, D3D, or Mantle.

* Experience with code optimization using the GPU, performance tooling, capturing HW counters and traces, and analysis/metrics.

* Experience developing and debugging software on MacOS or Linux/Unix.

* Experience with the Objective-C programming language.

* Experience with operating system development, low-level device driver, embedded driver development or similar.



Requisition Number: 74787 
Country: Canada State: Ontario City: Markham 
Job Function: Software Engineering 


AMD is an inclusive employer dedicated to building a diverse workforce. We encourage applications from all qualified candidates and will accommodate applicants’ needs under the respective provincial human rights codes throughout all stages of the recruitment and selection process. Any applicant who requires accommodation should contact


Apply now

Apply for Job

Find similar jobs:
Share this Job