Lead Engineer,Senior
Qualcomm · Bengaluru, Karnataka, India
Qualcomm · Bengaluru, Karnataka, India
**General Summary:** As a leading technology innovator, Qualcomm pushes the boundaries of what's possible to enable next-generation experiences and drives digital transformation to help create a smarter, connected future for all. As a Qualcomm Software Engineer, you will design, develop, create, modify, and validate embedded and cloud edge software, applications, and/or specialized utility programs that launch cutting-edge, world class products that meet and exceed customer needs. Qualcomm Software Engineers collaborate with systems, hardware, architecture, test engineers, and other teams to design system-level software solutions and obtain information on performance requirements and interfaces. **Minimum Qualifications:** Bachelor's degree in Engineering, Information Systems, Computer Science, or related field and 3+ years of Software Engineering or related work experience. OR Master's degree in Engineering, Information Systems, Computer Science, or related field and 2+ years of Software Engineering or related work experience. OR PhD in Engineering, Information Systems, Computer Science, or related field and 1+ year of Software Engineering or related work experience. 2+ years of academic or work experience with Programming Language such as C, C++, Java, Python, etc. **Detailed JD:** **==========** **Job Description: CPU Software & Hardware Co-Design Engineer (ML Systems)** **Location:** Bangalore (or relevant) - **Levels:** Engineer / Senior Engineer / Staff / Principal Engineer **Role Overview** We are building a high-impact team at the intersection of **CPU architecture, machine learning workloads, and system-level performance optimization**. This role focuses on **CPU softwarehardware co-design for next-generation QMX architectures**, including workload characterization, simulation, kernel optimization, and driving architectural insights for future CPU designs. The ideal candidate will work across the full stackfrom ML models to low-level kernels to architectural feedbackenabling **efficient execution of ML workloads on CPU platforms**. **Key Responsibilities** **1. ML Workload Identification & Characterization** - Identify and prioritize **critical ML use cases and models** for CPU-centric execution (LLMs, vision, speech, recommender systems, etc.) - Analyze workload characteristics including: - Compute intensity - Memory bandwidth and cache behavior - Parallelism and dataflow patterns **2. Simulation & Trace Generation** - Generate detailed execution traces for ML workloads using **QEMU or equivalent simulators** - Develop tooling to: - Capture instruction-level execution behavior - Extract performance counters and bottlenecks - Enable accurate modeling of workload behavior for architectural exploration **3. Bottleneck Analysis & Performance Optimization** - Identify system bottlenecks across: - CPU pipelines - Memory hierarchy - Instruction utilization - Optimize critical hotspots through: - Kernel-level tuning - Algorithmic improvements - Data layout and memory optimizations - Drive measurable improvements in workload performance **4. SoftwareHardware Co-Design** - Collaborate with CPU architecture and design teams to: - Provide **data-driven insights** from real workloads - Identify inefficiencies and propose architectural enhancements - Influence next-generation CPU features in: - Compute units - Vector/SIMD extensions (e.g., QMX) - Memory subsystems **5. ML Kernel & Library Development (QMX Focus)** - Design and implement **highly optimized ML kernels and libraries** for QMX architecture - Develop kernels for: - GEMM, convolution, attention, activation functions, etc. - Enable integration with: - Open-source ML frameworks (e.g., PyTorch, ONNX, XNNPACK, MLAS) - Apply advanced optimizations: - SIMD/vectorization - Cache-aware execution - Parallel execution strategies **6. Benchmarking & Performance Engineering** - Optimize CPU-centric ML benchmarks such as: - Geekbench AI - Internal benchmarking suites - Establish performance baselines and track improvements across hardware generations - Perform competitive analysis and performance positioning **Required Qualifications** - Strong background in: - Computer Architecture / Systems Programming - Machine Learning fundamentals - Proficiency in: - C/C++ (mandatory) - Experience with: - Performance profiling, benchmarking, and optimization **Preferred Qualifications** - Experience with: - QEMU or equivalent simulators - ML kernel development (GEMM, convolution, attention) - Knowledge of: - CPU architecture (pipelines, caching, SIMD/vector extensions such as NEON, SVE, QMX) - Familiarity with: - ML frameworks and inference stacks - Experience with low-level optimization: - Intrinsics, assembly, memory and cache tuning **Why Join This Team** - Work on **next-generation CPU architectures (QMX)** - Directly influence **hardware design through real workload insights** - Solve **end-to-end ML performance challenges (model kernel silicon)** - Collaborate with **top architecture, systems, and AI teams** - High-impact role with visibility across product and research roadmaps