Senior Software Engineer (GPU Performance)
at Microsoft Canada
Vancouver, BC, Canada -
Start Date | Expiry Date | Salary | Posted On | Experience | Skills | Telecommute | Sponsor Visa |
---|---|---|---|---|---|---|---|
Immediate | 18 Jan, 2025 | USD 108100 Annual | 19 Oct, 2024 | 3 year(s) or above | Good communication skills | No | No |
Required Visa Status:
Citizen | GC |
US Citizen | Student Visa |
H1B | CPT |
OPT | H4 Spouse of H1B |
GC Green Card |
Employment Type:
Full Time | Part Time |
Permanent | Independent - 1099 |
Contract – W2 | C2H Independent |
C2H W2 | Contract – Corp 2 Corp |
Contract to Hire – Corp 2 Corp |
Description:
Overview
The Artificial Intelligence (AI) Frameworks team at Microsoft develops the AI software used to train and deploy the world’s most advanced AI models. We collaborate with our hardware teams and partners to build the software stacks for Microsoft’s next-generation supercomputers and the new Maia-100 AI accelerator. We work closely with ML researchers and developers to optimize and scale out model training and inference. We work directly with OpenAI on the models hosted on the Azure OpenAI service.
We are hiring a Senior Software Engineer (GPU Performance) to work on Graphics Processing Unit (GPU) performance analysis and optimization. As a member of this team, you will have the opportunity to work on the fundamental abstractions, programming models, runtimes, libraries and APIs to enable large scale training and inferencing of models on novel AI hardware.
This is a technical role focused on performance analysis and optimization of machine learning models: it requires hands-on software development skills. We’re looking for someone who has a demonstrated history of solving hard technical problems and is motivated to tackle the hardest problems in building a full end-to-end AI stack. An entrepreneurial approach and ability to take initiative and move fast are essential.
Microsoft’s mission is to empower every person and every organization on the planet to achieve more. As employees we come together with a growth mindset, innovate to empower others, and collaborate to realize our shared goals. Each day we build on our values of respect, integrity, and accountability to create a culture of inclusion where everyone can thrive at work and beyond.
Relocation assistance is unavailable for this role.
Qualifications
Required/Minimum Qualifications
Bachelor’s Degree in Computer Science, or related technical discipline AND 4+ years technical engineering experience with coding in languages including, but not limited to, C, C++, or Python
OR equivalent experience.
3+ years’ practical experience working on applications that use GPUs, experience in optimizing their performance.
Practical experience writing GPU kernels, going beyond experience of GPU workloads with existing library kernels.
Additional or Preferred Qualifications
Bachelor’s Degree in Computer Science
OR related technical field AND 8+ years technical engineering experience with coding in languages including, but not limited to, C, C++, C#, Java, JavaScript,
OR Python
OR Master’s Degree in Computer Science or related technical field AND 6+ years technical engineering experience with coding in languages including, but not limited to, C, C++, C#, Java, JavaScript, or Python
OR equivalent experience.
Practical experience in low-level performance analysis and optimization, including proficiency using GPU profiling tools such as NVIDIA Visual Profiler, and NVIDIA Nsight Compute
Technical background and foundation in software engineering principles and architecture design.
Exposure to Deep Neural Network inference and experience in one or more deep learning frameworks such as PyTorch, Tensorflow, or ONNX runtime
Cross-team collaboration skills and the desire to collaborate in a team of researchers and developers.
Software Engineering IC4 - The typical base pay range for this role across Canada is CAD $108,100 - CAD $199,700 per year. Find additional pay information here: https://careers.microsoft.com/v2/global/en/canada-pay-information.html
Microsoft will accept applications and processes offers for these roles on an ongoing basis.
Responsibilities
Software development in C/C++, Python, and in GPU languages such as CUDA, ROCm, or Triton
Work with cutting-edge hardware stacks and a fast-moving software stack to deliver best-of-class inference and optimal cost.
Engage with key partners to understand and implement performance analysis and optimization for state-of-the-art LLMs and other models.
Embody our Culture & Value
Responsibilities:
Please refer the Job description for details
REQUIREMENT SUMMARY
Min:3.0Max:8.0 year(s)
Computer Software/Engineering
IT Software - System Programming
Software Engineering
Graduate
Proficient
1
Vancouver, BC, Canada