Vacancy is archived. Applications are no longer accepted.
Used Tools & Technologies
Not specified
Required Skills & Competences ?
C @ 4 C++ @ 4 Algorithms @ 4 Data Structures @ 6 Machine Learning @ 4 Communication @ 7 CUDA @ 4Details
NVIDIA's success builds on a foundation of industry leading hardware. A key strategy in achieving this is our combining of the best of external EDA with highly optimized, internal EDA tools. Our team develops these tools by fusing advances in parallel computing, machine learning, and novel algorithms in C++. We are seeking a CAD Software Engineer excited to innovate in algorithms for large scale detailed placement, including both RAMs and standard cells. The role will particularly emphasize use of multithreaded and GPU code.
Developing software within a leading hardware company means getting to almost exclusively focus on the latest processes and most advanced designs. We're not bogged down by legacy support, niche roles, or convoluted approval processes. Our developers enjoy unusually high intellectual freedom and the ability to explore broad roles. If you like to work across many technical areas and see your successes directly realized in the world's best AI hardware, this is it!
Responsibilities
- Invent and optimize new methods for high capacity detailed placement, especially for maximizing the performance of datapath logic within a suite of internal optimization tools. These tools already outperform the industry's alternatives in high capacity timing optimization and will advance even further with your contributions.
- Over time, this role can expand to other areas of physical design implementation and analysis tools.
- As with any software engineering team, we do write a lot of code, but this is broader than a typical CAD or EDA role. Instead, we as a team own the whole process from discovery and invention of new optimization opportunities to developing solutions and working directly inside design teams to facilitate deployment.
Requirements
- MS or PhD in Electrical Engineering or Computer Science (or equivalent experience).
- 5+ years experience in one or more of these areas: place & route, spatial data structures, and design optimization.
- Expertise in C++.
- Thorough understanding of detailed placement, including incorporation of routing and timing algorithms.
- Deep understanding of algorithm design principles such as complexity analysis, efficient memory and I/O use, etc.
- Strong communication and interpersonal skills.
Ways to stand out from the crowd:
- Expertise in high speed arithmetic design.
- C++17/C++14 experience, such as lambdas and concurrency.
- Experience in parallel computing, especially if you have used CUDA.
- Experience with reinforcement learning, GNNs (Graph Neural Networks), LLMs (Large Language Models) and other relevant machine learning frameworks, especially as applied to physical design.
NVIDIA is widely considered to be one of the technology worldβs most desirable employers, and due to outstanding advancements, our teams are rapidly growing. Are you passionate about becoming a part of a best-in-class team supporting the latest in GPU and AI technology? If so, we want to hear from you!