Overview
Skills
Job Details
Cohesive Technologies is a global IT Services & Solutions company providing IT Staffing Services and Application Development Services necessary for technology leaders to deliver business value. We help our people and clients succeed by leveraging our expertise, deep industry and market knowledge, proprietary assessment tools and techniques, and project delivery methodologies. Through relationships with thousands of specialized professionals, we bring an unparalleled ability to match talent with opportunities by assessing, recruiting, developing and engaging the best and brightest people for our clients. We combine broad geographic presence, world-class solutions and a tailored, consultative approach to help our people and clients achieve higher performance and outstanding results.
Position: On Device ML Power and Performance Optimization Engineer
Location: San Diego CA
Job Overview:
-
We are seeking a highly skilled software/ML engineer to join the Wearable System Architect team and work on power and performance optimization of on device ML.
The area of focus and main problems to address are:
-
Provide ML workload partition definition based on PnP characterization of ML accelerators.
-
Provide clear PnP guidelines for ML model architectural exploration
-
End-to-End power and performance optimization of AI driven use cases.
In this role, the candidate will be under the guidance of the Wearable System Architects and work closely with cross functional teams.
Responsibilities:
-
Collect power and performance measurement results and traces of ML benchmarks (e.g., MLPerf-Tiny).
-
Execute ML benchmarks under different on-device configurations, for example:
-
Execute ML benchmark on different on device ML accelerators.
-
Execute ML benchmark on slow/external memory and fast/internal memory
For this, the candidate needs to able to compile an existing ML model against different ML accelerators using corresponding ML compilers.
-
The candidate also needs to be familiar with RTOS and Android development and run-time environments.
-
Analyze above results to reveal PnP (Power and Performance) characterization of different ML accelerators.
-
This will eventually lead to the workload partition definition, i.e., which type of ML workload will be more suitable on which ML accelerators.
-
Modify ML benchmark models by varying different key ML model parameters. For example: o Increase # of MACs significantly while keeping memory throughput relatively steady or vice-versa. For this, the candidate needs to able to modify an existing ML model by changing model parameters (e.g., increasing dimension of CNN layer) or model architecture (e.g., add a Fully Connected layer).
-
Analyze above results in order to reveal the relationship between key ML model parameters (e.g., # of MACs) and PnP metrics o This will eventually lead to PnP guideline that can help project PnP metrics based on values of key ML model parameters.
-
Collect power and performance traces of AI driven use cases and identify areas of optimization.
Qualifications:
-
BS in Computer Science or Computer Engineering
-
2+ consumer product (e.g. Phone, Watch, Glass or other) experience.
-
Familiar with RTOS, Android and embedded development environment.
-
Familiar with ML development environment.
Preferred Qualifications:
-
BS in Computer Science or Computer Engineering
-
2+ consumer product (e.g. Phone, Watch, Glass or other) experience.
-
Familiar with RTOS, Android and embedded development environment.
-
Familiar with ML development environment.
-
The ideal candidate shall have strong firmware skills and will implement tiny ML on hardware/MCUs.
-
Training the ML models including model architectural exploration is outside the scope of this job. But the candidate will need to modify ML models for the purpose of revealing the relationship between PnP metrics and ML model parameters. This will require the candidate having skills to port and compile ML models to run on device.
Personal characteristics:
-
Team player
-
Proactiveness in collaborating and execution.
-
Flexibility to switch technical context
-
Willingness to learn new methods / tools / processes
-
Ability to prioritize and multitask
-
Strong problem solving and critical thinking skills
-
Strong passion for creativity and solving cutting edge industry problems
-
Strong communication and interpersonal skills.
Cohesive Technologies is an equal access/equal opportunity employer and does not discriminate on the basis of age, color, disability, marital status, national origin, race, religion, sex, sexual orientation, veteran status or any other classification prescribed by applicable law.