Senior Lead Engineer - Nsp/Npu System Software
- Source: Naukri
- Qualcomm
- On-site
- Bengaluru
- Full-Time
- Senior
Job Description
Job Summary
Qual Qualcomm’s Central Software Engineering (CSE) team is seeking candidates for its Neural Signal Processor (NSP) System software team in Bangalore. We are seeking candidates with strong system software knowledge and hands-on experience in development, integration, commercialization and maintenance of system software for CPU, NSP processors and hardware engines/accelerators comprising Qualcomm SoCs that meet specified performance, latency, power, robustness, and stability metrics. In this role you will utilize your solid foundation in embedded system software development, operating systems, and device drivers to deploy platform software for complex Multimedia and Deep Learning use cases running on Qualcomm SoCs. Partnering with hardware architecture, platform software, Multimedia, and developer tools teams, you will drive the architecture, design, and development of system software to use SoCs’ extensive heterogeneous computing capabilities to allow running of compute workloads on device without a need for connection to the cloud for Mobile, Auto, IoT, XR and/or AI inferencing Qualcomm SOCs platforms.
Responsibilities
Responsibilities may include, but are not limited to:
- Architect, design and develop software frameworks across the processors available on the SoCs.
- Develop high-performance system drivers for compute resources.
- Identify areas of performance optimization in the SoC for both Software and Hardware architectures.
- Work closely with our global team to integrate, test, and commercially support our embedded software solutions.
- Offsite and occasional onsite work with OEMs and Independent Software Vendors may be required.
Required Skills/Experience
- Strong programming skills in C/C++, and Python.
- 4+ years of experience in writing scalable C/C++ multi-threaded, multi-process software applications for Android/Embedded Linux/QNX operating systems.
- Experience in system programming, threading, mutex, synchronization, communication, and parallel computing to build highly scalable and efficient applications.
- Deep understanding of CPU, DSP, Deep Learning Accelerators (NSP/NPU) architectures, system programming and optimization of Multimedia/ML algorithms on hardware acceleration cores using C/C++, assembly language, OpenCL/CUDA programming frameworks.
- Experience with ARM and NSP/Hardware engines inter-processor communications using RPCs.
- Familiarity and hands-on experience with various system analysis tools used for memory, performance and hardware resource management for optimization and stability.
- Experience with build systems such as CMake, Make, ninja and Yocto for large scale software.
- Familiarity with source control tools (Git, GitHub, GitLab, Perforce, etc.).
- Experience in writing documents on software design, algorithms, and interfaces.
Education Requirements
- Required: Bachelor’s, Computer Engineering and/or Computer Science, software engineering or closely related discipline with 6-8 yrs of relevant work experience.
- Preferred: Master’s, Computer Engineering and/or Computer Science, software engineering or closely related discipline with minimum 6 yrs of relevant work experience.
Skills
- c10
- cplusplus
- Python
- opencl
- cuda
- cmake
- yocto-project
- Github
- gitlab
- perforce
