Sr. Software Development Engineer

Mar 25, 2024
Taipei, Taiwan
... Not specified
... Senior
Full time
... Office work


WHAT YOU DO AT AMD CHANGES EVERYTHING

We care deeply about transforming lives with AMD technology to enrich our industry, our communities, and the world. Our mission is to build great products that accelerate next-generation computing experiences – the building blocks for the data center, artificial intelligence, PCs, gaming and embedded. Underpinning our mission is the AMD culture. We push the limits of innovation to solve the world’s most important challenges. We strive for execution excellence while being direct, humble, collaborative, and inclusive of diverse perspectives. 

AMD together we advance_




SENIOR SOFTWARE DEVELOPMENT ENGINEER  

 

THE ROLE: 

As a Machine Learning Engineer specializing in low-level performance optimization, you will play a critical role in helping our customers to advance AMD-based machine learning infrastructure and ensuring the efficient deployment of state-of-the-art large models. You will be part of a dynamic team working on groundbreaking projects and will be responsible for optimizing model execution, including GPU kernels, both for inference and training, in a multi-GPU and multi-node environment. Your contributions will directly impact our ability to deliver cutting-edge AI solutions efficiently and at scale.

 

THE PERSON: 

The ideal candidate should be passionate about software engineering and possess leadership skills to drive sophisticated issues to resolution. Able to communicate effectively and work optimally with different teams across AMD.  

 

KEY RESPONSIBILITIES: 

  • GPU Kernel Optimization: Develop and optimize low-level GPU kernels to accelerate inference and training of large machine learning models. Maximize the computational efficiency and reduce execution time while ensuring model accuracy.
  • Multi-GPU and Multi-Node Optimization: Design and implement strategies for distributed model training and inference across multiple GPUs and nodes. Address data parallelism and model parallelism challenges to fully utilize available resources.
  • Performance Profiling: Profile and analyze system and application performance to identify bottlenecks and areas for improvement. Use profiling tools to understand and optimize hardware resource utilization.
  • Parallel Computing: Leverage parallel computing techniques to improve the scalability and performance of machine learning workloads. Implement multi-threading and GPU synchronization techniques.
  • Model Quantization: Explore and apply model quantization techniques to reduce memory and computation overhead, especially for edge and cloud deployment.
  • Benchmarking and Testing: Develop benchmarks and testing procedures to assess the performance and stability of optimized models and frameworks. Ensure that the solutions meet or exceed the defined performance criteria.
  • Collaboration: Collaborate closely with machine learning researchers, software engineers, and infrastructure teams to integrate optimized kernels and solutions into production systems.
  • Documentation: Create detailed documentation of optimizations, best practices, and implementation guidelines to facilitate knowledge sharing and maintainable code.

 

PREFERRED EXPERIENCE: 

  • Solid understanding of GPU accelerators like ONNX, DeepSpeed, VLLM
  • Strong experience in low-level GPU kernel optimization.
  • Proficiency in CUDA and GPU programming.
  • Experience with distributed computing and multi-GPU environments.
  • Proficiency in performance profiling and optimization tools.
  • Solid programming skills in Python and/or C++.
  • Experience with deep learning frameworks (e.g., TensorFlow, PyTorch).
  • Excellent problem-solving skills and attention to detail.
  • Strong communication and teamwork skills.

 

ACADEMIC CREDENTIALS: 

  • A Bachelor, Master's or Ph.D. in Computer Science, Electrical Engineering, or a related field or equivalent practical experience

#LI-SC1




Benefits offered are described:  AMD benefits at a glance.

 

AMD does not accept unsolicited resumes from headhunters, recruitment agencies, or fee-based recruitment services. AMD and its subsidiaries are equal opportunity, inclusive employers and will consider all applicants without regard to age, ancestry, color, marital status, medical condition, mental or physical disability, national origin, race, religion, political and/or third-party affiliation, sex, pregnancy, sexual orientation, gender identity, military or veteran status, or any other characteristic protected by law.   We encourage applications from all qualified candidates and will accommodate applicants’ needs under the respective laws throughout all stages of the recruitment and selection process.

Benefits offered are described:  AMD benefits at a glance.

 

AMD does not accept unsolicited resumes from headhunters, recruitment agencies, or fee-based recruitment services. AMD and its subsidiaries are equal opportunity, inclusive employers and will consider all applicants without regard to age, ancestry, color, marital status, medical condition, mental or physical disability, national origin, race, religion, political and/or third-party affiliation, sex, pregnancy, sexual orientation, gender identity, military or veteran status, or any other characteristic protected by law.   We encourage applications from all qualified candidates and will accommodate applicants’ needs under the respective laws throughout all stages of the recruitment and selection process.

SENIOR SOFTWARE DEVELOPMENT ENGINEER  

 

THE ROLE: 

As a Machine Learning Engineer specializing in low-level performance optimization, you will play a critical role in helping our customers to advance AMD-based machine learning infrastructure and ensuring the efficient deployment of state-of-the-art large models. You will be part of a dynamic team working on groundbreaking projects and will be responsible for optimizing model execution, including GPU kernels, both for inference and training, in a multi-GPU and multi-node environment. Your contributions will directly impact our ability to deliver cutting-edge AI solutions efficiently and at scale.

 

THE PERSON: 

The ideal candidate should be passionate about software engineering and possess leadership skills to drive sophisticated issues to resolution. Able to communicate effectively and work optimally with different teams across AMD.  

 

KEY RESPONSIBILITIES: 

  • GPU Kernel Optimization: Develop and optimize low-level GPU kernels to accelerate inference and training of large machine learning models. Maximize the computational efficiency and reduce execution time while ensuring model accuracy.
  • Multi-GPU and Multi-Node Optimization: Design and implement strategies for distributed model training and inference across multiple GPUs and nodes. Address data parallelism and model parallelism challenges to fully utilize available resources.
  • Performance Profiling: Profile and analyze system and application performance to identify bottlenecks and areas for improvement. Use profiling tools to understand and optimize hardware resource utilization.
  • Parallel Computing: Leverage parallel computing techniques to improve the scalability and performance of machine learning workloads. Implement multi-threading and GPU synchronization techniques.
  • Model Quantization: Explore and apply model quantization techniques to reduce memory and computation overhead, especially for edge and cloud deployment.
  • Benchmarking and Testing: Develop benchmarks and testing procedures to assess the performance and stability of optimized models and frameworks. Ensure that the solutions meet or exceed the defined performance criteria.
  • Collaboration: Collaborate closely with machine learning researchers, software engineers, and infrastructure teams to integrate optimized kernels and solutions into production systems.
  • Documentation: Create detailed documentation of optimizations, best practices, and implementation guidelines to facilitate knowledge sharing and maintainable code.

 

PREFERRED EXPERIENCE: 

  • Solid understanding of GPU accelerators like ONNX, DeepSpeed, VLLM
  • Strong experience in low-level GPU kernel optimization.
  • Proficiency in CUDA and GPU programming.
  • Experience with distributed computing and multi-GPU environments.
  • Proficiency in performance profiling and optimization tools.
  • Solid programming skills in Python and/or C++.
  • Experience with deep learning frameworks (e.g., TensorFlow, PyTorch).
  • Excellent problem-solving skills and attention to detail.
  • Strong communication and teamwork skills.

 

ACADEMIC CREDENTIALS: 

  • A Bachelor, Master's or Ph.D. in Computer Science, Electrical Engineering, or a related field or equivalent practical experience

#LI-SC1

COMPANY JOBS
1626 available jobs
WEBSITE