Compiler Verification Engineer, Compute Performance – GPU

NVIDIA NVIDIA · Semiconductors · Austin, TX +1

NVIDIA is seeking a Compiler Verification Engineer to analyze performance degradation and functional defects in compilers, automate testing, and develop test plans. The role involves working with software compiler developers, identifying regression root causes, and improving testing processes. Requires a Bachelor's or Master's degree, 3+ years of experience in software development or testing, and expertise in C/C++/CUDA, scripting languages, SDLC, HPC, and compiler methodologies.

What you'd actually do

  1. Analysis: Analyze performance degradation or functional defect of compilers, identify regression root cause, suggest corrective action, and perform reviews to continuously improve testing.
  2. Test Automation: Automate compiler testing using NVIDIA test frameworks and by programming. Includes test execution, test reporting, and results analysis and automation of build and test environments. Work with software compiler developers and assist in providing automated solutions for unit testing.
  3. Test Operations: Utilize test suites to find, report and track compiler performance changes. Work with development team to drive regressions to resolution. Generate statistics based on performance data, identify and investigate outliers and monitor performance trends. Maintain historical data and baselines for comparison.
  4. Compiler Test Development: Develop and review test plans, implement test cases, automate tests, integrate tests into NVIDIA test management frameworks, port 3rd party testing, and author test reports. May include integrating already existing tests into the compiler test automation.
  5. Process Improvement: Utilize current iterative planning and test development processes. As part of team, identify potential or observed weaknesses in current process, offer ideas for actions that can improve quality, and participate in quality initiatives.

Skills

Required

  • Bachelor's or Master's Degree or equivalent experience
  • 3+ years’ work experience in a software development or test organization
  • Excellent communications skills
  • Self-motivated and well organized
  • Deep understanding of Software Development Life Cycle (SDLC)
  • Deep understanding of High-Performance Computing (HPC)
  • Deep understanding of Software Testing Methodologies
  • Compiler Domain Expertise
  • Problem solving
  • Implement solutions
  • Work with various teams
  • Analytical skills
  • Attention to detail
  • Apply existing skills to new situations
  • Break large problems into smaller problems
  • Triage difficult performance regressions
  • Experience writing test plans
  • Experience test development
  • Experience test automation
  • Experience test execution and reporting in a production environment
  • Programming Languages: C/C++/CUDA
  • Scripting languages: Python, Perl, Shell

Nice to have

  • Proficient industry experience in testing production software
  • Compiler or other system software testing experience
  • Previous compiler development experience
  • Previous compiler verification/test experience
  • Previous performance analysis experience
  • NVIDIA CUDA Toolkit experience
  • Debugging in Linux environment
  • Revision control software and management tools (Git, Perforce, JIRA, Confluence, Make)
  • Statistical analysis tools for identifying and isolating out-of-bound behavior

What the JD emphasized

  • Compiler Domain Expertise
  • Proven strength in problem solving and implement solutions
  • Ability to work with various teams to generate a solution for performance regression and be productive under tight schedules, and have strong analytical skills with attention to detail.
  • Be able to apply existing skills to new situations. Break large problems into smaller problems and further triage difficult performance regressions.
  • Have experience programming and/or testing in C/C++/CUDA as well as scripting languages (Python, Perl, Shell)