Software Engineer (C++)
Location: London (Hybrid 2 days onsite a week)
Salary Range: Up to £140,000
Annapurna Recruitment is seeking a talented Software Engineer to join a pioneering team developing cutting-edge AI solutions for autonomous systems. This London-based role offers the opportunity to work on optimizing AI inference performance on embedded GPU platforms, contributing to the advancement of real-time decision-making in autonomous driving.
What to Expect
The successful candidate will focus on host-side software and hardware interactions to ensure optimal data transfer and resource management for efficient AI inference on GPUs. Key responsibilities include
* Developing and optimizing C++ code for efficient data transfer and latency management between the host and GPUs across diverse vendor platforms.
* Working with low-level system and memory management techniques to minimize latency and improve real-time inference performance.
* Utilizing and implementing GPU programming APIs (e.g., CUDA, OpenCL) to ensure high efficiency and compatibility across GPUs.
* Profiling and debugging system performance using tools like NVIDIA Nsight, Intel VTune, and vendor-specific profilers, identifying bottlenecks and implementing effective solutions.
* Collaborating closely with software, hardware, and machine learning teams to ensure that data is managed, preprocessed, and made available to the GPU as quickly and efficiently as possible.
* Staying current with advances in GPU hardware, optimization techniques, and multi-vendor GPU programming approaches.
* Adhering to and promoting industry best practices for real-time, low-latency processing in autonomous systems.
Essential Requirements:
* 3+ years of experience in C++ programming, with a strong grasp of modern C++ standards.
* Proven experience in GPU programming and optimization, with proficiency in CUDA, OpenCL, or other GPU programming frameworks.
* Strong knowledge of parallel computing concepts, including data locality, memory access patterns, and synchronization.
* Proficiency with performance profiling tools and techniques for identifying and resolving system bottlenecks.
* Experience in system-level programming, including memory management, data alignment, and hardware-software interfacing.
* Bachelor’s or Master’s degree in Computer Science or a related field, or equivalent commercial experience.
Desirable:
* Experience in real-time processing or embedded systems.
* Familiarity with autonomous systems, robotics, or real-time AI inference.
Benefits
The company offers a comprehensive benefits package, including:
* A hybrid working policy that combines in-office collaboration with remote flexibility.
* Opportunities to work on groundbreaking AI technologies with real-world applications.
* A supportive and inclusive work environment that values diversity and innovation.
* Access to ongoing professional development and career growth opportunities.