Lead Engineer, Senior-System Performance Engineer
Qualcomm
About the Role
You will be part of the System Performance team responsible for profiling and optimizing system performance on Snapdragon Data Center chipsets. This role requires a strong knowledge of AI/ML performance using NPU cores. Knowledge of CPU, DDR, and NoCs will be an added advantage.
Key Responsibilities
- Drive performance analysis on silicon using various system and core benchmarks (e.g., Dhrystone, GeekBench, SPECInt, CNN/GenAI ML networks).
- Utilize performance tools to analyze load patterns across IPs and identify system performance bottlenecks.
- Analyze Perf KPIs of SoC subsystems like NPU, CPU, and Memory, and correlate performance with projections.
- Evaluate and characterize performance at various junction temperatures and optimize for high ambient temperatures.
- Analyze and optimize system performance parameters of SoC infrastructure like NoC and LP5 DDR.
- Collaborate with cross-functional global teams to plan and execute performance activities on chipsets and make recommendations for next-generation chipsets.
Requirements & Tech Stack
- Deep understanding of NPU, CPU, and DDR architecture internals:
- NPU: Understanding of NPU micro-architecture, including specialized processing elements for operations like matrix multiplications and convolutions.
- AI/ML: Strong grasp of deep learning fundamentals, including neural network architectures like CNNs, transformers, and GenAI. Understanding the distinction between model training (often on GPUs) and inference on NPUs. Knowledge of model optimization and compression techniques (Quantization, Pruning, Distillation).
- CPU: Understanding of CPU caches (L1, L2, L3), instruction pipelines, branch prediction, memory hierarchy (register, cache, main memory), and multi-core/multi-threaded processing. Understanding how memory access, instruction dependencies, and contention for shared resources impact performance.
- DDR: Understanding of JEDEC specifications LPDDR4, LPDDR5, LPDDR6, including command and timing parameters (e.g., 𝑡𝐶𝐿, 𝑡𝑅𝐶𝐷, tRP), memory organization (rows, columns, banks), training and initialization sequences, memory controller functionality, and features like command queue, port arbitration, and control schemes.
- Familiarity with frameworks like TensorFlow Lite, PyTorch Mobile, and ONNX Runtime.
- Experience with NPU-specific compilers (e.g., Qualcomm QNN, Arm Vela, Intel OpenVINO).
- Ability to evaluate hardware and software for specific AI tasks and measure performance metrics like TOPS/W.
- Experience using tools like Windows Performance Toolkit and Qualcomm Snapdragon Profiler for performance analysis and optimization.
- Core understanding of parallel processing architectures for efficient AI computations.
- Expertise in operating system management of processes, threads, memory, MMU, and interrupt handling, crucial for understanding kernel schedulers and system bottlenecks.
- Good understanding of CPU benchmarks (e.g., GeekBench, SpecInt, CoreMark) and DDR benchmarks (e.g., lat_mem, stream, bw_mem) and how they exercise underlying architectures.
- Experience with performance monitoring tools like Intel VTune, Linux perf, and utilities like top, vmstat, iostat, netstat to monitor system resources.
- Experience with software tools to monitor system hotspots, command bus utilization, and identify memory traffic patterns.
- Good understanding of memory allocation policies, prefetching, and caching to minimize latency and maximize bandwidth.
- Skills in profiling code to analyze memory access patterns and optimize for data locality.
- Strong statistical skills for analyzing large datasets from performance tests, including creating histograms of transaction latencies and deriving performance metrics.
- Experience working on any ARM/x86 based platforms, mobile/automotive/Data center operating systems and/or performance profiling tools.
- Experience in application or driver development in Linux/QNX and ability to create/customize make files with various compiler options is a plus.
- Must be a quick learner and able to adapt to new technologies.
- Excellent communication skills.
Qualifications
- Minimum:
- Bachelor's degree in Engineering, Information Systems, Computer Science, or related field and 3+ years of Systems Engineering or related work experience.
- OR Master's degree in Engineering, Information Systems, Computer Science, or related field and 2+ years of Systems Engineering or related work experience.
- OR PhD in Engineering, Information Systems, Computer Science, or related field and 1+ year of Systems Engineering or related work experience.
- Preferred:
- Knowledge of Computer architecture, LP5 DDR, Bus/NOC profiling is a big plus.
- Fundamentals on any operating system like Linux/QNX/Hypervisor & experience working on any Data Center applications.
- Experience in creating professional quality reports and slides using MS Office or any advanced visualization tools.
- Experience in PoC development and competitive analysis.
- Knowledge on Voltage/Power/Thermal domain is a plus.
Education Requirements
- Required: Bachelor's degree in Computer Engineering, and/or Electrical Engineering.
- Preferred: Master's degree in Computer Engineering, and/or Electrical Engineering.