We’re looking for best in class engineers to join our existing top-notch team. When you join, you will be part of a team that designs, develops and verifies the software that interacts with our chip, collaborating with our hardware engineers and with fellow software engineers in the process. By creating software that fully realizes the capabilities of the hardware, you will help get AI inference to the general populace.
As part of this exceptional team, you are able to - and get excited by - identifying functional/performance bottlenecks and how to alleviate them in order to achieve scalable and reliable software. You excel in an environment with complex software and hardware designs.
The Neural Network Optimization Engineer addresses the design, development and optimization of leading edge neural networks for our customers. The role requires hands-on development of neural networks, involves working with a cross-functional team of engineers that are focused on customers, and acts as a conduit between our customers and our software and hardware teams. By using and/or developing our software tools (kernel support, physical allocation placement, etc.), in particular for customer neural nets that require functionality/performance beyond what's available in our standard software releases, they ensure the most effective use of our technology by our customers.
The Neural Network Optimization Engineer understands our products, technology and applications and is an expert in developing neural networks for the world’s highest performance AI accelerator chips. They will diagnose and address the challenges of real-world uses, resolve them and escalate to appropriate teams as needed. They will also provide useful feedback from these experiences to our engineering teams to improve existing products and to the CTO/architecture team for input on next gen products.
Responsibilities
-
- Use and advance our products in the development and delivery of leading edge customer neural networks and applications
- Understand and evaluate neural network performance at a chip, system and application level through performance profiling and benchmarking
- Identify/diagnose challenges in using our products for specific use cases and define and develop projects to resolve them.
- Engage with the Customer Neworks Lead on any escalations to the software and hardware team
- Actively engage with customers to ensure they feel supported by our post sale and delivery of the product
- Partner with the Products team to ensure they are up to date on client experiences and their feedback so that interactions with customers appear seamless
- Management of program / project teams to deliver Neural Network Model Garden Models including the identification, design and implementation of C++ low-level flexible programs (kernels) for various neural net operations
- When required development of complexed kernels and compiler strategies to address the network requirements
- Communicate performance optimization ideas both to compiler/kernel engineers and to architects working on future product generations
Preferred skills & Experience
-
- Enthusiastic and knowledgeable about all things “AI”
- Computer Science, engineering, or related degree
- At least 5 years of software development experience, specifically in AI
- Knowledge of Neural Network basic operator algorithms - Convolutions, Transformers, RNNs
- Experience with end to end software development, specifically data structures and algorithms, experience with software architecture patterns, etc.
- Experience working in cross-functional teams
- Strong bias for teamwork and effective problem solving
- Experience with tuning and optimizing code and Neural Networks for high performance
- Strong communication skill and a background in program / project management
- Superior problem solving skills, both technical and interpersonal