Company:Qualcomm Canada ULC
Job Area:Engineering Group, Engineering Group > Machine Learning Engineering
General Summary:As a Qualcomm Machine Learning Engineer, you will create and implement machine learning techniques, frameworks, and tools that enable the efficient discovery and utilization of state-of-the-art machine learning solutions over a broad set of technology verticals or designs. Qualcomm Engineers collaborate with cross-functional teams to enhance the world of mobile, edge, auto, and IOT products through machine learning hardware and software.
New PositionPurpose:As a member of Qualcomm's ML Systems Team, you will participate in two activities:
- Development and evolution of ML/AI compilers (production and exploratory versions) for efficient mappings of ML/AI algorithms on existing and future HW
- Analysis of ML/AI algorithms and workloads to drive future features in Qualcomm's ML HW/SW offerings
Key Responsibilities:- Contributing to the development and evolution of ML/AI compilers within Qualcomm
- Defining and implementing algorithms for compiling ML/AI workloads to achieve high performance and low power on Qualcomm HW
- Creating and implementing algorithms that couple PyTorch framework efficiently to Qualcomm ML/AI Compiler flows.
- Understanding trends in ML network design, through customer engagements and latest academic research, and how this affects both SW and HW design
- Exploration and analysis of performance/area/power trade-offs for future HW and SW ML algorithms
- Creation of performance-driven simulation components (using C++, Python) for analysis and design of high-performance HW/SW algorithms on future SoCs
- Pre-Silicon prediction of performance for various ML algorithms
- Running, debugging and analyzing performance simulations to suggest enhancements to Qualcomm hardware and software to tackle framework, compute and system memory-related bottlenecks
• Successful applications will work in cross-site, cross-functional teams.
Requirements:- Demonstrated ability to learn, think and adapt in fast changing environment
- Detail-oriented with strong problem-solving, analytical and debugging skills
- Strong communication skills (written and verbal)
- Strong background in algorithm development and performance analysis is essential
The following experience would be significant assets:- Strong object-oriented design principles
- Strong knowledge of C++
- Strong knowledge of Python
- Experience in compiler design and development is an asset
- Knowledge of network model formats/platforms (eg. Pytorch, ONNX) is a strong asset.
- Knowledge of software development processes (revision control, CD/CI, etc.) • Familiarity with tools such as git, Jenkins, Docker, clang/MSVC
- On-silicon debug skills of high-performance compute algorithms • Knowledge of algorithms and data structures
- Knowledge of computer architecture, digital circuits and event-driven transactional models/simulators
Minimum Qualifications:• Bachelor's degree in Computer Science, Engineering, Information Systems, or related field.
Pay range and Other Compensation & Benefits:$104,800.00 - $154,800.00
The above pay scale reflects the broad, minimum to maximum, pay scale for this job code for the location for which it has been posted. Even more importantly, please note that salary is only one component of total compensation at Qualcomm. We also offer a competitive annual discretionary bonus program and opportunity for annual RSU grants (employees on sales-incentive plans are not eligible for our annual bonus). In addition, our highly competitive benefits package is designed to support your success at work, at home, and at play. Your recruiter will be happy to discuss all that Qualcomm has to offer.
If you would like more information about this role, please contact Qualcomm Careers.